MySQL基础(语句)知识复习 (除索引和视图)

news2024/12/27 2:25:13

1.客户端和数据库操作

1.登录客户端界面:mysql -uroot -p

2.查看当前的数据库版本:select version();

3.显示所有数据库:show databases;,

4.创建数据库:create [IF NOT EXISTS] database 库名 character set 字符集编码 collate 排序规则;

5.选择数据库:use 库名;

6.查看当前选择了哪个数据库:select database();

7.删除数据库:drop [IF EXISTS] database 库名;  #非常危险

8.查看警告:show warnings;

9.退出:quite/exit

2.表操作

1.查看当前数据库有哪些数据表:show tables;

2.创建表:create table 表名(列名/字段名 数据类型,....);

3.查看表结构:desc 表名;

4.删除表:drop 表名;#非常危险

3.CRUD增删查改

3.1新增

语法:insert into 表名 (列名,...)values (值,...);

注释:指定了多少列名,后面的values的值就得一一对应

不指定列名,值的顺序就必须与表中列的数据相同!

3.2查询操作

a.全列查询:select * from 表名;//不加限制条件就会把所有的数据查询出来,磁盘开销会很大!

b.指定列查询:select 指定列,... from 表名;//推荐使用

c.表达式查询:select 表达式 from 表名;

d.别名查询:select 列名/表达式 as '别名' from 表名;

e.去重查询:select distinct 列名,... from 表名; #如果列名指定多个,则指定列的对应行数据必须完全相同才会去重!

f.排序:select 列名,... from 表名 order by 列名 asc|desc; #asc是升序,desc是降序

g.条件查询:select 列名,... from 表名 where 列名/表达式 比较运算符/逻辑运算符  order by 列名 asc|desc;

h.区间查询:select 列名,... from 表名 where 列名 between 开始条件 and 结束条件;

i.模糊查询:select 列名,... from 表名 where 列名 like '%值_'; #(%)匹配字符长度,(_)匹配单个字符

j. 分页查询:

①select * from 表名 where 条件 order by 列名 asc|desc limit num; #查询num条数据

②select * from 表名 where 条件 order by 列名 asc|desc limit start,num; #从第start条开始到num条结束

③select * from 表名 where 条件 order by 列名 asc|desc limit num offset start; #从第start条开始到num条结束

注释:start=(当前页数-1)* ( 当前页查询的条数)

3.3更新

update 表名 set 列名 =值 where 条件 order by ... limit num; #如果不指定列名和limit数量,就会更新表中的所有数据!

3.4删除

delete from 表名 where 条件 order by ... limit num; #如果不指定列名和limit数量,就会把表中的数据全部删除!

4.数据库约束

1.非空约束:NOT NULL 标记一个字段是否可以为空,指定了这个约束,该字段就不能为空(NULL)

2.唯一约束:UNIQUE 标记一个字段的内容在当前列中不唯一,不能重复,但是也不能为null

3.主键约束:PRIMARY KEY 非空且唯一 ,约束方式相当于:NOT NULL+UNIQUE 

主键一般与auto_increment(自增)使用!

4.默认方式:DEFAULT 当一个字段没有指定值时(为NULL),不指定列的值时,就用默认值去填充该字段。

注释:若指定了默认值,但是我们手动输入null值,还显示的是null,并非指定默认值!是因为手动输入值的优先级大于默认值!

5.外键约束:FOREIGN KEY 一个表中的字段与另一个表中的主键建立关系,对当前表的数据增删查改是数据库会自动给我们检验!

5.表的设计

1.第一范式:要求表中的每一个列不可再分

2.第二范式:在第一范式基础上,消除部分函数依赖,只存在在有复合主键的表中!

不满足第二范式的影响:数据冗余,更新异常,删除异常,新增异常!

3.第三范式:在第一,二范式基础上,消除传递依赖

6.关系模型

1.一对一

2.一对多

3.多对多

7.聚合函数

1.COUNT(列|*); 统计结果的条数

2.SUM(列); 求和

3.AVG(列); 求平均值

4.MAX(列);求最大值

5.MIN(列);求最小值

8.GROUP BY分组查询

语法:select 分组列,聚合函数 from 表名 group by 分组列 order by 列名;

HAVING 子句

对group by的结果进行条件过过滤

9.联合查询

9.1内连接

select * from 表名1,表名2 where 表名1.xxx=表名2.xxx(连接条件);

select * from 表名1 join 表名2 on 表名1.xxx=表名2.xxx(连接条件);

select * from 表名1 inner join 表名2 on 表名1.xxx=表名2.xxx(连接条件);

表连接的执行过程:

