二、MySQL数据表操作
1. 创建数据库表
示例
CREATE TABLE IF NOT EXISTS `student`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(10) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`birthday` DATETIME 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] 表名(
'字段名' 列类型 [属性] [索引] [注释],
'字段名' 列类型 [属性] [索引] [注释],
......
'字段名' 列类型 [属性] [索引] [注释]
)[表类型][字符集设置][注释]
注意点
- ()使用应为的符号
- 表的名称和字段的名称尽量使用``符号括起来
- AUTO_INCREMENT 自增
- 字符串使用单引号括起来
- 所有的语句后面加 , 最后一句不加
- PRIMARY KEY 主键,一般一个表只有一个主键
2. MyISAM和InnoDB的区别
MyISAM | InnoDB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 较小 | 较大,约为2倍 |
常规使用选择:
- MYISAM: 节约空间,速度较快
- INOODB: 安全性高,事务的处理,多表多用户操作
3. 修改和删除数据表的字段
显示表的结构用 DESC student
-- 修改表的名字
ALTER TABLE teacher RENAME student;
-- 向表中增加字段
ALTER TABLE student ADD `score` INT(3);
-- 修改表的字段
ALTER TABLE student MODIFY score FLOAT(2); -- 修改约束
ALTER TABLE student CHANGE score score2 INT(2); -- 重命名字段
-- 删除表的字段
ALTER TABLE student DROP score2;
4. 删除数据库表
-- 删除表
DROP TABLE IF EXISTS student;