加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL中DQL数据查询语句怎么编辑

发布时间:2022-02-17 09:15:15 所属栏目:MySql教程 来源:互联网
导读:基础查询 语法:select 查询列表 from 表名; 特点: 查询列表可以是:表中的字段、常量值、表达式、函数。 查询的结果是一个虚拟的表格。 执行顺序:from select (先找到表,再开始查询) 注意:`是着重号,当某张表中的字段与关键字冲突时,可以在该字段两边
       基础查询
 
       语法:select 查询列表 from 表名;
 
特点:
查询列表可以是:表中的字段、常量值、表达式、函数。
查询的结果是一个虚拟的表格。
 
执行顺序:from > select (先找到表,再开始查询)
 
注意:`是着重号,当某张表中的字段与关键字冲突时,可以在该字段两边加上着重号,以标明其是一个字段,而不是关键字(如`name`)。
【基础查询】# 选中样本库USER myemployees;# 1.查询表中的单个字段SELECT last_name FROM employees;# 2.查询表中的多个字段SELECT last_name,salary,email FROM employees;# 3.查询表中所有的字段SELECT * FROM employees;# 4. 查询常量值SELECT 'Tom';# 5.查询表达式SELECT 7%6;# 6. 查询函数SELECT VERSION();# 7.起别名(mysql中建议将起别名使用双引号引起来"别名")/*
优点:便于理解;连接查询时,如果要查询的字段有重名情况,可以使用起别名来区分
*/# 方式一,使用asSELECT 7%6 AS 结果;SELECT last_name AS 姓,first_name AS 名 FROM employees;# 方式二,使用空格SELECT 7%6 结果;SELECT last_name 姓,first_name 名 FROM employees;# 查询员工号为176的员工的姓名、部门、nianxinSELECT last_name,department_id,salary*12*(1+IFNULL(commission_pct,0)) AS 年薪 FROM employees; # 8.去重SELECT DISTINCT department_id FROM employees;# 9.+号的作用/*
select 13+21; 两个操作数都是数值型,自动做加法运算
其中一个为字符型,则将字符型转换为数值型
select '13'+1;    转换成功,做加法运算
select 'hello'+1;  转换失败,将字符型转换为0
select null+10; 只要其中一方为null,结果就为null
补充ifnull函数:SELECT IFNULL(commission_pct,0) AS 奖金率,commission_pct FROM employees;
mysql中用来拼接的不是+号,而是concat函数
*/SELECT CONCAT(last_name,first_name) AS "姓名" FROM employees;
基础查询总结 说明
1.查询表中的单个字段 select 字段1 from 表;
2.查询表中的多个字段 select 字段1,字段2,...字段n from 表;
3.查询表中的所有字段 select * from 表;
4.查询常量值 select '常量值;'
5.查询表达式 select 数值1 表达式 数值2;
6.查询函数 select f();
7.起别名 as
8.去重 distinct
9.拼接使用concat函数,而不是"+" concat(last_name,first_name)
学完了基础查询,尝试完成下面的练习题
 
答案:
1.正确
2.正确
3.应在英文状态下使用引号
4.DESC departments;;SELECT * FROM departments;
5.SELECT CONCAT(first_name,',',last_name,',',IFNULL(email,0)) AS "out_put" FROM employees;
 
 条件查询
 
语法:select 查询列表 from 表名 where 筛选条件;
 
执行顺序:from > where > select (先定位到表,然后开始筛选,最后走查询)
 
分类:
 
(1)按条件运算符筛选
 
条件运算符有: >  <    =   >=   <=   !=(或<>)
(2)按逻辑表达式筛选
 
支持&& || !,但推荐使用and or not
逻辑表达式作用:用于连接条件表达式
&&或and: 两个都为true,结果为true,反之为false
||或or : 只要有一个条件为true,结果即为true,反之为false
!或not : 取反
(3)模糊查询
 
模糊查关键字:like、between and、in、is null
(1)like关键字
可以判断字符型或数值型
  like一般和通配符搭配使用,通配符有
%:代表任意多个字符,包含0个
_:代表任意单个字符
(2)between...and关键字
  可以提高语句简洁度
  包含临界值
  两个临界值不能调换顺序
(3)in关键字
  可以提高语句简洁度
  in列表的值类型必须一致
(4)is null
  取反是 is not null
【条件查询】(1)按条件运算符筛选# 1.查询工资>12000的员工SELECT * FROM employees WHERE salary > 12000 ;# 2.查询部门编号不等于90的员工名和部门编号SELECT department_name, department_id FROM departments WHERE department_id<>90;---------------------------------------------------------------------------------------------------------------------(2)按逻辑表达式筛选# 1.查询工资在10000到20000之间的员工名、工资以及奖金率SELECT last_name,salary,commission_pct FROM employees WHERE salary>=10000 AND salary<=20000;# 2.查询部门编号不是在90到110之间的,或工资高于15000的员工信息SELECT * FROM employees WHERE NOT(department_id>=90 AND department_id<=110) OR salary>15000;---------------------------------------------------------------------------------------------------------------------(3)模糊查询# (1)like关键字# 1.查询员工名中包含字符a的员工的信息SELECT * FROM employees WHERE last_name LIKE '%a%';# 2.查询员工名中第三个字符为n,第五个字符为l的员工名和工资SELECT last_name,salary FROM employees WHERE last_name LIKE '__n_l%';# 3.查询员工名中第二个字符为_的员工名(转义)SELECT last_name FROM employees WHERE last_name LIKE '_$_%' ESCAPE '$';# (2)between...and关键字# 1.查询员工编号在100到120的员工信息SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120;# (3)in关键字# 1.查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的员工名和工种编号SELECT last_name,job_id FROM employees WHERE job_id IN('IT_PROG','AD_VP','AD_PRES');# (4)is null# 1.查询没有奖金的员工名和奖金率SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NULL;# is null仅仅可以用来判断null值;安全等于<=>既可以用来判断null值,又可以用来判断普通值# is null的可读性高于<=>,建议使用is nullSELECT last_name,commission_pct FROM employees WHERE commission_pct <=> NULL;

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!