- CREATE TABLE IF NOT EXISTS `student1`(
- `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 '出生日期',
- `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
- `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
- PRIMARY KEY(`id`)
- )ENGINE=INNODB DEFAULT CHARSET=utf8
格式:
CREATE TABLE [IF NOT EXISTS] `表名`(
'字段名' 列类型 [属性] [索引] [注释],
'字段名' 列类型 [属性] [索引] [注释],
........
'字段名' 列类型 [属性] [索引] [注释]
)[表类型] [字符集设置] [注释]
-- 关于数据库引擎
/*
INNODB 默认使用~
MYISAM 早些年使用的
*/
| MYISAM | INNODB | |
| 事务支持 | 不支持 | 支持 |
| 数据行锁定 | 不支持 | 支持 |
| 外键约束 | 不支持 | 支持 |
| 全文索引 | 支持 | 不支持 |
| 表空间大小 | 较小 | 较大,约为2倍 |
常规使用操作:
所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库本质还是文件的存储!
CHARSET=utf8
character-set-server=utf8
- -- 目标:创建一个school数据库
- -- 创建学生表(列,字段) 使用SQL创建
- -- 学号int 登录密码varchar(20)姓名,性别varchar(2),出生日期(datatime),家庭住址,email
-
- -- 注意点,使用英文(),表的名称和字段尽量使用``括起来
- -- AUTO_INCREMENT 自增
- -- 字符串使用 单引号括起来!
- -- 所有的语句后面加,(英文的),最后一个不用加
- -- PRIMARY KEY主键,一般一个表只有一个唯一的主键!
- CREATE TABLE IF NOT EXISTS `student1`(
- `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 '出生日期',
- `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
- `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
- PRIMARY KEY(`id`)
- )ENGINE=INNODB DEFAULT CHARSET=utf8
输出结果:


修改
- -- 修改表 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
所有的创建和删除操作尽量加上判断,以免报错!