MySQL【知识改变命运】复习前1~11

news2024/10/23 5:17:02

复习

  • 1:客户端和数据库操作
  • 2:表操作
  • 3: CRUD 增删改查
  • 4:数据库约束
  • 5:表的设计
  • 6:聚合函数
  • 7:GROUP BY分组查询和HAVING子句
  • 8:联合查询(表连接查询)

1:客户端和数据库操作

 1. 登录 mysql -uroot -p
> 2. 查看当前数据库的版本 select version();
> 3. 显示所有数据库 show databases> 4. 查看创建库的语句 show  create database 库名;
> 5. 创建数据库 create database [if not exists];
数据库名 character set 字符集编码 collate 排序规则;
> 6. 选择数据库 use 数据库名
> 7. 查看当前选择的数据库 select database();
> 8. 修改数据库 alter database数据库名 character set 字符编码及 collate 排序规则;
> 9. 删除数据库 drop database [if exists] 数据库;
> 10. 查看警告信息 show warnings;
> 11. 退出 quit/exit

2:表操作

> 1.查看当前数据库中有哪些表 show tables> 2.创建一张新表 create table [if not exists] 表名 (列/字段名 数据类型[,列/字段名 数据类型]);
> 3.查看表结构 desc 表名;
> 4.查看创表语句 show create table 表名;
> 5.修改表 alter table 表名 {add | modify| dorp |rename} 列;
> 6.删除表 dorp table [if exists] 表名;

3: CRUD 增删改查

> 1.新增-插入 insert into 表名 [列名[,列名]] values ([,]);
> 指定了多少列名,就需要指定多少值,值与列名一一对应,不指定列名,值的顺序与个数和表中定义列的顺序一一对应


2.查询操作
>a.全列查询 select * from 表名;//不加限制的查询会把表中所有的数据都查出来.
>b.指定列查询 select[,...]from 表名;//推荐使用指定列查询
>c.列为表达式查询 列名/表达式 from 表名;
>d.去重查询 select distinct 列名[,列名] from 表名 //如果查询列表中有多个列,每个列的值都相等才会判定为重复
>e.别名查询 select 列名/表达式 [as ] '别名' from 表名 //别名中如果包含空格,需要用单引号引用
> f.排序 select 列名[,列名...] from 表名 order by 列名 asc | desc[,列名 asc |desc]; asc升序,desc降序
> g.条件查询select * from 表名 where 列名/表达式 比较/逻辑运算符;//多个条件可以用and和or 连接
> 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;//从strat 条开始向后查num条记录
>  select *from 表名 where 条件 order by 列名 asc|desc limit num offset start;//
>  从strat 条开始向后查num条记录

3.更新
update 表名 set=where 条件 order by 子句 limit num;
//如果不指定条件和limit的数据就会更新整张表的数据
4.删除
delect from 表名 where 条件 order by 子句 limit num;//如果不指定条件和limit的数据就会删除整表数据
5.截断表
truncate 表名;//把表的状态重置为初始状态,表中的数据也会被清空

4:数据库约束

1.非空约束: NOT NULL 标记一个字段是否可以为空,指定这个约束,字段的值就不能为空
2.唯一约: UNIQUE 标记一个字段的内容在当前表中唯一,不能重复,但是可以为NULL 
3.主键约束: PRIMARY KEY 在校验的方式上相当于NOT NULLUNIQUE 的组合,建议为每张表中定义自增主键
4.外键约束:FOREIGN KEY 一个表中的字段与另一个表中的主键或者唯一键建立关联关系,当对表中的数据进行增删改查的时候数据库会帮助我们进行检查
5.默认约束:DEFAULT 当一个字没有制定时,就会用默认值去填充该列,当手动指定列的值位NULL,默认就不会生效
6.检查约束:CHECK 对当前列的值合法性的进行检查,8.0中才生效,5.7版本允许定义但是不生效

5:表的设计

三大范式

第一范式:要求表中的每一列都是不可再分,用SQL语言中提供的简单数据类型可以描述字段即可,不满足第一范式的数据库就不能成为关系型数据库
第二范式:在第一范式的基础上,能消除部分函数依赖,只能出现有在复合主键的表中(多个候选键),如果有一个字段只能依赖与符合主键中的一个列,那么就需要把这个关系剔除掉,重新建表.
第三范式:在第二范式的基础上,消息传递依赖,为不同的实体单独建表

关系模型

一对一关系:为每个实体单独建表,其中一张表中加一个字段完成对另一张表的引用(建立关系)
一对多关系:为每个实体单独建表,在一这一方设置一个主键.在多这一方加一个字段,两表建立引用关系
多对多关系:为每个实体单独建表,另外新加一张关系表

