MySQL 练习
基础语句
SHOW DATABASES 返回可用数据库的一个列表
SHOW TABLES 返回当前选择数据库中可用的表
SHOW COLUMNS FOR table_name
DESCRIBE == SHOW COLUMNS FOR 返回表名的表结构
SELECT `name` , codename FROM auth_permission 基础的查询语句
SELECT * FROM auth_permission 返回表中所有字段
SELECT DISTINCT `name` FROM auth_permission 返回当前字段不重复的内容
多个字段 DISTINCT 除非全部一样不然 都会列出来
SELECT `name` FROM `user` LIMIT 4; 返回不多与4行
SELECT `name` FROM `user` LIMIT 3,2; 第三行开始的后2个 第四第五个
SELECT `user`.`name` FROM `user` 限定表名和列名。不知道表里有什么列使用
排序数据
SELECT `user`.`name` FROM `user` ORDER BY `id` 根据id排序 数字按大小,字符串按英文顺序
SELECT `user`.`name` FROM `user` ORDER BY telephone ,`info` 可以多条进行排序。 先按号码排序再信息排序
EDSC 反向排序 ASC 正向排序
SELECT `user`.`name` FROM `user` ORDER BY telephone DESC ,`info` 号码反向排序后,再按信息排序
过滤数据
SELECT `user`.`name` FROM `user` WHERE `name` = 'mj' 只返回name = mj的行
操作符 = 等于 <> !=不等于 between z指定两个值之间
OR 和 AND
SELECT `user`.`name` FROM `user` WHERE (info > 10 OR telephone > 159) AND id >2 and的优先级高于and 执行是加上括号。
IN 搜索in括号内匹配的行
SELECT `user`.`name` FROM `user` WHERE telephone IN (159,189,111) 号码为159 189 111的行
NOT 否定关系 NOT iN
用通配符进行过滤
通配符 是 %
LIKE
SELECT `user`.`name` FROM `user` WHERE `name` LIKE '%m%' 包含m %m m结尾 m%m打头 默认不区分大小写
REGRXP 使用正则表达式匹配
1.基本字符 . 点 类似like
SELECT `user`.`name` FROM `user` WHERE telephone REGEXP '.11' 如果想区分大小写可使用关键字BINARY
2. | or 匹配
SELECT `user`.`name` FROM `user` WHERE telephone REGEXP '111|189'
3. [ ]匹配几个字符之一 类似or
SELECT `user`.`name` FROM `user` WHERE telephone REGEXP '[189]1' 以1结尾 前面包含括号里面的东西1或8或9
4. 非 ^
SELECT `user`.`name` FROM `user` WHERE telephone REGEXP '[^1]1' 匹配不是1打头 以1结尾
5.匹配范围 [1-5] [a-z]
SELECT `user`.`name` FROM `user` WHERE telephone REGEXP '[10-18]1'
6. 查询关键字 字符 以\\ 打头
REGEXP \\. \\-
匹配字符类
SELECT `user`.`name` FROM `user` WHERE `telephone` REGEXP '[[:alnum:]]{2}' 电话跟着任意字母或者数字的2个
'[[:alnum:]]+' 一位或多位数字或字母 '[[:alnum:]]{2}' 2位数字或字母 stricks? 使得s可选有没有都可以
创建计算字段
拼接 Concat() 2个字段放在一个行
SELECT CONCAT(`user`.`name`,'(',`user`.telephone,')') 姓名和电话 FROM `user` ORDER BY id
AS 别名
SELECT CONCAT(`user`.`name`,'(',`user`.telephone,')') AS info FROM `user` ORDER BY id
where 语句
使用数据处理函数
文本处理函数
soundex()返回发音类似的字段
日期和时间处理函数
汇总数据
distinct
group by 分组
having 和 group by 连用 来过滤数据
使用子查询
、IN 语句
selsect 当成查询字段