注意项:使用英文(),表的名称和字段尽量用``括起来
案例
创建student表
-- 自增auto_increment
-- 主键 PRIMARY KEY
-- 字符串使用单引号括起来
-- 所有语句后面加`,`,英文状态下的,最后一个不用加
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 '123' 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 `表名`(
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释]
)
常用命令
- 查看创建数据库的语句
show create database 数据库名 - 查看数据表的定义语句
show create table 表名 - 显示表的结构
desc 表名
关于数据库引擎
- InnoDB 默认使用,安全性高,事务的处理,多表多用户操作
- 支持事务
- 支持行锁定
- 支持外键约束
- 不支持全文索引
- 表空间大小较大
- MyISAM 早些年使用,节约空间,速度较快
- 不支持事务
- 不支持行锁定
- 不支持外键约束
- 支持全文索引
- 表空间较大
本地物理空间位置
- 所有数据库文件都存在于data目录下,本质还是文件的形式存储
- MySQL引擎在物理文件上的区别: InnoDB在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件;MyISAM对应文件:.frm表结构的定义文件,.MYD数据文件(data),*.MYI(index)
设置数据库表的字符集编码
charset=utf8
修改表
改表名 ALTER TABLE 旧表名 RENAME AS 新表名
-- 修改表
ALTER TABLE student RENAME AS student1
添加字段ALTER TABLE 表名 ADD 字段名 列属性
-- 增加字段
ALTER TABLE student ADD age INT(8)
修改表的字段
修改约束 ALTER TABLE 表名 MODIFY 字段名 约束
重命名 ALTER TABLE 表名 CHANGE 原字段名 新字段名 约束
-- 修改表的字段
-- 修改约束
ALTER TABLE student MODIFY age VARCHAR(10)
-- 重命名
ALTER TABLE student CHANGE age age1 INT(2)
删除表的字段 alter table 表名 drop 要删除字段名
所有创建和删除操作尽量加上判断,以免报错 :if exists or if not exists
注意事项:
- `` 字段名,使用该符号包裹!
- 注释:推荐使用 -- 或 /**/
- sql关键字大小写不敏感,推荐小写(辨识度高)