深入mysql语言_MySQL对数据操作的一些深入语法

其他数据操作

数据的操作也叫作crud:

C:create

R:read

U:update

D:delete

插入数据

蠕虫复制

就是在已有的数据的基础之上,将原来的数据进行复制,插入到相对应的表中!

语法规则:

insert into 表名select *|字段列表from表名

注意:

当一个表中的数据复制到另一个表中的时候,需要注意数据的来源要与被插入的表的字段数量和类型要保持一致!

总结蠕虫复制的优点:

1, 可以以最快的速度复制另外一张表的数据

2, 在短期内产生大量的数据,以测试服务器的压力

主键重复

插入的值与主键中的值发生冲突,重复的时候,需要使用一个语法,一般使用在主键更改的时候:

如果重复的时候及更新值:

insert into 表名[字段列表] values(值列表) on duplicate key update字段1=值1,字段2=值2……

直接将重复的值删除,插入新数据:

replaceinto 表名[字段列表] values(值列表);

修改数据

update 表名set字段1=值1,字段2=值2……[where条件][order by字段名asc|desc][limit数据量]

删除数据

标准语法:

delete from 表名[where条件] [order by字段名asc|desc][limit数据量]

还有一个类似删除功能的语法:

truncate table 表名;或truncate表名;

注意:该语句不属于DML,属于DDL

相当于做了两件事情:

1, 先把原表drop掉!

2, 再按以前的原表的结构重新创建一次!

查询数据

select[select选项]*|字段列表[as 字段别名]from 数据源[where子句][group by子句][having子句][order by子句][limit子句];

以上的语法一般只是单表查询,另外还有多表查询,多表查询又有联合查询、子查询、连接查询(左连接,右连接,内连接,外连接,自然连接)

注意:

1, from后面的子句往往称之为:五子句,也叫五子查询!

2, 五子查询都可以没有,但是,如果要有,就必须按顺序写!

select选项和别名

含义:查询到的数据如何显示

这里的select选项有两个值:

all:也是缺省值(默认值),保留所有的查询结果!

distinct:去重,去掉重复的查询结果!

别名

所谓的别名,就是给字段或其他表达式等标识符另起一个名字,基本语法如下:

字段|表达式|表|子查询[as]别名

这里的as可以省略,但是为了增加可读性,一般还是写上!

where子句

语法:where 表达式

先将表达式计算结果,如果表达式为真(结果不为0)则则返回记录,如果为假(则为0),则不返回记录。相当于对所有记录进行遍历!

MySQL运算符

MySQL支持以下的运算符:

关系运算符

<  >

<=  >=

=   !=(<>)

注意:这里的等于是一个等号

between and

做数值范围限定,相当于数学上的闭区间!

比如:

between A and B相当于[A,B]

在between and前加上not则是反过来。

in和not in

语法形式:in|not in(集合)

表示某个值出现或没出现在一个集合之中!

模糊查询

也就是带有like关键字的查询,常见的语法形式是:

select *|字段列表from表名where字段名[not] like‘通配符字符串’;

所谓的通配符字符串,就是含有通配符的字符串!

MySQL中的通配符有两个:

_   :代表任意的单个字符

%   :代表任意的字符

group by子句

分组统计查询语句

group by 字段1[,字段2]……

从形式上看,就是通过表内的某个或某些字段进行分组:

统计函数

sum():求和,就是将某个分组内的某个字段的值全部相加

max():求某个组内某个字段的最大值

min():求某个组内某个字段的最小值

avg():求某个组内某个字段的平均值

count():统计某个组内非null记录的个数,通常就是用count(*)来表示!

多字段分组

group by 字段1[,字段2]……

作用是:先根据字段1进行分组,然后再根据字段2进行分组!

having子句

having子句和where子句一样,也是用来筛选数据的,通常是对group by之后的统计结果再次进行筛选!

二者的比较:

1, 如果语句中只有having子句或只有where子句的时候,此时,它们的作用基本是一样的!

2, 二者的本质区别是:where子句是把磁盘上的数据筛选到内存上,而having子句是把内存中的数据再次进行筛选!

3, where子句的后面不能使用统计函数,而having子句可以!因为只有在内存中的数据才可以进行运算统计!

order by子句

根据某个字段进行排序,有升序和降序!

语法形式为:

order by 字段1[asc|desc]

默认的是asc,也就是升序!如果要降序排序,需要加上desc!

多字段排序

order by 字段1[asc|desc],字段2[asc|desc]……

比如:order by score asc,age desc

联合查询

关键字:union

语法形式

select语句1

union[union选项]

select 语句2

union[union选项]

select 语句3

