本文列举了一些初级的 MySQL 命令。
字段规则
小写 + 下划线 user_name
基本概念
表头(header): 每一列的名称;
列(row): 具有相同数据类型的数据的集合;
行(col): 每一行用来描述某个人/物的具体信息;
值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
键(key): 表中用来识别某个特定的人\物的方法, 键的值在当前列中具有唯一性。
字符集
修改配置文件
1 | [client] |
查看字符集
1 | SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; |
常见指令
1 | $ mysql -uroot -pmytest -D test |
-D
指定数据库-h
指定主机-P
指定端口
1 | # 切换数据库、数据表等 |
查看
1 | mysql> SHOW DATABASES; |
约束
NULL
NOT NULL
AUTO_INCREMENT
UNSIGNED
PRIMARY KEY
或 KEY
UNIQUE KEY
DEFAULT
FOREIGN KEY REFERENCES
外键约束
FOREIGN KEY
1 | mysql> CREATE TABLE 表名( |
参照操作
CASCADE
SET NULL
ON DELETE
RESTRICT
元数据
1 | mysql> SELECT VERSION(); |
事务
保证数据库的完整性
原子性
要么成功,要么不成功。一致性
事务开始之前和结束之后,数据库的完整性没有被破坏。隔离性
防止多个事务并发执行时由于交叉执行而导致的数据的不一致,分为读未提交(READ UNCOMMITTED)
读提交(READ COMMITTED)
可重复读(REPEATABLE READ)
串行化(SERIALIZABLE)
。持久性
事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
BEGIN
START TRANSACTION
显式的开启一个事务。
COMMIT
提交事务,并使对数据库进行的所有修改称为永久性的。
ROLLBACK
回滚 结束事务,并撤销正在进行的所有未提交的修改。
SAVEPOINT
创建一个保存点。
RELEASE SAVEPOINT
删除保存点。
ROLLBACK TO
回滚到某个保存点。
SET TRANSACTION
设置事务的隔离级别。
并发控制
当多个连接对记录进行修改时保证数据的一致性和完整性。
锁
共享锁(读锁)同一时间段内,多个用户可以读取同一资源,读取过程中数据不会发生任何变化。
排它锁(写锁)在任何时候只能有一个用户写入资源,当进行写锁时会阻塞其他的读锁或者写锁操作。
锁颗粒
表锁
行锁