创建数据库表
例:
目标:创建一个school数据库
创建学生表(列,字段) 使用SQL语句创建
要求:学号int、姓名varchar、密码varchar、生日datetime、家庭住址adress、邮箱varchar;学号为主键;引擎为innoDB;字段为utf-8
CREATE TABLE IF NOT EXISTS `student` (`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',`adress` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',PRIMARY KEY(`id`))ENGINE=INNODB DEFAULT CHARSET=utf8
注意:NOT不要写成NO
格式:
CREATE TABLE [IF NOT EXISTS] `表名`(`字段名` 列类型 [属性] [索引] [注释],`字段名` 列类型 [属性] [索引] [注释],........`字段名` 列类型 [属性] [索引] [注释])[表类型] [字符集设置] [注释]
小结:
1.使用英文括号(),表的名称和字段尽量使用 ` ` 括起来
2.ATUO INCREMENT 自增
3.所有语句后面加英文逗号(,) ,最后一个语句不用加
4.PRIMARY KEY 是主键,一般一个表只有唯一的一个主键
5.每个表都必须存在以下五个字段,表示一个记录存在的意义。(id 主键、`version` 乐观锁、is_delete 伪删除、gmt_create 创建时间、gmt_update 修改时间)
6.字符集编码不设置的话,会是默认的Latin1(不支持中文!)。可在MySQL文件夹中的my.ini中配置默认的编码(character-set-server=utf8),一般不建议配置
查看修改删除表
查看创建语句
--查看创建数据表的语句SHOW CREATE TABLE student--查看student数据表的定义语句SHOW CREATE TABLE student--显示表的结构DESC student
修改
-- 修改表 ALTER TABLE 旧表名 RENAME AS 新表名ALTER TABLE teacher RENAME AS teacher1-- 增加表的字段 ALTER TABLE 表名 ADD 字段名 列属性ALTER TABLE teacher1 ADD age INT(11)-- 修改表的字段 (重命名,修改约束!)-- ALTER TABLE 表名 MODIFY 字段名 列属性[]ALTER TABLE teacher1 MODIFY age VARCHAR(11) -- 修改约束--ALTER TABLE 表名 CHANGE 旧名字 新名字 列属性[]ALTER TABLE teacher1 CHANGE age age1 INT(1) -- 字段重命名
删除
-- 删除表的字段:ALTER TABLE 表名 DROP 字段名ALTER TABLE teacher1 DROP age1-- 删除表(如果表存在再删除)DROP TABLE IF EXISTS teacher1
小结:
所有的创建和删除操作尽量加上判断,以免报错SQL关键字大小写不敏感,建议大家小写所有的符号都用英文IF EXISTS 判断change用来字段重命名,不能修改字段类型和约束modify不用来字段重命名,只能修改字段类型和约束