SQL基础——SQL分类

声明:以下内容为根据黑马数据库视频教程,个人整理的笔记,方便记录学习。

SQL分类详细知识导图

请添加图片描述

SQL四种类型的全称和说明

在这里插入图片描述

案例SQL语句编写

DDL

数据库操作

查询当前数据库,切换数据库,查看数据库的表

select database();
use test;
show tables;

表操作

创建一张表,表结构如下:
在这里插入图片描述

建表语句
在这里插入图片描述

表操作案例
在这里插入图片描述
在这里插入图片描述

DML

添加数据

案例: 给employee表所有的字段添加数据 ;

insert into employee(id,workno,name,gender,age,idcard,entrydate) values (1,'1','Itcast','男',10,'123456789012345678','2000-01-01');

如果是给全部字段添加数据:

insert into employee values(2,'2','张忌','男',18,'123456789012345670','2005-01-01');

批量添加数据

insert into employee values(3,'3','韦笑','男',38,'123456789012345670','2005-01-01'),(4,'4','赵敏','女',18,'123456789012345670','2005-01-01');

修改数据

修改某一条数据**(带条件)**

update employee set name = 'itheima' where id = 1;

修改所有数据**(不带条件)**

update employee set entrydate = '2008-01-01';

删除数据

删除性别为女的员工

delete from employee where gender = '女';

删除所有员工

delete from employee;

DQL

条件查询

A. 查询年龄等于 88 的员工

select * from emp where age=88;

B. 查询年龄小于 20 的员工信息

select * from emp where age<20;

C. 查询年龄小于等于 20 的员工信息

select * from emp where age<=20;

D. 查询没有身份证号的员工信息

select * from emp where idcard is null;

E. 查询有身份证号的员工信息

select * from emp where idcard is not null;

F. 查询年龄不等于 88 的员工信息

select * from emp where age != 88;select * from emp where age <> 88;

G. 查询年龄在15岁(包含) 到 20岁(包含)之间的员工信息

select * from emp where age>=15 and age<=20;select * from emp where age>=15 && age<=20;select * from emp where age between 15 and 20;

H. 查询性别为 女 且年龄小于 25岁的员工信息

select * from emp where gender='女' and age<25;select * from emp where gender='女' && age<25;

I. 查询年龄等于18 或 20 或 40 的员工信息

select * from emp where age=18 or age=20 or age=40;select * from emp where age in(18,20,40);

J. 查询姓名为两个字的员工信息

 select * from emp where name like '__';

K. 查询身份证号最后一位是X的员工信息

select * from emp where idcard like '%X'select * from emp where idcard like '_________________X';

聚合函数

count、max、min、avg、sum
A. 统计该企业员工数量

select count(*) from emp;

B. 统计该企业员工的平均年龄

select avg(age) from emp;

C. 统计该企业员工的最大年龄

select max(age) from emp;

D. 统计该企业员工的最小年龄

select min(age) from emp;

E. 统计西安地区员工的年龄之和

select sum(age) from emp where address='西安';

分组查询

A. 根据性别分组 , 统计男性员工 和 女性员工的数量

select gender,count(*) from emp group by gender;

B. 根据性别分组 , 统计男性员工 和 女性员工的平均年龄

select gender,avg(age) from emp group by gender;

C. 查询年龄小于45的员工 , 并根据工作地址分组 , 获取员工数量大于等于3的工作地址

select address,count(*) address_count  from emp where age < 45 group 
by address having address_count>=3;

D. 统计各个工作地址上班的男性及女性员工的数量

select address,gender,count(*) 数量 from emp group by gender,address;

排序查询

A. 根据年龄对公司的员工进行升序排序

select * from emp order by age;select * from emp order by age asc;

B. 根据入职时间, 对员工进行降序排序

select * from emp order by entrydate desc;

C. 根据年龄对公司的员工进行升序排序 , 年龄相同 , 再按照入职时间进行降序排序

select * from emp order by age asc,entrydate desc;

分页查询

A. 查询第1页员工数据, 每页展示10条记录

select * from emp limit 0,10;select * from emp limit 10;

B. 查询第2页员工数据, 每页展示10条记录

select * from emp limit 10,10;

起始索引= (页码-1)*页展示记录数

综合案例
1). 查询年龄为20,21,22,23岁的女员工信息。

select * from emp where gender = '女' and age in (20,21,22,23);

2). 查询性别为 男 ,并且年龄在 20-40 岁(含)以内的姓名为三个字的员工。

select * from emp where gender='男' and (age between 20 and 40) and name like '___';

3). 统计员工表中, 年龄小于60岁的 , 男性员工和女性员工的人数。

select gender,count(*) from emp where age <60 group by gender;

4). 查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按入职时间降序排序。

select name,age * from emp where age <= 35 order by age asc,entrydate desc;

5). 查询性别为男,且年龄在20-40 岁(含)以内的前5个员工信息,对查询的结果按年龄升序排序,年龄相同按入职时间升序排序。

select * from emp where gender='男' and (age between 20 and 40) order by age asc,entrydate asc limit 5;

DCL

管理用户案例

A. 创建用户itcast, 只能够在当前主机localhost访问, 密码123456;

create user 'itcast'@'localhost' identified by '123456';

B. 创建用户heima, 可以在任意主机访问该数据库, 密码123456;
(这里用%来通配)

create user 'heima'@'%' identified by '123456';

C. 修改用户heima的访问密码为1234;

alter user 'heima'@'%' identified with mysql_native_password by '1234';

D. 删除 itcast@localhost 用户

drop user 'itcast'@'localhost';

权限控制案例

在这里插入图片描述
A. 查询 ‘heima’@‘%’ 用户的权限

show grants for 'heima'@'%';

B. 授予 ‘heima’@‘%’ 用户itcast数据库所有表的所有操作权限

grant all on itcast.* to 'heima'@'%';

C. 撤销 ‘heima’@‘%’ 用户的itcast数据库的所有权限

revoke all on itcast.* from 'heima'@'%';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值