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

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

                                                                                                              ——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.总结

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣难题:重排链表

首先通过快慢指针找到中间节点&#xff0c;然后将中间节点之后和之前的部分分为两个链表&#xff0c;然后翻转后面的链表&#xff0c;注意方法&#xff0c;然后将两个链表交替链接。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode…

Unity 使用HyBirdCLR调用Newtonsoft.json报错问题

查了老半天&#xff0c;原来是这里的问题 官方解释 解释&#xff1a; 在Unity的IL2CPP Code Generation中&#xff0c;"Faster runtime"和"Faster (smaller) builds"是两种不同的优化设置选项&#xff0c;它们分别影响着运行时性能和构建大小。下面是它们…

一元函数积分学——刷题(16

目录 1.题目&#xff1a;2.解题思路和步骤&#xff1a;3.总结&#xff1a;小结&#xff1a; 1.题目&#xff1a; 比较这两种题的求解方法 2.解题思路和步骤&#xff1a; 3.13&#xff1a; 这个题就很适合用万能公式&#xff0c;因为可以把1t2消掉&#xff1a; 也可以用三角…

多模太与交叉注意力应用

要解决的问题 对同一特征点1从不同角度去拍&#xff0c;在我们拿到这些不同视觉的特征后&#xff0c;就可以知道如何从第一个位置到第二个位置&#xff0c;再到第三个位置 对于传统算法 下面很多点检测都是错 loftr当今解决办法 整体流程 具体步骤 卷积提取特征&#xff0c;…

unity学习(53)——选择角色界面--分配服务器返回的信息

好久没写客户端了&#xff0c;一上手还不太适应 1.经过测试&#xff0c;成功登陆后&#xff0c;客户端请求list_request&#xff0c;成功返回&#xff0c;如下图&#xff1a; 可见此时model第三个位置的参数是1.也成功返回了所有已注册角色的信息。 2.之前已知创建的角色信息…

少儿编程机器人技术开发公司的创新之路

行业背景&#xff0c;国家政策利好 随着科技的不断发展&#xff0c;少儿编程机器人技术作为一种新兴的教育方式逐渐受到人们的关注。这项技术将编程与机器人技术相结合&#xff0c;通过互动性强、趣味性高的方式&#xff0c;帮助儿童学习编程知识&#xff0c;培养逻辑思维和创…

【从部署服务器到安装autodock vina】

注意&#xff1a;服务器 linux系统选用ubuntu 登录系统&#xff0c;如果没有图形化见面可以先安装图形化界面 可以参考该视频 --> linux安装图形化界面 非阿里云ubuntu 依次执行以下命令 sudo apt-get update sudo apt-get install gnome sudo reboot阿里云ubuntu 需多执…

python:布伊山德U检验(Buishand U test,BUT)突变点检测(以NDVI时间序列为例)

作者:CSDN @ _养乐多_ 本文将介绍布伊山德U检验(Buishand U test,BUT)突变点检测代码。以 NDVI 时间序列为例。输入数据可以是csv,一列NDVI值,一列时间。代码可以扩展到遥感时间序列突变检测(突变年份、突变幅度等)中。 结果如下图所示, 文章目录 一、准备数据二、…

【数据可视化】动手用matplotlib绘制关联规则网络图

下载文中数据、代码、绘图结果 文章目录 关于数据绘图函数完整可运行的代码运行结果 关于数据 如果想知道本文的关联规则数据是怎么来的&#xff0c;请阅读这篇文章 绘图函数 Python中似乎没有很方便的绘制网络图的函数。 下面是本人自行实现的绘图函数&#xff0c;如果想…

解决idea各种奇葩报错(前提代码正确)

1.当idea中报错&#xff0c;把idea系统关掉 2.删除.idea中原有的配置 3.重新打开工程&#xff0c;基本上可以解决&#xff08;具体情况具体分析&#xff09;

DDT+yaml实现数据驱动接口自动化

前言 在之前的文章中我们知道了yaml文件可以进行接口自动化。除了yaml文件&#xff0c;Excel文档也可以用来编写自动化测试用例。 一定很想知道这两者有什么区别吧&#xff1f; 1、Excel使用简单&#xff0c;维护难&#xff0c;多种数据类型转换起来比较复杂 2、yaml学习稍…

解决QT cc1plus.exe: error: out of memory allocating

QT中增加资源文件过大时&#xff0c;会编译不过&#xff0c;报错&#xff1a; cc1plus.exe: out of memory allocating 1073745919 bytes 使用qrc资源文件&#xff0c;也就是在QT的工程中添加资源文件&#xff0c;就是添加的资源文件&#xff08;如qrc.cpp&#xff09;会直接被…

解决轻松解决谷歌浏览器火狐浏览器主页被360导航篡改问题浏览器启动页被篡改为360导航栏等

重置Chrome浏览器设置 尝试重置chrome浏览器全部设置。进入Chrome设置页&#xff0c;点击最下方的“高级设置”。 将鼠标滚到最底部&#xff0c;点击“重置设置” 然后关闭浏览器&#xff0c;重新打开即可。 包括ie几乎所有浏览器都可以重置... 重置火狐浏览器设置 设置——主…

WIN32部分知识介绍

&#x1f308;前言&#xff1a;此篇博客是为下一篇的《贪吃蛇》的做的前戏工作&#xff0c;这篇会讲到贪吃蛇所用到的一些工具以及函数。 首先在讲WIN32的内容时我们想了解一下他的基本概念&#xff1a; Windows 这个多作业系统除了协调应⽤程序的执⾏、分配内存、管理资源之外…

zookeeper Study

zk介绍&#xff1b;一种分布式协调服务。 分布式锁&#xff0c;集群选举&#xff0c;数据同步 。 zk都能进行操作&#xff0c;redis&#xff0c;kafka&#xff0c;rabbitmq&#xff0c;都能够用zk做协调管理服务。关键时zk简单操作。 应用说明&#xff1a; 简单介绍一下流程 &…

Vivado原语模板

1.原语的概念 原语是一种元件&#xff01; FPGA原语是芯片制造商已经定义好的基本电路元件&#xff0c;是一系列组成逻辑电路的基本单元&#xff0c;FPGA开发者编写逻辑代码时可以调用原语进行底层构建。 原语可分为预定义原语和用户自定义原语。预定义原语为如and/or等门级原语…

吴恩达机器学习-可选实验室:逻辑回归(Logistic Regression))

