下面的代码将使用sql语句创建一个数据库表。
格式:
CREATE TABLE [IF NOT EXISTS] `表名` (`字段名` 列类型 [属性] [索引] [注释],`字段名` 列类型 [属性] [索引] [注释],.......`字段名` 列类型 [属性] [索引] [注释]
) [表类型] [字符集设置] [注释]
注意点:
- 使用英文() ,表的名称和字段尽量使用 `` 括起来
- AUTO INCREMENT 自增
- 字符串用单引号括起来
- 所有的语句用结尾加上 , 最后一句不用加
- PRIMARY KEY 主键,一般一个表只有一个唯一的主键。
CREATE TABLE IF NOT EXIST 'student'(`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号', --comment注释,default默认`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 --INNODB引擎
效果:
关于引擎:
INNODB 默认使用 , MYISAM早些年使用
引擎 | MYISAM | INNODB |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约为2倍 |
常规操作
- MYISAM 节约空间,速度较快
- INNODB 安全性高,事务的处理,多表多用户操作
常用命令:
SHOW CREATE DATABASE school --查看创建数据库的语句
SHOW CREATE TABLE student --查看student数据表的定义语句
DESC student --查看表的结构
修改删除表:
修改:
ALTER TABLE teacher RENAME AS allteacher --修改表名
ALTER TABLE allteacher ADD age INT(11) --添加表的字段
--修改表的字段
ALTER TABLE allteacher MODIFY age VARCHAR(11) --修改约束!
ALTER TABLE allteacher CHANGE age age1 INT(1) --字段重命名!
删除:
ALTER TABLE teacher1 DROP age1 --删除表的字段
DROP TABLE if EXISTS teacher1 --删除表,如果表存在。
所有的删除操作尽量加上判断,以免报错。