Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >学会Mysql第二天

学会Mysql第二天

作者头像
白胡杨同学
发布于 2020-04-11 03:03:50
发布于 2020-04-11 03:03:50
82800
代码可运行
举报
文章被收录于专栏:白胡杨同学白胡杨同学
运行总次数:0
代码可运行

表数据的基本操作

数据的插入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
insert into 表名 [(字段列表)] values [(对应字段列表)];
insert into 表名 values (对应表结构);
insert into teacher (name,age) values ("Jerry",21);

多数据的插入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
insert into my_insert [(字段列表)] values(值列表),(值列表)...;
--在原有基础上,跟多个值列表即可实现插入多条记录

数据的查询

查询全部数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select * from 表名;
select * from teacher; --查询teacher表中所有数据
查询部分数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select 字段列表 from 表名;
select name,age,address from teacher --从teacher表中查找所有人的姓名,年龄和住址。
带条件的查询
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select *字段列表 from 表名 [where条件];
select * from teacher where age>30;     --从teacher表中查找年龄大于30的所有人的信息
select name,adddress from teacher where age>30; --从teacher表中查找年龄大于30的人的姓名和地址

数据的删除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
delete from 表名 [wehre条件];
delete from teacher where age<30; 删除teacher表中年龄小于30的所有人的信息。

如果没有where条件,则默认删除表中的所有数据

数据的更新

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
update 表名 set 字段名=新值 [where条件]
update teacher set age=30 where sex="男";    --将teacher表中所有的男性的年龄都改为30
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
update 表1,表2... set1.1,表2.2,...where条件
--可以同时修改多个表中的数据

查询语句

完整的SQL查询指令: select select选项 字段列表 from 数据源 where条件 group by 分组 having 条件 order by 排序 limit 限制

select 选项

系统如何对待查询得到的结果

all 保留所有的结果
distinct 去除全部重复的记录

union all 不去除重复的

字段列表

有时候需要从多张表获取数据,当遇到同名字段的时候,需要用到别名。 基本语法: 字段名 as 别名

from 数据源

实体二维表

from是为前面的表提供数据源,MySQL只要求数据源是一个符合二维表结构的数据源即可。(多表获取数据) 基本语法:from 表1,表2,表3

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select * from my_date,my_simple,my_auto;    --查询结果为笛卡尔积(尽量避免)
多表数据

从多张表获取数据,基本语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from 表1,表2....
select * from my_int,my_set;

结果:是两张表的记录相乘,字段数拼接

本质:从第一张表取出一条记录,去拼凑第二张表的所有记录,保留所有结果。得到

的结果叫笛卡尔积(尽量避免 )

动态数据

from跟的不是一个实体二维表,而是一个从其他表中查询得到的结果集(子查询) 基本语法:from (select 字段列表 from 表) as 别名 子查询的时候,作子查询的表一定要有别名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select * from (select name,id from my_simple) as int;

where子句

从数据表获取数据的时候进行条件筛选 where用运算符进行条件判断。

Group by 子句

根据指定的字段将数据进行分组,目的是为了统计

group by 将数据分组后,只会显示每组的第一条记录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select * from my_date group by sex; --将表按照性别进行分组
一些统计函数(聚合函数)

count() 统计字段数量,不统计NULL。 avg() 求平均值 sum() 求和 max() 求最大值 min() 求最小值

Group_concat():为了将分组中指定的字段进行合并(字符串拼接)

使用聚合函数统计
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select id,max(age) from my_date group by class; --按照年级分组,查询每个年级年龄最大的人

group_concat() 字符串拼接,将指定字段进行拼接

多分组

将数据按照某个字段进行分组之后,对已经分组的数据进行再次分组

基本语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
group by 字段1,字段2//先按照字段1进行排序,之后将结果再按照字段2进行排序

更新数据

1.数据更新一般是随条件更新,很少全部更新 2.在更新数据的时候,没有条件的时候,会是全表更新,可以使用limit限制更新的数量 update 表名 set 字段名=值 [where 条件] limit 数量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
update my_simple set id='1' limit 4;    --只更新前四条记录

删除操作

1.删除数据时,尽量不要全部删除,应该使用where条件限定 2.使用limit限制删除记录的数量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
delete from my_simple limit 4;  --删除前四条数据
  • delete删除操作无法重置自增长auto_increment

清除自增长的语法:

truncate 表名

新增数据

多数据插入

只要写一次insert指令,可以直接插入多条记录,(写上多个值列表)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
insert into my_insert [(字段列表)] values(值列表),(值列表)...;
--在原有基础上,跟多个值列表即可实现插入多条记录

主键冲突

在有的表中使用了业务主键,但是插入数据时又不确定主键是否存在。

主键冲突的解决方案

1.主键冲突更新 insert into 表名 [(字段列表)] values (值列表) on duplicate key update 字段=新值(更新的是主键之外的新值)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
insert into my_student values ('stu001','小婷') on duplicate key update stu_name='小婷';

2.主键冲突替换 当主键冲突之后,删除数据重新插入 replace into 表名 [(字段列表)] values (值列表);

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
replace into my_stu values('stu001','小婷');

replace的效率比insert的效率要低。