6:聚合函数

1.COUNT(*)统计结果条数
2.SUM()求和
3.AVG()求平均数
4.MAX()求最大值
5.MIN()求最小值

7:GROUP BY分组查询和HAVING子句

GROUP BY:对某一个字段进行分组操作,分组后可以结合聚合函数进行一些运算.
HAVING 对GROUP BY的结果进行过滤

8:联合查询(表连接查询)

1.内连接
select * from table 1,table 2...where table 1.xxx=table 2.xxx;
select * from table 1 join table 2 on  table 1.xxx=table 2.xxx where 条件;
select * from table 1 inner join table 2 on  table 1.xxx=table 2.xxx where 条件;

表连接的执行过程
1.先计算参与表连接的笛卡尔积
2.通过连接条件过滤无效的数据
3.加入查询条件得到想要的结果行
4.精减列名得到最终想要的查询结果集

2.外连接,分为左连接和右连接
select * from table1 left join table2 on table1.xxx=table2.xxx;
select * from table1 right join table2 on table1.xxx=table2.xxx;

左外连接以 left join 左边的表为基表,左表中的数据全部显示,右表中没有对应的记录则用NULL填充
右外连接以right join 右边的表为基表,右表中的数据全部显示,左表中没有对应的记录则用NULL填充
主要应用在两张表数据不一致的场景里

3.自连接
select * from table t1,table t2 where t1.xxx=t2.xxx;
把行转换为列,在查询的时候可以使用where 条件进行过滤,实行了行与行之间的比较

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

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

相关文章

【数据分享】全国金融业-股票发行量和筹资额(1991-2021年)

数据介绍 一级标题指标名称单位金融业股票发行量亿股金融业A股发行量亿股金融业H股,N股发行量亿股金融业B股发行量亿股金融业股票筹资额亿元金融业A股筹资额亿元金融业配股筹资额亿元金融业H股,N股筹资额亿元金融业B股筹资额亿元 注&#xff1a;本文中的数据仅为示例&#xf…

Burp Suite Professional 2024.9 for macOS x64 ARM64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2024.9 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接&#xff1a;https://sysin.org/blog/burp-suite-pro-mac/ 查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1…

【数据结构】分治算法经典: 快速排序详解

快速排序&#xff08;Quicksort&#xff09;是一种高效的排序算法&#xff0c;最早由Tony Hoare在1960年提出。它采用了分治&#xff08;Divide and Conquer&#xff09;策略&#xff0c;平均时间复杂度为 O ( n log ⁡ n ) O(n \log n) O(nlogn)&#xff0c;在大多数实际应用…

双十一开启极速达夜派;黑神话获泰国年度最佳游戏;AI 模型可帮助识别 17000 多种疾病的候选药物....| 网易数智日报

双 11 菜鸟在北京、上海、广州、杭州等城市开启「预售极速达夜派」服务 10 月 21 日&#xff0c;菜鸟在北京、上海、广州、杭州等城市开启「预售极速达夜派」服务&#xff0c;批量大促包裹实现小时级送达。 据介绍&#xff0c;在消费者支付尾款前&#xff0c;菜鸟供应链就已经…

项目结构(后端+前端)(若依)

项目结构&#xff08;后端前端&#xff09; 文章目录 项目结构&#xff08;后端前端&#xff09;前言一、后端结构1.若依 二、前端结构1. 总结 前言 方便了解项目结构 提示&#xff1a;以下是本篇文章正文内容&#xff1a; 一、后端结构 1.若依 com.ruoyi ├── ruoyi-adm…

【C++干货篇】——类和对象的魅力(四)

【C干货篇】——类和对象的魅力&#xff08;四&#xff09; 1.取地址运算符的重载 1.1const 成员函数 将const修饰的成员函数称之为const成员函数&#xff0c;const修饰成员函数放到成员函数参数列表的后面。const实际修饰该成员函数隐含的this指针&#xff08;this指向的对…

Flutter Container容器组件实战案例

The Container widget is your design toolkit. It’s like the master builder that helps you structure and style your UI elements with precision. Whether you’re creating simple designs or complex layouts, the Container is your trusty tool for the job. “容器…

全能大模型GPT-4o体验和接入教程

GPT-4o体验和接入教程 前言一、原生API二、Python LangchainSpring AI总结 前言 Open AI发布了产品GPT-4o&#xff0c;o表示"omni"&#xff0c;全能的意思。 GPT-4o可以实时对音频、视觉和文本进行推理&#xff0c;响应时间平均为 320 毫秒&#xff0c;和人类之间对…

