学习MySQL的第二天

学习MySQL的第二天

mysql语言分类
DQL语言:Data Query Language 数据查询语言
select(查询)
DML语言:Data Manipulate Language 数据操纵语言
insert(创建)、update(修改)、delete(删除)。
DDL语言:Data Define Language 数据定义语言
create(创建)、alter(修改)、drop(删除)
DCL语言:Data Control Language 数据控制语言
commit、rollback

mysql语法规范

(1)不去分大小写。
(2)每句话用;或\g结尾。
(3)MySQL的注释:单行用:#或 –
多行用:/* */
(4)sql语句可以写在一行或多行,各子句一般分行写。
(5)关键字不能缩写也不能分行。
(6)用缩进提高语句的可读性。

MySQL查询语句

查询用到的基本语法(书写不可逆):
select:查看、选择、显示,后跟要查询的信息(可以为常量,表达式,函数,字段(要添加from表名)),查全部着用*表示
from:后跟要查询的表名
where:后跟筛选条件
group by:分组,后跟
having:后跟分组后进一步筛选条件
order by:排序(大到小,小到大)

基础查询:

1.显示常量100
select 100;
2.显示表达式
select 89*23;
3.显示函数(方法)
select length (‘任意’);ps length 为函数:查询字段字符长度
select version();ps version :查询当前mysql版本
4.显示表中的字段
select 列名,列名,… from 表名 ;
例如:select last_name from employees;
5.显示表中所有字段
select * from 表名
例如:select *from employees;
6.为要显示的字段起别名
select 列名 as(可写,可不写)要起的别名 ,列名 要起的别名 from 表名;
例如:select last_name as 姓 ,first_name 名,from employees;
7.去重
distinct 函数:去重
select distinct 列名 from 表名;
例如:select distinct department_id from employees;

条件查询

条件查询概念:根据指定的条件过滤出数据。
语句 select 字段(列名)from 表名 where 条件;
1.按条件表达式查询
条件运算符:>,<,>=,<=,!=,<>,<=>(安全等于用于判断是否为空)
例题:查询月薪>5000的员工信息?
select * from employees where salary>5000;
2.按逻辑表达式查询
逻辑运算符:and ,or, not;
例题:查询部门编号=90 或 月薪>10000并且月薪<15000的员工信息?
select *from employees where department_id =90 or (salary>10000 and salary<15000);
补:随机数:select rand() 随机生成0~1的随机数。
例:select cell(rand()*50) 生成1~50内的·随机数。
3.模糊查询:
(1)like :一般搭配通符使用,用作字符型判断。(‘%’ 任意多个字符,‘’ 任意单个字符)。
例题 查询姓名中第三个字符为’
'的员工信息?
select * from employees where last_name like ‘___%’;
(2)between and:在…之间,等价于使用>=值 and 字段<=值2,
但是只能是小到大,不可颠倒。
例题:显示出表employees部门编号在80-100之间 的姓名、职位?
select last_name ,job_id,department_id from employees where department_id between 80 and 100;
(3)in :判断某个字段的值是否在某个列表内,等价与or。
例题:显示出表employees的manager_id 是 100,101,110 的员工姓名、职位?
select last_name,manager_id ,job_id from employees where manager_id in (100,101,110);
(4)is null/is not null:是否为空/是否不为空。
例题:查询没有奖金的员工信息?
select *from employees where commission_pct is null;

排序查询

order by 排序查询字段;
语句:select 字段 from 表 order by 排序的字段 asc/desc(升序/降序);
(1)按单个字段排序
(2)按多个字段进行排序
(3)按表达式排序
(4)按别名排序
(5)按函数排序
例题:查询员工的姓名和部门号和年薪,按年薪降序 按姓名升序?
select last_name,department_id,salary*12(1+ifnull(commission_pct,o)) 年薪 from employees order by 年薪 desc, last_name asc;

分组函数与查询

分组函数分类:
max():最大值
min():最小值
sum():和
avg():平均值
count():计算非空个数
其中,sum,avg 只支持数值型,count,max,min支持任何类型,
这些分组函数忽略null值。count(*)这样写。
分组函数查出的值为一个不可和要查询的字段输出多个值的一起用。
分组查询:和分组函数一起搭配使用的查询,我们叫做分组查询,换句话说,分组查询一般都会用到分组函数。
语句:select 分组函数 from 表 where 分组前筛选 group by 分组字段 having 分组后筛选 order by 排序
例题:查询各个管理者手下员工的最低工资,其中最低工资不能低于6000,没有管理者的员工不计算在内?
select min(salary),manger_id
from employees
where manager_id is not null
group by manager_id
having min(salary)>6000;
以上为本人积累,如有帮助拿走不谢,不喜勿喷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值