进阶一: 基础查询
/*
语法:
select 查询列表 from 表名;
类似于:System.out.println(打印东西);
- 查询列表可以是:表中的字段、常量值、表达式、函数
2。查询的结果是一个虚拟的表格
*/
USE myemployees;
#1.查询表中的单个字段
SELECT last_name FROM employees;
#2.查询多个字段
SELECT last_name,email,first_name FROM employees;
#3.查询表中所有的字段
##方式一
SELECT
employees.employee_id,
employees.first_name,
employees.last_name,
employees.email,
employees.phone_number,
employees.job_id,
employees.salary,
employees.commission_pct,
employees.manager_id,
employees.department_id,
employees.hiredate
FROM
employees;
##方式二 (*表示字段的打印顺序是按表中顺序来的)
SELECT *FROM employees;
#4.查询常量值
SELECT 100;
SELECT 100 from employees;#没什么必要
SELECT ‘jhon’;
注意: 字符型和日期型的常值量必须用单引号引起来
#5.查询表达式
SELECT 100%98;
#6.查询函数(必须有返回值的)
SELECT 函数名(实参列表)
SELECT VERSION();
#7.为字段起别名
/*
①便于理解
②当讲到连接查询的时候,如果字段有重名的话,可以使用别名区分开来
*/
#方式一:
SELECT 100%86 as 结果;
SELECT last_name as 姓,first_name as 名 FROM employees;
SELECT salary,job_id,email AS conn FROM employees;
#方式二
SELECT last_name 姓,first_name 名 FROM employees;
#当别名中有特殊符号比如空格、#,建议把别名加上双引号(单引号也可以):
SELECT salary as “out put” FROM employees;
#8.去重(DISTINCT)
#案例:查询员工表中涉及到的所有部门编号
SELECT DISTINCT department_id FROM employees;
#9.+号的作用
/* 在mysql中,+号只起到运算符的作用
- SELECT 100+90 ;
- SELECT ‘100’+234;
只要其中一方为字符型,试图将字符型数值转换为数值型(转换成功,继续做加法) - SELECT ‘jhon’+100; (转换失败,则将字符型数值转换为0)
- SELECT null+10;只要一方为null,则结果一定为null
*/
#补充concat函数
#查询员工名和姓,连成一个字段,显示为姓名
#当用concat进行拼接的时候,如果拼接的字段有为null的,则整体结果为null
SELECT CONCAT(last_name,first_name) FROM employees;
#显示出employee表的全部列,并用逗号进行连接,列头显示out_put
SELECT CONCAT(employee_id,’,’,salary,’,’,commission_pct)
as ‘out_put’
from employees;
#补充ifnull函数
#要对为null的字段进行判断,并赋给0值
SELECT IFNULL(commission_pct,0) as ‘0’, commission_pct FROM employees;
SELECT CONCAT(employee_id,’,’,salary,’,’,IFNULL(commission_pct,0))
as ‘out_put’
from employees;
#补充isNull函数
SELECT commission_pct ,ISNULL(commission_pct) FROM employees;
#查看部门departments表的结构(DESCRIBE)
DESC departments;
进阶二 条件查询
/*
语法:
SELECT 查询列表
FROM 表名
WHERE 筛选条件
顺序: from 表名-》WHERE 筛选-》SELECT 列表
分类:
一、按条件表达式筛选
条件运算符:> < = != <> >= <=
二、按逻辑表达式筛选
逻辑运算符:
作用:用于连接条件表达式
&& || !(java中)
AND OR NOT
三、模糊查询
LIKE
特点:
①一般和通配符搭配使用,可以判断字符型或数值型
通配符:
% 任意多个字符,包含0个字符
_ 任意单个字符
BETWEEN 临界值1 AND 临界值2
① 包含2个临界值,且不能调换顺序
not BETWEEN 临界值1 AND 临界值2(不在范围内)
IN
含义:判断某字段的值是否属于IN 列表中的某一项
特点:比OR效率高
IN列表的值类型必须一致或兼容('123' 123)
不支持通配符(IN 其实可以等同于=)
is null
仅仅可以判断null值。
is not null
=或<>不能用来判断NULL值
*/
#二、逻辑表达式
#查询部门编号不是在90-110之间,或者工资高于15000的员工信息