在这个不评分的实验中&#xff0c;你会探索sigmoid函数(也称为逻辑函数)探索逻辑回归;哪个用到了sigmoid函数 import numpy as np %matplotlib widget import matplotlib.pyplot as plt from plt_one_addpt_onclick import plt_one_addpt_onclick from lab_utils_common impor…

​SSD主控厂商SMI 4FQ23最新财报发布:业绩表现超预期

Silicon Motion Technology Corporation公布了截至2023年12月31日的第四季度财务报告。 2023年第四季度&#xff08;4FQ23&#xff09;销售收入相对于上一季度&#xff08;3FQ23&#xff09;增长了17%。同时&#xff0c;与去年同期&#xff08;4FQ22&#xff09;相比&#xff0…

设计模式学习系列 -- 随记

文章目录 前言 一、设计模式是什么&#xff1f; 二、设计模式的历史 三、为什么以及如何学习设计模式&#xff1f; 四、关于模式的争议 一种针对不完善编程语言的蹩脚解决方案 低效的解决方案 不当使用 五、设计模式分类 总结 前言 最近可能工作生活上的稳定慢慢感觉自己丢失…

Python实现ETS指标平滑模型(ETSModel算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 ETS模型&#xff08;Error-Trend-Seasonality Model&#xff09;&#xff0c;是一种广泛应用于时间序列…