SQL基础——SQL分类

devtools/2024/9/25 8:35:42/

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

SQL基础之SQL分类

  • SQL分类详细知识导图
  • SQL四种类型的全称和说明
  • 案例SQL语句编写
    • DDL
    • DML
      • 添加数据
      • 修改数据
      • 删除数据
    • DQL
      • 条件查询
      • 聚合函数
      • 分组查询
      • 排序查询
      • 分页查询
    • DCL
      • 管理用户案例
      • 权限控制案例

SQL分类详细知识导图

请添加图片描述

SQL四种类型的全称和说明

在这里插入图片描述

案例SQL语句编写

DDL

数据库操作

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

sql">select database();
use test;
show tables;

表操作

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

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

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

DML

添加数据

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

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

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

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

批量添加数据

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

修改数据

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

sql">update employee set name = 'itheima' where id = 1;

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

sql">update employee set entrydate = '2008-01-01';

删除数据

删除性别为女的员工

sql">delete from employee where gender = '女';

删除所有员工

sql">delete from employee;

DQL

条件查询

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

sql">select * from emp where age=88;

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

sql">select * from emp where age<20;

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

sql">select * from emp where age<=20;

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

sql">select * from emp where idcard is null;

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

sql">select * from emp where idcard is not null;

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

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

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

sql">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岁的员工信息

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

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

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

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

sql"> select * from emp where name like '__';

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

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

聚合函数

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

sql">select count(*) from emp;

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

sql">select avg(age) from emp;

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

sql">select max(age) from emp;

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

sql">select min(age) from emp;

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

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

分组查询

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

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

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

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

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

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

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

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

排序查询

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

sql">select * from emp order by age;select * from emp order by age asc;

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

sql">select * from emp order by entrydate desc;

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

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

分页查询

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

sql">select * from emp limit 0,10;select * from emp limit 10;

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

sql">select * from emp limit 10,10;

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

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

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

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

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

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

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

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

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

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

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

DCL

管理用户案例

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

sql">create user 'itcast'@'localhost' identified by '123456';

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

sql">create user 'heima'@'%' identified by '123456';

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

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

D. 删除 itcast@localhost 用户

sql">drop user 'itcast'@'localhost';

权限控制案例

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

sql">show grants for 'heima'@'%';

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

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

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

sql">revoke all on itcast.* from 'heima'@'%';

http://www.ppmy.cn/devtools/98190.html

相关文章

leetcode 80 删除有序数组中的重复项 II

正文 仍旧使用双指针&#xff0c; 思想与 leetcode 26 删除有序数组中的重复项 一致。只是此时因为要求保留重复元素两次&#xff0c;我们的左侧指针可以从第二个数据开始&#xff0c;且右侧指针需要和两个元素的值进行判断。 class Solution:def removeDuplicates(self, nums…

Postman断言写法以及脚本pm对象

pm对象 pm对象包含与正在执行的脚本有关的所有信息&#xff0c;并允许访问正在发送的请求的副本或接受到的响应&#xff0c;它还允许获取和设置环境变量和全局变量 pm.info对象 pm.info对象包含与正在执行的脚本有关的信息&#xff0c;如请求名称、请求ID和迭计数等有用信息储存…

string的模拟实现

前言 为了加深对string类的理解&#xff0c;本节我们来学习一下string类的模拟实现&#xff0c;那么废话不多说&#xff0c;我们正式进入今天的学习。 &#xff08;模拟实现的所有函数我都做了声明和定义分离&#xff0c;但其实string的构造等一些短小而频繁调用的函数其实可以…

xss GAME (xss漏洞攻击1-8)

目录 xss网页链接 第一关 第二关 第三关 ​编辑第四关 ​编辑第五关 ​编辑第六关 第七关 第一种 Function构建函数 第二种 tostring parseInt 第三种 silce() ​编辑第八关&#xff08;安全过滤框架 dom破坏&#xff09; xss网页链接 XSS Game - Learning XSS Ma…

嵌入式和单片机有什么区别?

目录 &#xff08;1&#xff09;什么是嵌入式&#xff1f; &#xff08;2&#xff09;什么是单片机&#xff1f; &#xff08;3&#xff09;嵌入式和单片机的共同点 &#xff08;4&#xff09;嵌入式和单片机的区别 &#xff08;1&#xff09;什么是嵌入式&#xff1f; 关…

Oracle基本SQL操作-用户角色权限管理

一、用户权限管理 -- 创建锁定用户&#xff0c;此时用户不可用 create USER zhucl IDENTIFIED BY 123456 account lock; 会提示用户被锁定&#xff1a; -- 删除用户 drop user zhucl;-- 重新创建用户&#xff0c;不锁定 create user zhucl IDENTIFIED BY 123456 account unlo…

XSS game复现(DOM型)

目录 1.Ma Spaghet! 2.Jefff 3.Ugandan Knuckles 4.Ricardo Milos 5.Ah Thats Hawt 6.Ligma 7.Mafia 8.Ok, Boomer 1.Ma Spaghet! 通过简单的尝试发现传递参数可以直接进入h2标签 接下来我们尝试传入一个alert(1) 可以看到并没有触发。原因是在innerHTML中官方禁用了sc…

产品经理原型设计工具 Axure 的使用

原型设计工具 Axure 中文学习网&#xff1a;https://www.axure.com.cn/ 1、安装 2023年Axure RP9最新安装、汉化教程&#xff08;附带安装包下载&#xff09; 2、基本使用 Axure rp9入门图文教程——基操及介绍&#xff08;看完就能上手&#xff0c;人人都是产品经理&#x…