USE Databasename 用于在MySQL工作区内选择具体某个数据库。
SHOW DATABASES 列出 MySQL DBMS 所能访问的数据库。
SHOW TABLES 一旦数据库被 use 命令选中,显示数据库中的表。
SHOW COLUMNS FROM tablename 显示表的属性、属性类型、键信息、是否允许 NULL 值,默认值,以及其他一些信息。
SHOW INDEX FROM tablename 显示表中所有索引的细节信息,包括PRIMARY KEY。
SHOW TABLE STATUS LIKE tablename\G 报告MySQL DBMS的性能及统计的细节信息。
descending order 递减次序,降序排列
ascending order 升幂,递升次序,递升序
MySQL Using Join
在一个 SQL 查询中使用多张表,联结(join)行为在 MySQL 数据库中指的就是将2张或更多的表合为一张表。
MySQL的左联结(LEFT JOIN):左联结侧重考虑左侧的表。
MySQL NULL Values
MySQL 提供了三种运算符:
IS NULL:如果列值为 NULL,则该运算符返回 true。
IS NOT NULL:如果列值不为NULL,则该运算符返回 true。
<=>:该运算符用于两个值的对比,当两个值相等时(即使这两个值都为 NULL 时,这一点与 = 运算符不同)返回 true。
MySQL 正则表达式
运算符是 REGEXP
示例:
寻找以 'st' 开头的名称,查询如下:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
寻找以 'ok' 结尾的名称,查询如下:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$';
寻找包含 'mar' 的名称,查询如下:
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
寻找以元音字母开始并以 'ok' 结尾的名称,查询如下:
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';
MySQL 事务
事务就是一组连续的数据库操作,执行起来仿佛像是单一的工作单元。换句话说,除非该组内所有操作都成功完成,否则事务永远不会结束。如果事务中的某一个操作失败,则整个事务也将失败。
事务的特点:
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
在 MySQL 中,事务通常以 BEGIN WORK 语句开始,以 COMMIT 或 ROLLBACK(只取其一) 语句结束。在开始与结束声明之间的 SQL 命令就构成了事务的主体。
MySQL ALTER 命令
利用 MySQL 的 ALTER 命令可以很方便地修改表名与表字段名,以及添加或删除表中已有的列。
示例:
删列:ALTER TABLE testalter_tbl DROP i;
增列:ALTER TABLE testalter_tbl ADD i INT;
ALTER TABLE testalter_tbl ADD i INT FIRST;
ALTER TABLE testalter_tbl ADD i INT AFTER c;
要想改变列的定义,需要使用 MODIFY 或 CHANGE 子句,并配合使用 ALTER 命令
改列:ALTER TABLE testalter_tbl MODIFY c CHAR(10);
ALTER TABLE testalter_tbl CHANGE i j BIGINT;
ALTER TABLE testalter_tbl CHANGE j j INT;
ALTER TABLE testalter_tbl MODIFY j BIGINT NOT NULL DEFAULT 100;
ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
ALTER TABLE testalter_tbl TYPE = MYISAM;
ALTER TABLE testalter_tbl RENAME TO alter_tbl;