例:
目标:创建一个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 DATABASE school
-
- --查看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
小结: