Mysql深入学习 基础篇 Ss.02 详解四类SQL语句

news2024/9/24 3:22:27

我亲爱的对手,亦敌亦友,但我同样希望你能成功,与我一起,站在人生的山顶上

                                                                                                              ——24.3.1

一、DDL 数据定义语言

1.DDL —— 数据库操作

查询

        查询所有数据库

show databases;

        查询当前数据库

select database();

创建

 create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];

删除

 drop database [if exists] 数据库名;

使用

use 数据库名;

2.DDL —— 表操作 —— 查询

前提是进入一个数据库

use 数据库名;

查询当前数据库所有表

show tables;

查询表结构

desc 表名;

查询指定表的建表语句

show create table 表名;

3.DDL —— 表操作 —— 创建 

create table 表名(
    字段1 字段1类型 [comment 字段1的注释],
    字段2 字段2类型 [comment 字段2的注释],
    字段3 字段3类型 [comment 字段3的注释],
        …… ……
    字段n 字段n类型 [comment 字段n的注释]
)[comment 表的注释];

注意:[……]为可选参数,最后一个字段后面没有逗号

例:

4.DDL —— 表操作 —— 数据类型

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型

数值类型

字符串类型

char性能好,varchar性能较差

日期时间类型

5.DDL —— 表操作 —— 修改

添加字段

alter table 表名 add 字段名 类型(长度) [comment 注释][约束];

修改数据类型 

alter table 表名 modify 字段名 新数据类型(长度);

修改字段名和字段类型

alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];

删除字段

alter table 表名 drop 字段名;

修改表名

alter table 表名 rename to 新表名;

6.DDL —— 表操作 —— 删除 

删除表

drop table [if exists] 表名;

删除指定表,并重新创建该表

truncate table 表名;

 7.DDL 数据定义语言 总结

二、DML 数据操纵语言

DML语言是数据操作语言,用来对数据库中表的数据记录进行增删改操作

添加数据(insert)

修改数据(update)

删除数据(delete)

1.DML —— 添加数据

1.给指定字段添加数据

insert into 表名 (字段名1,字段名2,……) values (值1,值2,……);

2.给全部字段添加数据,值与字段相对应起来

insert into 表名 values (值1,值2,……);

3.批量添加数据

insert into 表名 (字段名1,字段名2,……) values (值1,值2,……),(值1,值2,……),(值1,值2,……);

insert into 表名 values (值1,值2,……),(值1,值2,……),(值1,值2,……);

注意:

        插入数据时,指定的字段顺序需要与值的顺序一一对应

        字符串和日期型数据应该包含在引号中

        插入的数据大小,应该在字段的规定范围之内

2.DML —— 修改数据

update 表名 set 字段名 = 值1,字段名2 = 值2,… [where 条件];

注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据

3.DML —— 删除数据

delete from 表名 [where 条件]

注意:

        delete语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据

        delete语句不能删除某一字段的值(可以使用update修改字符值为null)

4.DML 数据操纵语言 总结

 三、DQL 数据查询语言

1.DQL —— 语法

 2.DQL —— 基本查询

1.查询多个字段

select 字段1,字段2,字段3… from 表名;
select * from 表名;

2.设置别名

select 字段1 [as 别名1],字段2[as 别名2] … from 表名;

as 可省略

3.去除重复记录

select distinct 字段列表 from 表名;

3.DQL —— 条件查询(where)

select 字段列表 from 表名 where 条件列表;

 4.条件查询中的条件

between后跟最小值,and后跟最大值

可以用in(选项)来替代or关键字

下划线匹配单个字符,%匹配任意数量字符

4.DQL —— 聚合函数(count、max、min、avg、sum)

1.介绍

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

2.常见聚合函数

        count                统计数量

        max                  最大值

        min                   最小值

        avg                   平均值

        sum                  求和

聚合函数作用于某一列数据

3.语法

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

注意:null值不参与所有聚合函数的运算

4.案例

5.DQL —— 分组查询(group by)

1.语法

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

2.where 与 having的区别

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

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

3.案例

在分组查询后一般查询展示的字段是分组之后的字段和聚合函数

 6.DQL —— 排序查询(order by)

1.语法

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

2.排序方式

        asc:升序(默认值)

        desc:降序

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

3.案例