【C++篇】深度解析类与对象(上)

目录 引言 一、类的定义 1.1类定义的基本格式 1.2 成员命名规范 1.3 class与struct的区别 1.4 访问限定符 1.5 类的作用域 二、实例化 2.1 类的实例化 2.2 对象的大小与内存对齐 三、this 指针 3.1 this指针的基本用法 3.2 为什么需要this指针&#xff1f; 3.3 t…

Java毕业设计 基于SpringBoot发卡平台

Java毕业设计 基于SpringBoot发卡平台 这篇博文将介绍一个基于SpringBoot发卡平台&#xff0c;适合用于Java毕业设计。 功能介绍 首页 图片轮播 商品介绍 商品详情 提交订单 文章教程 文章详情 查询订单  查看订单卡密 客服   后台管理 登录 个人信息 修改密码 管…

成都爱尔胡建斌院长讲解年纪大眼花?小心黄斑变性!

中老年朋友觉得年龄增加后&#xff0c;眼睛出现模糊是常态&#xff0c;但是眼花不止“老花眼”一种&#xff0c;要小心的是眼底病变&#xff01; 眼花的形式有很多种&#xff0c;如果视线中间出现暗点视物变得模糊&#xff0c;很难看清周围的人脸&#xff0c;在看书看手机这种…

MATLAB(Octave)混电动力能耗评估

&#x1f3af;要点 处理电动和混动汽车能耗的后向和前向算法模型(simulink)&#xff0c;以及图形函数、后处理函数等实现。构建储能元数据信息&#xff1a;电池标称特性、电池标识符等以及静止、恒定电流和恒定电压等特征阶段。使用电流脉冲或要识别的等效电路模型类型配置阻抗…

jmeter学习(6)逻辑控制器-循环

循环执行 1、循环读取csv文件的值 2、foreach 读取变量&#xff0c;变量数字后缀有序递增&#xff0c;通过counter实现 ${__V(typeId${typeIdNum})} beansell断言 String typeIdNum vars.get("typeIdNum"); String response prev.getResponseDataAsString(); …

MAC 安装HomeBrew-亲自尝试,100%会成功

文章来自这里: https://zhuanlan.zhihu.com/p/620975942 安装指令&#xff1a; /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"执行完成后&#xff0c;输入下列命令验证 brew --version

AcWing 875:快速幂

【题目来源】https://www.acwing.com/problem/content/877/【题目描述】 给定 组 &#xff0c;对于每组数据&#xff0c;求出 的值。【输入格式】 第一行包含整数 。 接下来 行&#xff0c;每行包含三个整数 。【输出格式】 对于每组数据&#xff0c;输出一个结果&#xff0…

初阶数据结构【3】--单链表(比顺序表还好的一种数据结构!!!)

本章概述 前情回顾单链表实现单链表彩蛋时刻&#xff01;&#xff01;&#xff01; 前情回顾 咱们在上一章博客点击&#xff1a;《顺序表》的末尾&#xff0c;提出了一个问题&#xff0c;讲出了顺序表的缺点——有点浪费空间。所以&#xff0c;为了解决这个问题&#xff0c;我…

计算机网络-RSTP快速生成树基础概念

一、STP概念复习 在之前的学习中我们已经学习了STP的概念与作用。参考文章&#xff1a;计算机网络-生成树基础 STP&#xff08;Spanning Tree Protocol&#xff0c;生成树协议&#xff09; 是一种用于在局域网中消除数据链路层物理环路的协议。主要作用是防止交换机冗余链路产生…

app端文章列表查询-详细教程(上)

app端文章列表查询 一、数据库方面 有关文章的表垂直拆分成了三张表&#xff1a;文章基本信息表&#xff08;字段有文章id、文章作者、文章标题、发布时间等&#xff09;、文章配置表&#xff08;字段有文章id、文章是否可评论、文章可转发、是否已下架、是否已删除等&#x…

MySQL 基础查询

1、DISTINCT select DISTINCT EMPLOYEE_ID ,FIRST_NAME from employees 按照ID去重&#xff0c;DISTINCT的字段要放在前面&#xff0c;不会再继续在FIRST_NAME上去重判断&#xff1b; 如果需要多字段去重&#xff0c;需要用到group by&#xff0c;这个后面讲&#xff1b; …

【Fargo】11: pacing 参数不生效:同步调整采集码率

发送侧参数改变 接收测没感觉到 还是2秒收到60个不变: 果然,发送侧的参数设置没生效 发送的码率终于正确了