本文列举了一些初级的 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 设置事务的隔离级别。
并发控制
当多个连接对记录进行修改时保证数据的一致性和完整性。
锁
共享锁(读锁)同一时间段内,多个用户可以读取同一资源,读取过程中数据不会发生任何变化。
排它锁(写锁)在任何时候只能有一个用户写入资源,当进行写锁时会阻塞其他的读锁或者写锁操作。
锁颗粒
表锁
行锁