mysql查询语句进阶
时间:2019-08-22
本文章向大家介绍mysql查询语句进阶,主要包括mysql查询语句进阶使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
-- 内连接查询 SELECT id,name,age,dept_name FROM tb_students_info INNER JOIN tb_departments WHERE tb_students_info.dept_id=tb_departments.dept_id; -- 左外连接查询 SELECT name,dept_name FROM tb_students_info s LEFT OUTER JOIN tb_departments d ON s.dept_id = d.dept_id; -- 右外连接查询 SELECT name,dept_name FROM tb_students_info s RIGHT OUTER JOIN tb_departments d ON s.dept_id = d.dept_id; -- 自连接查询 SELECT s1.id, s1.name FROM tb_students_info s1,tb_students_info s2 WHERE s1.dept_id=s2.dept_id AND s2.id = 1; -- IN子查询 SELECT name FROM tb_students_info WHERE dept_id IN (SELECT dept_id FROM tb_departments WHERE dept_type= 'A' ); -- 内层子查询 SELECT dept_id FROM tb_departments WHERE dept_type='A'; -- 外层子查询 SELECT name FROM tb_students_info WHERE dept_id IN(1,2); -- NOT IN子查询 SELECT name FROM tb_students_info WHERE dept_id NOT IN (SELECT dept_id FROM tb_departments WHERE dept_type='A'); -- 带等号运算符的子查询 SELECT name FROM tb_students_info WHERE dept_id = (SELECT dept_id FROM tb_departments WHERE dept_name='Computer'); -- 带不等号运算符的子查询 SELECT name FROM tb_students_info WHERE dept_id <> (SELECT dept_id FROM tb_departments WHERE dept_name='Computer'); -- EXISTS子查询 SELECT * FROM tb_students_info WHERE EXISTS (SELECT dept_name FROM tb_departments WHERE dept_id=1); -- 分组查询与计数函数的应用 SELECT dept_id,COUNT(*) AS total FROM tb_students_info GROUP BY dept_id; -- 分组查询 SELECT dept_id,GROUP_CONCAT(name) AS names FROM tb_students_info GROUP BY dept_id; -- 使用HAVING关键字设置条件 SELECT dept_id,GROUP_CONCAT(name) AS names FROM tb_students_info GROUP BY dept_id HAVING COUNT(name)>1; -- 查询以特定字符开头的记录 SELECT * FROM tb_departments WHERE dept_name REGEXP '^C'; -- 查询以特定字符串开头的记录 SELECT * FROM tb_departments WHERE dept_name REGEXP '^Ch'; -- 查询以特定字符结尾的记录 SELECT * FROM tb_departments WHERE dept_name REGEXP 'y$'; -- 查询以特定字符串结尾的记录 SELECT * FROM tb_departments WHERE dept_name REGEXP 'my$'; -- 用符号“.”匹配任意一个字符 SELECT * FROM tb_departments WHERE dept_name REGEXP 'o.y'; -- 用符号“*”匹配多个字符 SELECT * FROM tb_departments WHERE dept_name REGEXP '^Ch*'; -- 用符号“+”匹配多个字符 SELECT * FROM tb_departments WHERE dept_name REGEXP '^Ch+'; -- 匹配指定单个字符串 SELECT * FROM tb_departments WHERE dept_name REGEXP 'in'; -- 匹配指定多个字符串 SELECT * FROM tb_departments WHERE dept_name REGEXP 'in|on'; -- 匹配任意一个字母 SELECT * FROM tb_departments WHERE dept_name REGEXP '[io]'; -- 匹配任意一个数字 SELECT * FROM tb_departments WHERE dept_call REGEXP '[123]'; -- 匹配指定字符以外的字符 SELECT * FROM tb_departments WHERE dept_name REGEXP '[^a-t]';
原文地址:https://www.cnblogs.com/277223178dudu/p/11393780.html
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- LeetCode75|二叉搜索树的第k大节点
- LeetCode86|只出现一次的数字II
- LeetCode85|只出现一次的数字III
- LeetCode84|只出现一次的数字
- LeetCode83|排序矩阵查找
- LeetCode82|翻转字符串里的单词
- LeetCode81|移动零
- LeetCode80|反转字符串中的元音字母
- LeetCode79|平方数之和
- LeetCode91|寻找重复数
- LeetCode90|两个数组的交集
- LeetCode89|在排序数组中查找数字I
- LeetCode88|两数之和IV-输入BST
- LeetCode98|判定字符是否唯一
- LeetCode97|合并两个有序链表