union[union选项]

……

作用:

所谓的联合查询,就是将多个查询结果进行纵向上的拼接,也就是select语句2的查询结果放在select语句1查询结果的后面。依次类推!

既然是纵向上的拼接,所以联合查询有一个最最基本的语法,就是各个select语句查询出来的结果,其中字段的个数必须相同,比如,不能一个是4列,一个是3列!并且从显示的结果上看,无论“拼接”了多少个select语句,字段名只显示第一条select语句的字段名!

其中,这里的union选项跟前面学习的select选择的值是一样的,只是默认值不一样:

all:也是缺省值,保留所有的查询结果!

distinct:去重(默认值),去掉重复的查询结果!

交叉连接

关键字:cross join

含义

就是从一张表的一条记录去连接另一张表中的所有记录,并且保存所有的记录,其中包括两个表的所有的字段!

交叉连接语法:

select  * | 字段列表from表1cross join表2

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

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

相关文章

MySQL查询多表定义实体类_自己设计一个 JAVA + MyBatis 解析实体类多表通用查询

先来处理一下查询的字段和用到的表吧//虽然我们使用的时候是实体&#xff0c;但最终还是要解析成sql的&#xff0c;那么我们需要想好解析成sql 时候所用到的东东&#xff0c;提前准备好class TableEntity {String tableName; //表的真正名称肯定是要的String nickName; //表名的…

mysql table catalog_hibernate 注解@table( catalog=)作用

在阿里云RDS新建库和用户&#xff0c;并分配权限&#xff0c;而且用客户端访问连接成功。但启动应用&#xff0c;并修改连接用户和库地址&#xff0c;报错(信息如下)&#xff01;字面意思是用户没有SELECT的权限&#xff0c;但客户端验证不是权限问题。经多步测试发现应用一直在…

mysql 导出数据库中的某张数据表_mysql 导出数据库中的某张数据表

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

pycharm 开发app_windows及mac下开发Excel, python+xlwings开发环境配置

背景&#xff1a;孩子他妈天天excel办公&#xff0c;看她每天大量重复性的工作&#xff0c;她是时候学习python来解放自己了&#xff0c;虽然我不用python ~ ~网络搜索 xlwings 是python下非常强大的处理Excel的库开发IDE选择Pycharm或者vs code配置开发环境&#xff0c;折腾了…

mysql 优化表_mysql里sql优化和表结构优化

开启慢查询日志 计入sqlshow variables like slow_query_log;//慢查询查看状态 OFF未开启 ON开启show variables like %log%;//没有使用索引的sql计入慢查询日志中set global log_queries_nor_using_indexes on;//开启log_queries_nor_using_indexes 为ON 记录未使用索引的查询…

sql server查询历史进程_学习笔记 | SequoiaDB SQL查询语句执行过程

本篇笔记将为大家介绍 SequoiaDB 巨杉数据库查询 SQL 语句的执行过程&#xff0c;以及查询语句执行过程中实例层、协调节点、编码节点、数据节点各自承担的功能。应用程序或用户想要从数据库查询需要的数据&#xff0c;首先通过 API 或 client 端连接数据库&#xff0c;将查询 …

服务器主机linux安装mysql_linux服务器上安装mysql

mysql版本&#xff1a;mysql-5.6.44-linux-glibc2.12-x86_64.tarlinux操作系统和版本信息&#xff1a;1、检查linux服务器上是否已安全mysql[rootlocalhost ~]# rpm -qa|grep -i mysql未安装则无任何信息返回&#xff0c;若已安装则会返回已安装的版本信息&#xff0c;可通过--…

mysql中rownum分页_Oracle数据库中rownum分页

测试人员在项目测试中发现查询结果列表分页的时候&#xff0c;有的数据在好几页中重复显示&#xff0c;有的则一次都不显示&#xff0c;经过分析sql&#xff0c;原来问题出在测试人员在项目测试中发现查询结果列表分页的时候&#xff0c;有的数据在好几页中重复显示&#xff0c…

python买东西_Python实战之ATM+购物车

学python一个月以来的第一个工程级别项目!!!!!1.首先分析项目需求:模拟实现一个ATM 购物商城程序额度 15000或自定义---->注册功能实现购物商城&#xff0c;买东西加入 购物车&#xff0c;调用信用卡接口结账----->购物车,支付可以提现&#xff0c;手续费5%----->提现…

multi source replication mysql_MySQL 5.7多源复制(Multi-Source Replication)

MySQL5.7.6以后开始支持多源复制Multi-Source Replication,可以将多个主的库同步到一台slave上&#xff0c;从而增加从的利用率&#xff0c;出节省了机器&#xff0c;也可用于备份。首先设置master_info_repository和relay_log_info_repository两个参数&#xff0c;这存储同步信…