1.先计算参与表连接的笛卡尔积

2.通过连接条件进行过滤错误信息

3.加入查询条件

4.精减列名

9.2外连接,左外连接,右外连接

select * from 表名1 left join 表名2 on 表名1.xxx=表名2.xxx(连接条件);

select * from 表名1 right join 表名2 on 表名1.xxx=表名2.xxx(连接条件);

左外连接以左表为基准,左边的表中所有的数据全部显示,右表中没有对应的数据用NULL值填充

右外连接以右表为基准,右边的表中所有的数据全部显示,左表中没有对应的数据用NULL值填充

9.3自连接

select * from 表名 别名1,表名 别名2 where 别名1.xxx=别名2.xxx(连接条件);

把行转换成列,在查询的时候可以使用where语句条件进行过滤,实现行与行之间比较

9.4子查询

单行子查询:select * from 表名1 where 指定列=(select 指定列 from 表名2 where 条件);

多行子查询:select * from 表名1 where 指定列 IN (select 指定列 from 表名2 where 条件);

内层查询的结果作为外层的过滤条件,把多条语句合并为一句

子查询可以无限嵌套,层数过多会影响效率

9.5合并查询

  select * form 表名1 union(union  all )select * from 表名2;

union去重,union all不去重

作用是把两个结果集中合并成一个返回

注意:合并查询时多个查询的查询列表必须匹配!

SQL语句的执行顺序

FROM --> JOIN ON --> WHERE --> GROUP BY --> HAVING --> SELECT --> DISTINCT --> ORDER BY --> ORDER  BY --> LIMIT

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

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

相关文章

arkTS:使用ArkUI实现用户信息的持久化管理与自动填充(PersistentStorage)

arkUI:使用ArkUI实现用户信息的持久化管理与自动填充(PersistentStorage) 1 主要内容说明2 例子2.1 登录页2.1.1登陆页的相关说明2.1.1.1 持久化存储的初始化2.1.1.2 输入框2.1.1.3 记住密码选项2.1.1.4 登录按钮的逻辑2.1.1.5 注册跳转 2.1.…

基于SpringBoot+Vue的美妆购物网站

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

【SpringBoot+Vue】x-admin管理系统跟做

技术栈 前端技术说明Vue前端框架Vuex全局状态管理框架ElementUI前端UI框架Axios前端HTTP框架vue-element-admin项目脚手架 后端技术说明SpringBoot容器MVC框架MyBatisORM框架MyBatis-plusMyBatis增强工具Redis非关系型数据库 数据库准备 SET NAMES utf8mb4; SET FOREIGN_KE…

【Docker】Docker配置远程访问

配置Docker的远程访问,你需要按照以下步骤进行操作: 1. 在Docker宿主机上配置Docker守护进程监听TCP端口 Docker守护进程默认只监听UNIX套接字,要实现远程访问,需要修改配置以监听TCP端口。 ‌方法一:修改Docker服务…

LeetCode hot100(自用背诵、部分题目、非最优解)