蠕虫复制(一般用来测试表的压力,测试表的效率或者用于数据转移)

蠕虫复制的原则:一分为二,成倍增加。 从已有数据中选择数据,插入到表中。 insert into 表名 [(字段列表)] select */字段列表 from 表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
insert into my_copy select * from my_copy;  --从自己表中进行蠕虫复制
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL(四)
基本语法: insert into {表名}({字段列表}) values({值列表1}), ({值列表2}), …
1ess
2021/11/01
9900
mysql学习总结04 — SQL数据操作
mysql 中 SELECT 命令类似于其他编程语言的 print 或 write,可用来显示字符串、数字、数学表达式的结果等
CS逍遥剑仙
2018/06/24
5.2K0
mysql学习总结04 — SQL数据操作
MySQL快速入门(二)
ps:modify只能改字段数据类型完整约束,不能改字段名,但是change可以!
HammerZe
2022/03/24
2.6K0
MySQL快速入门(二)
MySQL数据库的增删改查
select 查询结果是元组的集合,可用union进行结果的集合操作,相当于把多个查询结果进行连接起来输出
用户11062199
2024/08/28
1800
Mysql基础知识合集(精美)
还有一堆哈 。先用先查就好(现) 比如month addtime。。。。。
编程张无忌
2021/01/26
8620
Mysql基础知识合集(精美)
MySQL入门,问题不大【增删改查极速上手】
当你登录你的QQ账号和别人吹水的时候,当你期末交作业去度娘复制的时候,当你在工作中登录一些网站的时候,再比如当你查看自己几乎没有什么余额的银行卡的时候(捂脸),或许自己也没注意,(非需要,大部分人也不想注意哈哈哈)我们一直都在以某种方式与数据库打交道,或许你是一个开发人员,也或许你也只是一个普通的用户,数据库与我们的生活息息相关,作为一名程序员,现在学习 MySQL 和 Oracle 的会多一些,像微软的 SQL Server 以前配合 asp 的时候用的还是挺多的,不过现在就没那么流行了,
BWH_Steven
2020/06/03
7730
学会Mysql第三天
1、having 是在 group by 子句之后:可以针对分组数据进行统计筛选。
白胡杨同学
2020/04/16
7400
MySQL常用语句
DDL操作数据库、表 1. 操作数据库:CRUD 创建(Create) 创建数据库:
一点博客
2019/07/24
7950
Mysql必知必会!
数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作
网络技术联盟站
2020/09/29
1.9K0
Mysql必知必会!
Mysql超详解
类型后边可以加限定条件:primary key(主键)、not null(不能为空)、unique(唯一的)、foreign key(外键)、default(定义初值)、
泰斗贤若如
2019/08/19
1.4K0
阶段02JavaWeb基础day04mysql
数据仓库.就与我们之前学过的纯文本,properties这些技术一样.用来保存数据.并提供对数据进行增删改查的操作.我们以后做项目时, 项目中的数据都是保存在数据库中的. //-------------------------------------------------------------------- 为什么要用数据库,数据库的特点 1>实现数据共享
对弈
2019/09/04
5570
Mysql使用指南
1.下载zip安装包,解压,重命名为mysql,移动到你想要的地方2.配置环境变量把bin目录加到path变量中去...
乐心湖
2021/01/18
1.1K0
mysql系列一
学习mysql必备工具即安装mysql客户端;mysql安装教程在网上有很多,在此处就不在仔细说明;
沁溪源
2020/09/03
9990
一个小时学会MySQL数据库
该文是对一篇新闻文章的摘要总结。
张果
2018/01/04
4K0
一个小时学会MySQL数据库
MySQL总结
2.alter table t1 modify name char(3); 修改类型
changxin7
2019/09/12
2K0
MySQL总结
MySQL数据库精选(从入门使用到底层结构)
查询所有数据库: SHOW DATABASES; 查询当前数据库: SELECT DATABASE(); 创建数据库: CREATE DATABASE [ IF NOT EXISTS ] 数据库名 [ DEFAULT CHARSET 字符集] [COLLATE 排序规则 ]; 删除数据库: DROP DATABASE [ IF EXISTS ] 数据库名; 使用数据库: USE 数据库名;
不吃紫菜
2024/01/27
4150
MySQL数据库精选(从入门使用到底层结构)
day04_MySQL学习笔记_01
数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。(文件系统)
黑泽君
2018/10/11
8270
day04_MySQL学习笔记_01
MySQL基础
SQL:操作关系型数据库的编程语言,定义了一套操作 关系型数据库统一标准,英文:Structured Query Language (SQL)。
roydonGuo
2023/03/08
1.9K0
MySQL基础
呕心沥血写了三天3两夜24k字的MySQL详细教程
 存储数据的仓库. 其本质是一个文件系统,数据库按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。
陶然同学
2023/02/27
7090
呕心沥血写了三天3两夜24k字的MySQL详细教程
MySQL数据库完整知识点梳理----保姆级教程!!!
在字段名前面加上DISTINCT ,这里对于重复的字段,就只会显示最先出现的那个,后面重复的不会显示
大忽悠爱学习
2021/11/15
6K0
相关推荐
MySQL(四)
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验