MySQL(4) 之 DQL查询(基础和条件查询)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z_x_Qiang/article/details/84781346

基础查询

/*
语法:
select 列名 from 表名;

特点:
1.查询类表可以是:列,常量,表达式,函数
2.查出来的是一个虚拟的表格;
*/
# 1.查询单个字段;
SELECT first_name FROM employees;

# 2.查询多个字段
SELECT last_name,salary,email FROM employees;

# 3.查询表中的所有字段
SELECT * FROM employees;

# 4.查看常量值
SELECT 100;
SELECT 'zhangqi';

# 5.查询表达式
SELECT 100 %3;

# 6.查询函数
SELECT VERSION();

# 7.给列起别名
# 语法 select 列 as 别名 from 表名;(as可以省略;别名也可以加引号,如果有可是符号必须使用引号)
SELECT last_name AS 'yourname' FROM employees;
SELECT last_name 'yourName' FROM employees;

# 8.去重复(distinct 关关键字)
SELECT DISTINCT department_id FROM employees;

# 9. +号的作用
/*
在mysql中 + 只有一个功能:运算符,加法;
select 100+90;   结果是190;
select '120'+80;  结果是200;
select 'jion'+20;  结果是20;
select null+30;  结果为null;
*/
# 连接员工名和姓为一个字段,中间用'---'连接,在mysql中拼接只能使用concat;
SELECT CONCAT(last_name,'---',first_name) AS 'name' FROM employees;

条件查询

# 条件查询
/*
1.按条件表达式筛选
    条件运算符:> < = != >= <=
2. 按逻辑表达式赛选
    &&  ||  ! (java中的)
    and or not
3. 模糊查询
    like 
    between and
    in
    is null
*/


# 1.条件表达式查询
SELECT * FROM employees WHERE salary>10000;

SELECT last_name,department_id 
FROM employees 
WHERE department_id!=90;

# 2. 逻辑运算符,逻辑运算其实就是连接条件表达式的;
SELECT last_name,salary
FROM employees
WHERE salary>10000 AND salary<20000;

# 查询部门编号不是在90和110之间的,或者工资高于15000的员工的信息;
SELECT last_name
FROM employees
WHERE NOT(department_id>=90 AND department_id<=110) OR salary>15000;

#3.模糊查询

3.1  like 查询员工名中包含a的员工信息
# '%' 就是通配符,任意个未知字符;
# '_' 也是通配符,但是只能表示一个未知字符(如果多个可以使用多个下划线表示);
# '\'转义 '%'和'_' 字符;但是可以指定转义字符 escape关键字指定;


SELECT * FROM employeeswhere last_name LIKE 'a%';
# 查询第三个字符为a的员工信息;
SELECT * FROM employeeswhere last_name LIKE '__a%';
# $ 表示一个转义字符,吧后面的 _ 转义了;
SELECT * FROM employeeswhere last_name LIKE '_$_a%' ESCAPE '$';

3.2 between and  
# (包含临界值)临界值不能跌倒;
SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120;

 3.3 in 关键字
# 查询员工的工种编号是it_prog、ad_vp、ad_pres 三种中的;小括号中的值必须统一; 
SELECT * FROM employees WHERE job_id IN('it_prog','ad_vp','ad_pres');

3.4 is null ; is not null
# = != <> 不能判断null值;
# 查询没有奖金的员工名和奖金率
SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NULL;

# 安全等于: <=>
# 安全等于可以判断null、数值
SELECT last_name,commission_pct FROM employees WHERE commission_pct <=> NULL;
SELECT last_name,commission_pct FROM employees WHERE commission_pct <=> 1.2;

练习:查询员工号为176 的姓名和年薪

SELECT last_name ,salary*12*(1+commission_pct) nianxin 
FROM employees
WHERE employee_id = 176;

猜你喜欢

转载自blog.csdn.net/z_x_Qiang/article/details/84781346
今日推荐