点击题目可以跳转到LeetCode 哈希 两数之和 public int[] twoSum(int[] nums, int target) {int lengthnums.length;int[] ans new int[2];for (int i 0; i <length-1 ; i) {for (int j i1; j < length; j) {if(nums[i]nums[j]target){ans[0]i;ans[1]j;}}}return an…

Android -- 简易音乐播放器

Android – 简易音乐播放器 播放器功能&#xff1a;* 1. 播放模式&#xff1a;单曲、列表循环、列表随机&#xff1b;* 2. 后台播放&#xff08;单例模式&#xff09;&#xff1b;* 3. 多位置同步状态回调&#xff1b;处理模块&#xff1a;* 1. 提取文件信息&#xff1a;音频文…

基础Web安全|SQL注入

基础Web安全 URI Uniform Resource Identifier&#xff0c;统一资源标识符&#xff0c;用来唯一的标识一个资源。 URL Uniform Resource Locator&#xff0c;统一资源定位器&#xff0c;一种具体的URI&#xff0c;可以标识一个资源&#xff0c;并且指明了如何定位这个资源…

ESG研究报告白皮书与ESG治理报告合集(2020-2023年)

一.资料范围&#xff1a;&#xff08;1&#xff09;ESG白皮书及指南;&#xff08;2&#xff09;ESG研究报告,&#xff08;3&#xff09;ESG治理报告分析&#xff08;4&#xff09;上市公司ESG报告&#xff08;知名企业&#xff09; 二、资料用途&#xff1a;可以分析研究企业E…

WPF指示灯的实现方式

WPF指示灯的实现方式 样式 XAML <Button x:Name"Btn1" Width"25" Height"25" Grid.Row"0" Grid.Column"1" Margin"10 5 5 5 "><Button.Template><ControlTemplate TargetType"Button"…

初识QT第一天

思维导图 利用Qt尝试做出原神登陆界面 import sys from PyQt6.QtGui import QIcon, QPixmap, QMovie from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QLineEdit# 封装原神窗口类 class Genshin(QWidget):# 构造函数def __init__(self):# 初始化父类…

【Linux】线程池设计 + 策略模式

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 一&#xff1a;&#x1f525; 线程池 1-1 ⽇志与策略模式1-2 线程池设计1-3 线程安全的单例模式1-3-1 什么是单例模式1-3-2 单例模式的特点1-3-3 饿汉实现⽅式和懒汉实现⽅式1-3-4 饿汉…

vim插件管理器vim-plug替代vim-bundle

文章目录 vim-plug与vim-bundle对比vim-plug安装vim-plug管理安装插件相关文章 vim-plug与vim-bundle对比 vim-plug 和 vim-bundle 都是 Vim 的插件管理器&#xff0c;但它们有一些关键的区别。以下是两者的主要对比&#xff1a; 易用性和简洁性 vim-plug: 易用性: vim-plug …

107.【C语言】数据结构之二叉树求总节点和第K层节点的个数

目录 1.求二叉树总的节点的个数 1.容易想到的方法 代码 缺陷 思考:能否在TreeSize函数内定义静态变量解决size的问题呢? 其他写法 运行结果 2.最好的方法:分而治之 代码 运行结果 2.求二叉树第K层节点的个数 错误代码 运行结果 修正 运行结果 其他写法 1.求二…

【代码随想录day48】【C++复健】739. 每日温度;496.下一个更大元素 I;503.下一个更大元素II

739. 每日温度 一顿操作猛如虎&#xff0c;一看击败5%。一眼顶针&#xff0c;鉴定为在存栈的时候把值和下标一起存了&#xff0c;所以导致了问题。 class Solution { public:vector<int> dailyTemperatures(vector<int>& temperatures) {stack<vector<…

vscode + conda + qt联合开发

安装vscode 安装conda 清华大学开源软件镜像(Anaconda下载)_清华大学镜像-CSDN博客 conda create新建一个环境&#xff0c;激活这个环境&#xff0c;然后安装pyside6 pip install pyside6 -i https://pypi.tuna.tsinghua.edu.cn/simple 安装成功后输入 pip list查看是否安装…

第十一篇 绘图matplotlib.pyplot的使用

文章目录 摘要安装方法入门案例使用plt绘图使用ax绘图plt.figure参数plot参数案例一 绘制红色实心的点状图案例二 绘制红色的破折线图案例三 绘制两条线颜色总结设置标题、轴名称、图例使用plt实现绘图使用ax实现绘图legend()中loc设置刻度plt自定义刻度ax自定义刻度plt.title …

Unity-Particle System属性介绍(一)基本属性

什么是ParticleSystem 粒子系统是Unity中用于模拟大量粒子的行为的组件。每个粒子都有一个生命周期&#xff0c;包括出生、运动、颜色变化、大小变化和死亡等。粒子系统可以用来创建烟雾、火焰、水、雨、雪、尘埃、闪电和其他各种视觉效果。 开始 在项目文件下创建一个Vfx文件…

计算机的错误计算(一百七十二)

摘要 探讨 MATLAB 对于算式 的计算误差。 例1. 在 MATLAB 中计算 的值。 直接贴图吧&#xff1a; 这样&#xff0c;MATLAB 的输出中只有3位正确数字&#xff0c;有效数字的错误率为 (16-3)/16 81.25% . 因为16位的正确输出为 0.2971242332737277e-18&#xff08;ISReals…

Flink四大基石之CheckPoint(检查点) 的使用详解

目录 一、Checkpoint 剖析 State 与 Checkpoint 概念区分 设置 Checkpoint 实战 执行代码所需的服务与遇到的问题 二、重启策略解读 重启策略意义 代码示例与效果展示 三、SavePoint 与 Checkpoint 异同 操作步骤详解 四、总结 在大数据流式处理领域&#xff0c;Ap…

S4 UPA of AA :新资产会计概览

通用并行会计&#xff08;Universal Parallel Accounting&#xff09;可以支持每个独立的分类账与其他模块集成&#xff0c;UPA主要是为了支持平行评估、多货币类型、财务合并、多准则财务报告的复杂业务需求 在ML层面UPA允许根据不同的分类账规则对物料进行评估&#xff0c;并…