CREATE DATABASE 数据库名; | 创建数据库 |
SHOW databases; | 查看数据库列表 |
USE 数据库名; | 选择数据库,使用前必须先选择数据库 |
DROP DATABASE 数据库名; | 删除数据库 |
CREATE TABLE [IF NOT EXISTS] 表名() | 创建表格()中写字段及字段属性 |
`字段名` 属性及约束 COMMENT'注解' | 字段名使用数字1键左边的符号引起,可以省略,为了区别关键字加上``,注解先写COMMENT后用引号引起 |
SHOW tables; | 查看表列表,使用前先选择数据库 |
DESCRIBE 表名; | 查看表定义,使用前先选择数据库 |
DROP TABLE [IF EXISTS] 表名; | 删除表,使用前先选择数据库,IF EXISTS语句验证表是否存在 |
表中字段用 , 隔开,最后一个字段尾部不能使用 ,
表格中主键最多有一个,可以不设,外键必须和主键属性一样
ALTER TABLE 旧表名 RENAME [TO] 新表名; | 修改表名 |
ALTER TABLE 表名 ADD 字段名 数据类型 [属性]; | 添加字段 |
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性]; | 修改字段 |
ALTER TABLE 表名 DROP 字段名; | 删除字段 |
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段); | 添加主键 |
ALTER TABLE 表名 #修改从表 ADD CONSTRAINT 外键名 #添加的约束名称 FOREIGN KEY(外键字段) #约束类型,从表中的字段名 REFERENCES 关联表名(关联字段); #关联的主表(主键) | 添加外键 |
NOT NULL | 非空约束,字段不允许为空 | 取值范围 |
DEFAULT | 默认约束,赋予某字段默认值 | |
UNIQUE KEY(UK) | 唯一约束, 设置字段的值是唯一的 允许为空,但只能有一个空值 | |
PRIMARY KEY(PK) | 主键约束,设置该字段为表的主键 可唯一标识该表记录 | |
FOREIGN KEY(FK) | 外键约束,用于在两表之间建立关系, 需要指定引用主表的哪一字段 | |
AUTO_INCREMENT | 自动增长,设置该列为自增字段 默认每条自增1 通常用于设置主键 | |
CHAR[(M)] | 定长字符串,M字节 | |
VARCHAR[(M)] | 可变字符串,可变长度 | |
ZEROFILL | 宽度(位数)不足以0填充 | |
UNSIGNED | 标识为无符号数 | |
DATE | YYYY-MM-DD,日期格式 | 1000-01-01~ 9999-12-31 |
DATETIME | YY-MM-DD hh:mm:ss: | 1000-01-01~9999-12-31 00:00:00 ~23:59:59 |
TIME | hh:mm:ss: | -835:59:59 ~ 838:59:59 |
TIMESTAMP | YYYYMMDDHHMMSS | 1970年某时刻~2038年某时刻,精度为1秒 |
YEAR | YYYY格式的年份 | 1901~2155 |
CREATE TABLE `学生表`(
`学号` INT(4) NOT NULL COMMENT '学号' PRIMARY KEY,
`密码` VARCHAR(20) NOT NULL COMMENT '密码',
`学生姓名` VARCHAR(50) NOT NULL COMMENT '学生姓名',
`性别` CHAR(2) DEFAULT '男' NOT NULL COMMENT '性别',
`年级编号` INT(4) UNSIGNED COMMENT '年级编号',
`联系电话` VARCHAR(50) COMMENT '联系电话',
`地址` VARCHAR(255) DEFAULT '地址不详'COMMENT '地址',
`出生时间` DATE COMMENT '出生时间',
`e-mail` VARCHAR(50) COMMENT'邮件账号',
`身份证号` VARCHAR(18) UNIQUE KEY COMMENT '身份证号'
) COMMENT='学生表';
CREATE TABLE `年级表`(
`年级编号` INT(4) UNSIGNED COMMENT '年级编号' PRIMARY KEY,
`年级名称` VARCHAR(50) NOT NULL COMMENT '年级名称'
) COMMENT='年级表';
CREATE TABLE `课程表`(
`课程编号` INT(4) NOT NULL AUTO_INCREMENT COMMENT '课程编号' PRIMARY KEY,
`课程名称` VARCHAR(50) COMMENT '课程名称',
`学时` INT(4) COMMENT '学时',
`年级编号` INT(4) UNSIGNED COMMENT '年级编号'
) COMMENT='课程表';
CREATE TABLE `成绩表`(
`学号` INT(4) NOT NULL COMMENT '学号',
`课程编号` INT(4) NOT NULL COMMENT '课程编号',
`考试日期` DATETIME NOT NULL COMMENT '考试日期',
`考试成绩`INT(4) NOT NULL COMMENT '考试成绩'
) COMMENT='成绩表';
#显示全部表格
SHOW TABLES
#添加外键
ALTER TABLE `学生表`#修改从表
ADD CONSTRAINT `外键_年级编号`#添加的约束名称
FOREIGN KEY (年级编号)#约束类型,从表中的字段名
REFERENCES 年级表(年级编号);#关联的主表(主键)
ALTER TABLE `课程表`#修改从表
ADD CONSTRAINT `外键_年级编号2`#添加的约束名称
FOREIGN KEY (年级编号)#约束类型,从表中的字段名
REFERENCES 年级表(年级编号);#关联的主表(主键)
#同主键做外键不能同名
ALTER TABLE `成绩表`#修改从表
ADD CONSTRAINT `外键_学号`#添加的约束名称
FOREIGN KEY (学号)#约束类型,从表中的字段名
REFERENCES 学生表(学号);#关联的主表(主键)
ALTER TABLE `成绩表`#修改从表
ADD CONSTRAINT `外键_课程编号`#添加的约束名称
FOREIGN KEY (课程编号)#约束类型,从表中的字段名
REFERENCES 课程表(课程编号);#关联的主表(主键)