Administrator
Published on 2021-08-17 / 137 Visits
0
0

MySQL核心之DDL

DDL

  • 数据定义语言

数据库管理

创建数据库

CREATE DATABASE IF NOT EXISTS 库名 DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;

修改数据库

修改库名

RENAME DATABASE 旧库名 TO 新库名;

修改库的字符集

ALTER DATABASE 库名 CHARACTER SET 字符集;

删除数据库

DROP DATABASE IF EXISTS 库名;

数据表管理

创建数据表

CREATE TABLE `customer_inf` (
  `customer_inf_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键ID',
  `customer_id` int(10) unsigned NOT NULL COMMENT 'customer_login表的自增ID',
  `customer_name` varchar(20) NOT NULL COMMENT '用户真实姓名',
  `identity_card_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '证件类型:1 身份证,2军官证,3护照',
  `identity_card_no` varchar(20) DEFAULT NULL COMMENT '证件号码',
  `mobile_phone` int(11) unsigned DEFAULT NULL COMMENT '手机号',
  `customer_email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  `gender` char(1) DEFAULT NULL COMMENT '性别',
  `user_point` int(11) NOT NULL DEFAULT '0' COMMENT '用户积分',
  `register_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '注册时间',
  `birthday` datetime DEFAULT NULL COMMENT '会员生日',
  `customer_level` tinyint(4) NOT NULL DEFAULT '1' COMMENT '会员级别:1普通会员,2青铜会员,3白银会员,4黄金会员,5钻石会员',
  `user_money` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '用户余额',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录生成时间',
  `modified_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
  PRIMARY KEY (`customer_inf_id`)
) ENGINE=InnoDB AUTO_INCREMENT=16384 DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表';

修改数据表

语法

ALTER TABLE 表名 ADD|DROP|MODIFY|CHANGE COLUMN 列名 类型 约束;

修改列名

ALTER TABLE 表名 CHANGE COLUMN 旧列名 新列名 类型 约束;

修改列的类型或约束

ALTER TABLE 表名 MODIFY COLUMN 列名 类型 约束

添加新列

ALTER TABLE 表名 ADD COLUMN 列名 类型 约束; 

删除列

ALTER TABLE 表名 DROP COLUMN 列名 

修改数据表名

ALTER TABLE 表名 RENAME TO 新表名;

删除数据表

DROP TABLE IF EXISTS 表名;

复制数据表

只复制表结构
CREATE TABLE 复制后的表名 LIKE 被复制的表名;
复制表的结构 + 数据
CREATE TABLE 复制后的表名 SELECT * FROM 被复制的表名;
只复制部分数据
CREATE TABLE 复制后的表名 SELECT 字段名 FROM 被复制的表名 WHERE 筛选条件

Comment