7.DQL —— 分页查询(limit)

1.语法

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

注意:

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

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

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

2.案例

8.DQL —— 案例 

1.耷询年龄为20,21,22,23岁的女性员工信息。

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

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

select * from emp where age between 20 and 40 and gender = '男' 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;

9.DQL —— 执行顺序 

10.DQL —— 总结

四、DCL 数据控制语言

管理数据库用户

控制用户对数据库的访问权限

1.DCL —— 管理用户

1.查询用户

use mysql;

select * from user;

2.创建用户

create user '用户名' @ '主机名' identified by ’密码‘;

3.修改用户密码

alter user '用户名' @ '主机名' identified with mysql_native_password by '新密码';

4.删除用户

drop user '用户名' @ '主机名';

 注意:

        主机名可以用%通配

        这类SQL开发人员操作较少,主要是由DBA(数据库管理员)使用

2.DCL —— 权限控制

1.权限列表

2.查询权限

show grants for '用户名'@'主机名';

3.授予权限

grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

4.撤销权限

remoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';

5.案例

注意:

        多个权限之间,使用逗号分割

        授权时,数据库名和表名可以使用* 进行通配,代表所有

3.总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1487195.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux:kubernetes(k8s)部署CNI网络插件(4)

在上一章进行了node加入master Linux&#xff1a;kubernetes&#xff08;k8s&#xff09;node节点加入master主节点&#xff08;3&#xff09;-CSDN博客https://blog.csdn.net/w14768855/article/details/136420447?spm1001.2014.3001.5501 但是他们显示还是没准备好 看一下…

linux安全--DNS欺骗,钓鱼网站搭建

目录 一&#xff0c;实验准备 首先让client能上网 1&#xff09;实现全网互通&#xff0c;实现全网互通过程请看 2&#xff09;SNAT源地址转换 3&#xff09;部署DHCP服务 4)配置DHCP服务 5&#xff09;启动服务 6&#xff09;安装DNS服务 7&#xff09;DNS配置 8)启动DNS…

数据结构c版(3)——排序算法

本章我们来学习一下数据结构的排序算法&#xff01; 目录 1.排序的概念及其运用 1.1排序的概念 1.2 常见的排序算法 2.常见排序算法的实现 2.1 插入排序 2.1.1基本思想&#xff1a; 2.1.2直接插入排序&#xff1a; 2.1.3 希尔排序( 缩小增量排序 ) 2.2 选择排序 2.2…

Java两周半速成之路(第九天)

一.Object类 1.概述&#xff1a; Object类&#xff1a;是java中所有的类共同的父类 1、观察包所属后发现&#xff0c;Object类属于java.lang包下的类&#xff0c;今后使用的时候&#xff0c;不需要进行导包 2.构造方法 Object() 无参构造方法 3.Object类的成员方法 (1)…

C语言数组作为函数参数

有两种情形&#xff1b; 一种是数组元素作为函数实参&#xff1b;一种是数组名作为函数参数&#xff1b; 新建一个VC6单文档工程&#xff1b; void printshz(int , CDC* , int , int ); double getav(int a[5]); ...... void CShzcshView::OnDraw(CDC* pDC) {CShzcshDoc* pDo…

pycharm 自定义TODO类注释以及其高亮颜色

大体介绍 使用自定义TODO是为了方便看&#xff0c;并且快速定位到位置 上面是为了进行标记&#xff0c;下面是让哪些标记可以过滤掉&#xff08;自定义过滤规则&#xff09;&#xff0c;从而在pycharm下面的TODO可以显示并过滤 如何设置&#xff1f; Setting-Preferences-Ed…

华为配置攻击检测功能示例

配置攻击检测功能示例 组网图形 图1 配置攻击检测功能示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 企业用户通过WLAN接入网络&#xff0c;以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时&#xff0c;不影响用户的业务使用。…

AutoSar PWM配置详解

背景 芯片:AURIX TC3xx 软件:Vector DaVinci CFG(简称达芬奇) 目标:配置AURIX TC3xx的P34.4脚为30HZ的PWM输出 配置过程 1.AUTOSAR架构 下图显示了PWM在AUTOSAR架构中的位置&#xff0c;在MCAL区。 2.Port模块配置 主要配置Port的输出模式与输出类型。 查看手册 配置P…

