b站黑马程序员MySQL课程的学习笔记

DQL(数据查询语句)

练习用数据:


create table emp(id int,workno varchar(10),name varchar(10),gender char(1),age tinyint unsigned,idcard char(18),entrydate date,worksddress varchar(50)
) comment '员工表';insert into emp (id, workno, name, gender, age, idcard, entrydate, worksddress) values (1,'1','刘艳','女',20,'12345678909876','2000-01-01','北京'),(2,'2','刘小艳','女',21,'12345678809876','2006-01-01','北京'),(3,'3','刘近','男',24,'12333678909876','2001-05-01','河南'),(4,'4','丽丽','女',25,'44345678909876','2005-01-01','上海'),(5,'5','黄丽','女',23,'22775678909876','2004-05-01','南昌'),(6,'6','金小','女',27,'32348878909876','2009-05-01','北京'),(7,'7','张艳','女',20,'42345678909876','2010-01-01','北京'),(8,'8','小力','男',20,'52345678909876','2022-07-01','北京'),(9,'9','宏光','男',20,'62345678909876','2013-01-01','江苏'),(10,'10','勇士','男',20,'72345678909876','2014-08-01','北京'),(11,'11','故里','女',20,'82345678909876','2011-01-01','北京'),(12,'12','范嘉','女',23,'92345678909876','2017-07-01','沈阳'),(13,'13','王丹','女',24,'23345678909876','2006-06-01','北京'),(14,'14','诚实','男',26,'45345678909876','2000-07-01','大连'),(15,'15','黄亮','男',28,'78345678909876','2009-07-01','北京'),(16,'16','周芷若','女',20,null,'2009-01-01','北京');

基本查询

功能 语法格式
查询多个字段 select 字段1,字段2,字段3……from 表名;
查询所有字段 select*from 表名;
设置别名 select 字段1[as 别名1],字段2[as 别名2]……from 表名;
去除重复记录 select distinct 字段列表 from 表名;
select name,workno,age from emp;
select*from emp;
select worksddress from emp;
select worksddress as '工作地址' from emp;
select distinct worksddress as '工作地址' from emp;

条件查询

条件查询语法:select 字段列表 from 表名 where 条件列表;

select *from emp where age=20;
select * from emp where age<26;
select*from emp where idcard is null;
select *from emp where idcard is not null;
select *from emp where age!=20;
select *from emp where age>=23 and age<=28;
select *from emp where age between 23 and 28;
select *from emp where gender='女' and age<23;
select *from emp where age=20 or age=21 or age=23;
select *from emp where age in (20,21,23);
select *from emp where name like '___';
select *from emp where idcard like '%6';

聚合函数

聚合函数:将一列数据作为一个整体,进行纵向计算

语法: select 聚合函数(字段列表)from 表名;

聚合函数 语义
count 统计数量
max 最大值
min 最小值
avg 平均值
sum 求和
select count(*) from emp;#null不参与聚合函数计算
select avg(age) from emp;
select max(age) from emp;
select sum(age) from emp where worksddress='北京';

分组查询(group by)

语法:select 字段列表 from 表名[where 条件] group by 分组字段[having 分组后过滤条件];

where和having区别:
执行时机不同:where是分组前进行过滤,不满足where条件,不参与分组,having是分组后对结果进行过滤

判断条件不同:where不能对聚合函数进行判断,而having可以

执行顺序:where>聚合函数>having
分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无意义

select gender,count(*) from emp group by  gender;
select gender,avg(age) from emp group by  gender;
select worksddress,count(*) from emp where (age<45) group by worksddress having count(*)>=4;

排序查询(order by)

语法:select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;

排序方式: asc:升序(默认) desc:降序

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

分页查询(limit)

语法:select 字段列表 from 表名 limit 起始索引,查询记录数;

起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数

分页查询是数据库的方言,不同数据库有不同的实现,MySQL中是limit

如果查询的是第一页数据,起始索引可以省略,直接简写为limit 查询记录数

select * from emp limit 0,10;#查询第一页员工信息,每页展示10条记录
select * from emp limit 10,10;#查询第二页员工信息,每页展示10条记录

练习:

执行顺序:

from
表名列表
where
条件列表
group by
分组字段列表
having
分组条件列表
select
字段列表
order by
排序字段列表
limit
分页参数

DCL(数据控制语句)

管理用户

功能 语法格式
查询用户 use mysql; select * from user;
创建用户 create user ‘用户名’@‘主机名’ identified by ‘密码’;
修改用户密码 alter user ‘用户名’@‘主机名’ identified with mysql_native_password by ‘密码’;
删除用户 drop user ‘用户名’@‘主机名’;
#创建用户itcast,只能够在当前主机localhost访问,密码123456;
create user 'itcast'@'localhost' identified  by '123456';
#创建用户heima,可以在任意主机访问该数据库,密码123456;
create user 'heima'@'%' identified by '123456';
#修改用户heima 的访问密码为1234;
alter user 'heima'@'%' identified with mysql_native_password by '1234';
#删除itcast@localhost用户
drop user 'itcast'@'localhost';

权限控制

