数据库必备操作
数据库必备操作
创建表的完整语法
创建表的完整语法
# 长度和约束在某些情况下是可以省略的
- mysql>: create table 表名 (
属性名1 类型(长度) 约束,
...
属性名n 类型(长度) 约束
) engine=引擎 default charset=utf8;
数据库表的引擎
引擎是建表的时候规定的,是提给表用的,而不是数据库
- show engines
- 展示所有引擎
- 引擎 innodb(默认)
- 支持事事务,行级键,外键
- 引擎 myisam
- 查询效率要优于innodb,当不需要innodb的功能时,
可以通过myisam来优化数据库,提高查询效率
- 查询效率要优于innodb,当不需要innodb的功能时,
- 引擎 blackhole
- 黑洞,存进表中的数据就像存进黑洞一样,不复存在
- 无法进行数据的存储
- 引擎 memory
- 表结构是存储在硬盘上的,但是表数据是存储在内存中的,无法永久存储
- 引擎.........
可以用引擎来实现数据库的优化
数据库的模式
安全模式
- mysql 5.7 以后默认都是安全模式
- sql_model=strict_trans_tables
- 安全模式下,非安全模式下执行的sql语句,警告的都会报错
非安全模式
-
mysql 5.6
-
sql_model=no_engine_substitution
-
root权限下,临时设置为安全模式,
服务重启后会被重置- set global sql_mode = "strict_trans_tables";
-
在设置后,quit断开数据库连接后(服务器不重启)就会进入安全模式
查看当前数据库模式
- show variables like "%sql_mode%"