2024.3.1 网络编程

1.思维导图 2.TCP机械臂测试 程序代码&#xff1a; #include <myhead.h> #define SER_IP "192.168.125.254" //服务器端IP #define SER_PORT 8888 //服务器端端口号#define CLI_IP "192.168.199.131" //客户端IP …

一二三文档管理系统整体介绍

系统简介 企事业单位一站式文档管理系统&#xff0c;让组织内文档管理有序&#xff0c;协作高效、安全可控。 本应用完全开源&#xff0c;开源协议为MIT。 本应用基于一二三应用开发平台构建&#xff0c;该平台完全开源&#xff0c;开源协议为MIT&#xff0c;传送门。 系统特…

VMware 虚拟机安装windows 10操作系统

先提前准备好镜像文件 1.创建新的虚拟机 2.选择自定义&#xff0c;然后下一步 v Windows 建议选择2G以上&#xff0c;下一步 选择网络地址转换&#xff08;NAT&#xff09;&#xff0c;下一步 这里可按自己的需求来分区&#xff0c;也可以安装好后再分区 选择立即重启&#xff…

【心理】程序人生之情绪与压力篇,附心理学相关证书备考指南(心理学312统考,心理治疗师,中科院心理咨询师,家庭教育指导师,企业培训证书)

程序员生活指南&#xff08;情绪与压力篇&#xff09;之 【心理】程序人生之情绪与压力专项&#xff0c;附心理学相关证书备考指南&#xff08;心理学312统考&#xff0c;心理治疗师&#xff0c;中科院心理咨询师&#xff0c;家庭教育指导师&#xff0c;企业培训证书&#xff0…

3.3日学习打卡----初学Redis(一)

3.3日学习打卡 目录&#xff1a; 3.3日学习打卡NoSQL为什么要用NoSQL什么是NoSQL?NoSQL的四大分类关系型数据库和非关系型数据及其区别NoSQL经典应用 RedisRedis是什么?Linux下安装RedisDocker下安装Redis基本知识 NoSQL 为什么要用NoSQL 单机Mysql的美好年代 在90年代&…

【排序】基于快速选择算法的快排实现

目录 一、常用排序算法比较 二、快速选择算法 快速选择 图解快速选择 三、代码实现 一、常用排序算法比较 排序 时间复杂度 空间复杂度 稳定性 插入排序 O(n) O(1) 稳定 希尔排序 O(nlogn)-O(n)取决于增量序列 O(1) 不稳定 选择排序 O(n) O(1) 不稳定 冒泡…

0.8秒一张图40hx矿卡stable diffusion webui 高质极速出图组合(24.3.3)

新消息是。经过三个月的等待&#xff0c;SD Webui (automatic1111)终于推出了新版本1.8.0&#xff0c;本次版本最大的更新&#xff0c;可能就是pytorch更新到2.1.2, 不过还是晚了pytorch 2.2.2版。 不过这版的一些更新&#xff0c;在forget分支上早就实现了&#xff0c;所以。…

Get Your Back Covered! Coverage, CodeCov和Tox

1. Coverage - 衡量测试的覆盖率 我们已经掌握了如何进行单元测试。接下来,一个很自然的问题浮现出来,我们如何知道单元测试的质量呢?这就提出了测试覆盖率的概念。覆盖率测量通常用于衡量测试的有效性。它可以显示您的代码的哪些部分已被测试过,哪些没有。 coverage.py …

市场复盘总结 20240301

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 二进三&#xff1a; 进级率中 40% 最常用的…

dubbo 与 zk 小结

zk官方注册中心&#xff08;mulicast zk nacos redis&#xff09; reference 远程调用 消费者 从zookeeper获取 访问url 注册中心挂了&#xff0c;服务正常访问&#xff1a; 消费者第一次调用将提供方缓存到本地&#xff0c;调用不再访问注册中心 提供者地址改变&#xff0c;…

金南瓜通讯--SECS/GEM程式配方管理recipe是什么

配方在SECS里面成为PPID&#xff0c;叫成recipe 配方有什么用&#xff1f; 设备在针对每款产品&#xff0c;都需要不同的加工工艺&#xff0c;这个加工工艺参数统称配方recipe SECS/GEM对配方描述是什么&#xff1f; process program --- process program is the pre-plann…