1.USE选择数据库
MySQL中,在对一个数据库进行操作之前需要先 USE 数据库名 选中该数据库。
2.UPDATE和DELETE时WHERE条件后要跟主键
更新和删除表记录的时候,where后没有用主键作为查询条件就会报错并且操作失败,这是因为MySQL运行在安全模式下, 变量SQL_SAFE_UPDATES 的值默认为1,此时非主键条件下无法执行update或者delete命令。
解决方法:
(1)修改变量SQL_SAFE_UPDATES = 0;
(2)在where条件后添加上主键。
3.BINARY关键字
MySQL查询记录的时候是不区分大小写的,如果有需要的话就要用到BINARY关键字。
SELECT … FROM … WHERE BINARY …
4.执行完SELECT语句要及时释放游标内存
(此条还未用到,先在这里记下来)
5.UNION ALL的使用
MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中,默认情况下会删除重复数据。(所以 UNION DISTINCT的作用等同于UNION)
若需要将所有重复值结果选取出来,使用 UNION ALL :
SELECT 列名 FROM 表名 UNION SELECT 列名FROM 表名ORDER BY 列名;
SELECT 列名 FROM 表名UNION ALL SELECT 列名 FROM 表名 ORDER BY 列名;
6.SQL LIKE 子句中使用百分号 %字符来表示任意字符
如果不使用百分号 %, LIKE 子句与"="的效果是一样的。
LIKE 匹配示例如下:
%a :以a结尾的数据
a% :以a开头的数据
%a% :含有a的数据
_ a _ :三位且中间字母是a的
_ a:两位且结尾字母是a的
a_ :两位且开头字母是a的
7.WITH ROLLUP
可以实现在分组统计数据基础上再进行统计(SUM,AVG,COUNT…)
SELECT a, SUM(…) as … FROM … GROUP BY a WITH ROLLUP
8.关于NULL值
在 MySQL 中,NULL 值与任何其它值的比较(包括 NULL)永远返回 NULL,所以处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。
IS NULL : 当列的值是 NULL,此运算符返回 true;
IS NOT NULL : 当列的值不为 NULL, 运算符返回 true;
<=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true;
不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
10. ALTER 命令
(1)ALTER 命令及 DROP 子句来删除数据表的某列
ALTER TABLE 表名 DROP 列名
如果数据表中只剩余一个字段则无法使用DROP来删除。
(2)ALTER 命令及 ADD 子句向数据表中添加列
ALTER TABLE 表名 ADD 列名 INT
执行以上命令后,该列会自动添加到数据表的末尾。如果需要指定新增字段的位置,可以使用MySQL的关键字 FIRST (设定位第一列)和AFTER 字段名(设定位于某个字段之后)。例如:
ALTER TABLE 表名 ADD 列名 INT FIRST
ALTER TABLE 表名 ADD 列名 INT AFTER 已存在的某列
(3)ALTER 命令及MODIFY 或 CHANGE 子句修改字段类型及名称
MODIFY子句,如:
ALTER TABLE 表名 MODIFY i(列名) CHAR(10)
CHANGE 子句,如:
ALTER TABLE 表名 CHANGE i j BIGINT
CHANGE 子句只修改字段类型:
ALTER TABLE 表名 CHANGE j j INT
11.创建索引
基本的创建索引方式:
CREATE INDEX indexName ON 表名(列名(length))
注意:如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length。