列模式 文本编辑器_UltraEdit 24.2 文本编辑器免费版

UltraEdit是由IDM官方最新出品的文本编辑器版本&#xff0c;它是一款性价比全球一流的文本、十六进制&#xff0c;HTML、PHP、Java 和 JavaScript程序文本编辑器&#xff0c;被认为是世界上最好的文本编辑器。UltraEdit可以满足您的所有需求&#xff0c;例如代码突出显示&#…

在linux中加固mysql_mysql在linux下的安装

安装环境&#xff1a;系统是 centos6.51、下载下载地址&#xff1a;http://dev.mysql.com/downloads/mysql/5.6.html#downloads下载版本&#xff1a;我这里选择的5.6.33&#xff0c;通用版&#xff0c;linux下64位也可以直接复制64位的下载地址&#xff0c;通过命令下载&#x…

mysql 加密 tde_tde加密 mysql 阿里云

本文介绍AliSQL和其他版本的功能对比。AliSQL介绍AliSQL是阿里云深度定制的独立MySQL分支&#xff0c;除了社区版的所有功能外&#xff0c;AliSQL提供了类似于MySQL企业版的诸多功能&#xff0c;如企业级备份恢复、线程池、并行查询等&#xff0c;并且AliSQL还提供兼容Oracle的…

mysql分区表达式_怎么定义 mysql hash分区使用的用 户定义的表达式

用户需要在 rule.xml 中定义 partitionLength[] 和 partitionCount[] 两个数组和 hashSlice 二元组。在 DBLE 的启动阶段&#xff0c;点乘两个数组得到模数&#xff0c;也是逻辑分片的数量并且根据两个数组的叉乘&#xff0c;得到各个逻辑分片到物理分片的映射表(物理分片数量由…

mysql 多条记录选择一套_2020-11-09-Mysql(练习题第一套)

遗留问题 select语句中的别名问题 group by 中的别名问题# sql-表 FACT_DAY_SC-字段 DEPT_ID varchar(20) 电厂TJSJ_DATE DATE 日期FSL number 日发电量create table FACT_DAY_SC(DEPT_ID varchar(20),TJSJ_DATE DATE,FSL LONG);insert into FACT_DAY_SC values (10001,2020-12…

wamp的mysql触发器教程_wamp里的mysql怎么做出这个

这个表怎么做这个是phpmyadmin&#xff0c;他是一个独立的程序&#xff0c;并不是wamp独有的&#xff0c;你也可以独立下载phpmyadmin来使用。首先&#xff0c;phpmyadmin你可以把他看作是一个php写的mysql管理工具。前端页面实际上就是HTML&#xff0c;和一般的网页没有什么区…

wx轮播图接口学习用json格式_零基础学小程序008----列表和轮播图的实现,小程序解析json数据...

点击下面网址进入系列教程上一节带领大家实现领简单的计算器&#xff0c;这节来带领大家学习小程序列表功能。本节知识点1&#xff0c;定义本地json文件2&#xff0c;本地文件引入3&#xff0c;小程序列表渲染实现4&#xff0c;解析本地json(为解析网络json做准备)学习之前先来…

云服务器怎么装mysql_云服务器(windows环境)安装mysql图文教程

1、首先进入的是安装引导界面2、然后进入的是类型选择界面&#xff0c;这里有3个类型&#xff1a;Typical(典型)、Complete(完全)、Custom(自定义)。这里建议选择“完全”(Complete)安装&#xff0c;这样可以自定义选择MySQL的安装目录&#xff0c;然后点“Next”下一步&#x…

oracle mysql分页查询_Oracle与MySQL的分页查询sql语句格式实例讲解

Oracle使用rownum进行分页&#xff1a;SELECT *FROM (SELECT a.*, ROWNUM rnFROM (SELECT * FROM table_name) aWHERE ROWNUM < pageIndex * pageSize)WHERE rn > (pageIndex - 1) * pageSize其中&#xff0c;pageIndex是页码&#xff0c;pageSize是每页的条数MySQLMySQL…

阿里mysql 二进制_Mysql binlog 之阿里canal

1、What is Canal&#xff1f;canal [kənl]&#xff0c;中文翻译为 水道/管道/沟渠/运河&#xff0c;主要用途是用于 MySQL 数据库增量日志数据的订阅、消费和解析&#xff0c;是阿里巴巴开发并开源的&#xff0c;采用Java语言开发&#xff1b;历史背景是早期阿里巴巴因为杭州…