如何利⽤mysql编写表⽩_Mysql基础编写sql案例(⼀)#基础查询
/*
语法:、
select 查询列表
from 表名;
查询列表可以是,表中的字段,常量值 表达式,函数
查询的表格是⼀个虚拟的表
*/
# 查询单个字段
select last_name from employees
# 查询多个字段
select last_name ,salary,email from employees
#查询表中的所有字段(尽量不要使⽤*如果字段明确使⽤字段)使⽤*号的顺序是和原始表的顺序是⼀样的
select * from employees
#查询常量值
SELECT 100 as 这个是100
#查询函数
select VERSION()
#起别名(在查询的时候如果有重名的情况,可以通过别名来区分)
select 100 as 这⾥是别名
select 100 这⾥是别名
> 如果别名⾥⾯包含了关键字最好通过引号引⽤起来
#去重:通过DISTINCT来去重
SELECT DISTINCT department_id from employees
# +号的作⽤
#sql中的+号的作⽤只是做为运算符
/*
* select 100+90两个操作数都是数值型,则做加法运算
* select '123' + 90 如果⼀⽅为字符串类型,字符数值转换成数值类型
* 如果转换成功就进⾏加法运算
* 如果转换失败就将字符型数值置为0
* select null + 90 在加法运算中不管那⼀⽅为Null结果都是null
SELECT FROM employees
#字符串拼接(在字符串拼接的时候使⽤的是CONCAT)
select CONCAT(last_name,first_name) from employees
# 条件查询
/*
select 查询列表 From 表名 where 筛选条件
*/
# 按条件表达式筛选
select * from employees where salary > 12000
#查询员⼯部门编号不是90的员⼯我姓名和部门的ID
select CONCAT(last_name,first_name) as 员⼯名,e.department_id from employees e WHERE department_id <> 90 #查询⼯资在10000到20000之间的员⼯名,⼯资以及奖⾦
SELECT
CONCAT( last_name, first_name ) AS 员⼯名,
salary AS ⼯资,
commission_pct * salary AS 奖⾦
FROM
employees
WHERE
salary > 10000
AND salary < 20000
# 查询部门编号不是在90到110之间,或者⼯资⾼于15000的员⼯信息
SELECT
*
FROM
employees
WHERE
department_id < 90 AND department_id > 110
OR salary > 15000
# 模糊查询
/*
* like
* between and
* is null |is not null
*/
# LIKE
/*
* %任意多的字符包含0个
* _ 任意单个字符
*/
SELECT
*
FROM
employees
WHERE
last_name LIKE ( '%a%' )
#查询员⼯名字第三个字符为e每5个字符为a的
SELECT * from employees WHERE last_name LIKE '__e_a%'
#查询第⼆个字符是_的
SELECT last_name FROM employees WHERE last_name LIKE '_\_%';
SELECT last_name FROM employees WHERE last_name LIKE '_$_%' ESCAPE '$'; #between and
# 包含两个临界值的
# 两个临界值不可以互换的
#查询员⼯编号在100 到120之间的员⼯信息
SELECT * FROM employees WHERE department_id BETWEEN 100 and 120
# in
# 查询员⼯的⼯种编号
SELECT
last_name,
job_id
FROM
employees
WHERE
job_id IN ( 'AD_PRES', 'AD_VP', 'IT_PROT' )
# is null
commission_pct
FROM
employees
WHERE
commission_pct IS NULL
#案例:查询有奖⾦的员⼯名和奖⾦率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NOT NULL
# 案例:查询员⼯号为176的员⼯的姓名和部门号和年薪
SELECT
last_name,
salary * 12 *(1+IFNULL(commission_pct,0))
FROM employees
WHERE employee_id = '176'
# 查询没有奖⾦,且⼯资⼩于18000的salay,last_name
SELECT
salary,
last_name
FROM
employees
WHERE
commission_pct IS NULL
AND salary < 18000
# 查询employees表中,job_id不为'IT'或者⼯资为12000的员⼯信息SELECT
*
job_id <> 'IT'
OR salary = 12000
# 查看Departments结构
DESC departments
# 查询departments表中涉及到了哪些位置的编号
SELECT DISTINCT
location_id
FROM
departments
WHERE
location_id IS NOT NULL
# 排序查询
/*
* select 查询列表 from 表 【where筛选】 order by 排序列表[asc 升序|desc 降序] * 默认是asc asc可以不写
*/
# 案例:查询员⼯的信息,要求⼯资从⾼到低排序
SELECT
*
FROM
employees
ORDER BY
salary DESC
# 案例:查询部门编号 >= 90 的员⼯信息,按⼊职时间
SELECT * FROM employees WHERE department_id >= 90
ORDER BY
hiredate DESC
datediff是字符型函数# 案例:按年薪的⾼低显⽰员⼯的信息和年薪【按表达式】
SELECT
*,
salary * 12 + ( 1+ IFNULL( commission_pct, 0 ) ) a
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论