功能 语法格式
查询权限 show grants for ‘用户名’@‘主机名’;
授予权限 grant 权限列表 on 数据库名.表名 to ‘用户名’@‘主机名’;
撤销权限 revoke 权限列表 on 数据库名.表名 from ‘用户名’@‘主机名’
权限 说明
all,all privileges 所有权限
select 查询数据
insert 插入数据
update 修改数据
delete 删除数据
alter 修改表
drop 删除数据库/表/视图
create 创建数据库/表
show grants for 'heima'@'%';
grant all on test.* to 'heima'@'%';
#windows搜索cmd 输入MySQL -u heima -p回车再输入密码1234回车用户连接成功可以查询相关权限
revoke all on test.* from 'heima'@'%';

SQL:DQL,DCL相关推荐

  1. Python|SQL详解之DDL|DML|DQL|DCL|索引|视图、函数和过程|JSON类型|窗口函数|接入MySQL|清屏|正则表达式|executemany|语言基础50课:学习(14)

    文章目录 系列目录 原项目地址 第41课:SQL详解之DDL 建库建表 删除表和修改表 第42课:SQL详解之DML insert操作 delete 操作 update 操作 完整的数据 第43课:S ...

  2. 如何管理和使用哪些命令操作MySQL数据库?(基本操作,SQL语言,DDL,DML,DQL,DCL,Windows字符和图形界面MySQL安装)

    文章目录 前言 一:数据库基本操作命令 1.1:MySQL常用管理操作是哪些? 1.2:查看数据库列表信息的命令是? 1.3:查看数据库中的数据表信息命令是? 1.4:显示数据表的结构(字段)命令是? ...

  3. MySql基础汇总-DDL DML DQL DCL,存储过程,事务,触发器,函数等

    use testdb;-- /**********************************************一:数据库操作语言****************************** ...

  4. 【SQL必知必会】002-基础篇:了解SQL:一门半衰期很长的语言

    [SQL必知必会]002-基础篇:了解SQL:一门半衰期很长的语言 文章目录 [SQL必知必会]002-基础篇:了解SQL:一门半衰期很长的语言 一.概述 二.半衰期很长的 SQL 三.入门 SQL ...

  5. SQL:结构化查询语言(Structured Query Language)。

    SQL:结构化查询语言(Structured Query Language). 是关系型数据库标准语言. 特点:简单,灵活,功能强大. -------------------------------- ...

  6. MySQL8.0 之SQL(DQL)单表、多表查询(详细回顾篇)

    今日重点:DQL 及学习要点与练习环境说明 DQL 是数据查询语言,用于查询数据,它是我们在真正的开发中使用最多的一种.而我们项目用 得最多的也是查询.而在 SQL 中, DQL 所占比例也是最大的, ...

  7. Mysql单表、多表、SQL语句(DQL)

    第1章    SQL语句(DQL) 1.1     DQL准备工作和语法 1.1.1     准备工作 #创建商品表: create table product( pid int primary ke ...

  8. 第三章:DQL命令(一)

    第三章:DQL命令(一) ​ DQL命令就是select语句,也是mysql我们用到的最多的语句. 整体语法: SELECT [ALL | DISTINCT] { * | table.* | [ ta ...

  9. MySQL:DQL 数据查询语句盘点

    本篇内容包括:DQL 的简介.SELECT 语句.WHERE 条件语句.JOIN 连接查询(多表查询)和分组.过滤.排序.分页.子查询的使用. 一.DQL 简介 DQL(Data QueryLangu ...

最新文章

  1. c cin.get()的用法小结_c语言中static 用法
  2. 在Objective-C中创建一个抽象类
  3. linux下安装mysql笔记
  4. Golang精编100题
  5. 【探索PowerShell 】【六】脚本基础简要
  6. Nagios 3.x 在线帮助中文版
  7. 一个合格的CloudNative应用:程序当开源软件编写,应用配置外置
  8. 怎么用python画房子_怎么用python画小猪佩奇
  9. redis 正则匹配value_Java-19-Redis
  10. python能不能自动写代码_微软最强 Python 自动化工具开源了!不用写一行代码!...
  11. VBXtraLib 1.0 下载
  12. 基金仓位“88%魔咒”再现 百点长阳能否击破?
  13. user interface(用户界面)
  14. 云计算概念的基本介绍,云计算的特点主要有哪些?
  15. 21秋信源编码技术作业(1)——使用Audacity软件绘制清浊音频谱图并进行分析
  16. python把文件转化为二进制流-python:将一个文件转换为二进制文件(binary)
  17. Ubuntu突然无法解析域名解决
  18. 基于登录注册用ajax实现手机验证码功能
  19. java读取apk、ipa包名、版本名、版本号等信息
  20. 【自动控制原理】【计算机控制技术】通俗易懂地理解Z变换

热门文章

  1. 【多线程】优雅使用线程池结合CompletableFuture实现异步编排
  2. “新四大发明”走出去:“小鲜肉之国”孟加拉也有“支付宝”啦
  3. c++数独游戏3.1
  4. linux终端窗口没标题栏,登录后所有窗口看不到标题栏且不能拖动
  5. 看看苹果面试提的44个奇葩问题,你能回答出几个
  6. 网页服务器版本,华为网页版本进云服务器
  7. 从最近的比赛学习CTR/CVR
  8. Ducky Debugging(字符串输入)题解
  9. pcl::PolygonMesh简析
  10. 三菱Qplc.QD75Mh4触摸屏及plc程序,光纤伺服通讯