SQL:DQL,DCL
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相关推荐
- Python|SQL详解之DDL|DML|DQL|DCL|索引|视图、函数和过程|JSON类型|窗口函数|接入MySQL|清屏|正则表达式|executemany|语言基础50课:学习(14)
文章目录 系列目录 原项目地址 第41课:SQL详解之DDL 建库建表 删除表和修改表 第42课:SQL详解之DML insert操作 delete 操作 update 操作 完整的数据 第43课:S ...
- 如何管理和使用哪些命令操作MySQL数据库?(基本操作,SQL语言,DDL,DML,DQL,DCL,Windows字符和图形界面MySQL安装)
文章目录 前言 一:数据库基本操作命令 1.1:MySQL常用管理操作是哪些? 1.2:查看数据库列表信息的命令是? 1.3:查看数据库中的数据表信息命令是? 1.4:显示数据表的结构(字段)命令是? ...
- MySql基础汇总-DDL DML DQL DCL,存储过程,事务,触发器,函数等
use testdb;-- /**********************************************一:数据库操作语言****************************** ...
- 【SQL必知必会】002-基础篇:了解SQL:一门半衰期很长的语言
[SQL必知必会]002-基础篇:了解SQL:一门半衰期很长的语言 文章目录 [SQL必知必会]002-基础篇:了解SQL:一门半衰期很长的语言 一.概述 二.半衰期很长的 SQL 三.入门 SQL ...
- SQL:结构化查询语言(Structured Query Language)。
SQL:结构化查询语言(Structured Query Language). 是关系型数据库标准语言. 特点:简单,灵活,功能强大. -------------------------------- ...
- MySQL8.0 之SQL(DQL)单表、多表查询(详细回顾篇)
今日重点:DQL 及学习要点与练习环境说明 DQL 是数据查询语言,用于查询数据,它是我们在真正的开发中使用最多的一种.而我们项目用 得最多的也是查询.而在 SQL 中, DQL 所占比例也是最大的, ...
- Mysql单表、多表、SQL语句(DQL)
第1章 SQL语句(DQL) 1.1 DQL准备工作和语法 1.1.1 准备工作 #创建商品表: create table product( pid int primary ke ...
- 第三章:DQL命令(一)
第三章:DQL命令(一) DQL命令就是select语句,也是mysql我们用到的最多的语句. 整体语法: SELECT [ALL | DISTINCT] { * | table.* | [ ta ...
- MySQL:DQL 数据查询语句盘点
本篇内容包括:DQL 的简介.SELECT 语句.WHERE 条件语句.JOIN 连接查询(多表查询)和分组.过滤.排序.分页.子查询的使用. 一.DQL 简介 DQL(Data QueryLangu ...
最新文章
- c cin.get()的用法小结_c语言中static 用法
- 在Objective-C中创建一个抽象类
- linux下安装mysql笔记
- Golang精编100题
- 【探索PowerShell 】【六】脚本基础简要
- Nagios 3.x 在线帮助中文版
- 一个合格的CloudNative应用:程序当开源软件编写,应用配置外置
- 怎么用python画房子_怎么用python画小猪佩奇
- redis 正则匹配value_Java-19-Redis
- python能不能自动写代码_微软最强 Python 自动化工具开源了!不用写一行代码!...
- VBXtraLib 1.0 下载
- 基金仓位“88%魔咒”再现 百点长阳能否击破?
- user interface(用户界面)
- 云计算概念的基本介绍,云计算的特点主要有哪些?
- 21秋信源编码技术作业(1)——使用Audacity软件绘制清浊音频谱图并进行分析
- python把文件转化为二进制流-python:将一个文件转换为二进制文件(binary)
- Ubuntu突然无法解析域名解决
- 基于登录注册用ajax实现手机验证码功能
- java读取apk、ipa包名、版本名、版本号等信息
- 【自动控制原理】【计算机控制技术】通俗易懂地理解Z变换
热门文章
- 【多线程】优雅使用线程池结合CompletableFuture实现异步编排
- “新四大发明”走出去:“小鲜肉之国”孟加拉也有“支付宝”啦
- c++数独游戏3.1
- linux终端窗口没标题栏,登录后所有窗口看不到标题栏且不能拖动
- 看看苹果面试提的44个奇葩问题,你能回答出几个
- 网页服务器版本,华为网页版本进云服务器
- 从最近的比赛学习CTR/CVR
- Ducky Debugging(字符串输入)题解
- pcl::PolygonMesh简析
- 三菱Qplc.QD75Mh4触摸屏及plc程序,光纤伺服通讯