mysql常用的查询语句
好记性不如烂笔头!
查询表中全部信息:
select * from 表名
查询表中指定列的信息:
select 列1,列2 from 表名
数据去重:
select distinct 列... from 表名
拼接结果:
select concat(列1,列2) from 表名
运算符优先级:
1.乘法和除法优先级高于加法和减法
2.同级运算的顺序是从左到右
3.表达式中使用“括号”可强行改变优先级的运算顺序
select 列1[+-*/]列2 from 表名
设置别名(注意:关键字as可以省略)
select 列 as 别名 from 表名
select 列 别名 from 表名
条件查询:
select 列... from 表名 where 条件
条件中比较运算符:(等于:= 大于:> 大于等于:>= 小于:< 小于等于:<= 不等于:!= 或 <>)
where 列 比较运算符 值
注意:字符串、日期需使用单引号括起来
逻辑运算符(并且:and或&& 或:or 非:not或!)
where 条件1 逻辑运算符 条件2
where not 条件
范围查询:
where 列 between 条件1 and 条件2; //列在这个区间的值
where 列 not between 条件1 and 条件2; //不在这个区间
where !( 列 between 条件1 and 条件2 ); //同样表示不在这个区间
集合查询(判断列的值是否在指定的集合中):
where 列 in(值1,值2); //列中的数据是in后的值里面的
where 列 not in(值1,值2); //不是in中指定值的数据
null值查询(注意:列中值为null不能使用=去查询):
where 列 is null; //查询列中值为null的数据
模糊查询:
%:标识0到多个字符,示例:
where 列 like '%0'; //表示以0结尾
where 列 like '0%'; //表示以0开头
where 列 like '%0%'; //表示数据中包含0
_:标识一个字符,可多次使用,示例:
where 列 like '%0_'; //数据结尾第二位是0
结果排序(对查询出的结果按照一列或多列进行升序还是降序排列 升序:asc 降序:desc 注意:不能使用中文的别名排序)
where 条件 order by 列 [asc/desc]
分页查询(beginIndex:标识从第几条数据开始 pageSize:标识每页显示的数据条数)
where [条件] limit beginIndex,pageSize;

ex:每页显示3条数据
第一页: SELECT * FROM 表名 LIMIT 0,3 --0,1,2
第二页: SELECT * FROM 表名 LIMIT 3,3 --3,4,5
第三页: SELECT * FROM 表名 LIMIT 6,3 --6,7,8
第四页: SELECT * FROM 表名 LIMIT 9,3 --9,10,11
……
第七页: SELECT * FROM 表名 LIMIT 18,3 --18,19,20

beginIndex公式:(当前页数-1)*pageSize
聚集函数(作用于一组数据,并对一组数据返回一个值)
COUNT:统计结果记录数,若统计的是列,列中为Null,那么count将不会计算值
MAX: 统计计算最大值
MIN: 统计计算最小值
SUM: 统计计算求和
AVG: 统计计算平均值
分组函数(注意:如果要对分组后的数据进行筛选,那么必须使用having关键字,条件写在having后)
select 聚集函数 from 表名 where [条件] group by 列 having 分组后的条件
Where和having的区别:
Where: 先过滤已有的数据(数据是已经存在的),在进行分组,在聚集计算
Having:先分组,在对每组进行计算,根据得到结果在过滤(分组把数据算出之后,在过滤)
注意:使用having的时候,它是可以使用别名的
多表查询:
交叉连接:又名笛卡尔积,使用交叉连接会产生笛卡尔积
假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。
select * from 表1,表2
内连接:过滤为空的数据(查询的实际上是两张表数据的交集部分) 目的 ==》解决笛卡尔积现象,正确查询了需要的数据
select * from 表1,表2 where 表1.字段=表2.字段; //隐式内连接,使用where条件消除笛卡尔积
select * from 表1 [inner] join 表2 on 表1.字段=表2.字段; //显式内连接,如果是多张表,则一直在join..on后依次添加join..on即可,inner关键字可被省略
外连接:左外连接、右外连接、全外连接
左外连接:以左边表为主,返回左边表中所有数据,若右表中无数据,则显示为NULL,请参考实际查询结果来理解
select * from 表1 left [outer] join 表2 on 表1.字段=表2.字段; //表1为左表,表2为右表,outer关键字可被省略
右外连接:以右边表为主,返回右表中所有数据,若左表中无数据,则显示为NULL,结合实际查询结果来理解
select * from 表1 right [outer] join 表2 on 表1.字段=表2.字段; //表1为左表,表2为右表,outer关键字可被省略
全外连接:返回涉及的多表中的所有数据,MYSQL中不支持该查询,仅限了解自连接:单表当作多表查询,直白的讲就是一张表中数据含有多种关系,使用多表查询的语法,来查询一张表,查询过程中一定要使用别名
多用在分类数据、省市县分类数据、权限…
select 表1.字段1,表2.字段2 from 表名 as 表1,表名 as 表2 where 表1.字段1=表2.字段2
子查询:将一个查询结果作为另一个查询的对象,直白的讲就是SQL语句嵌套
select * from (select * from 表名) as 别名
select * from where 条件->条件中包含查询语句
注意:1.查询结果的虚拟表必须取别名
2.字段与关键字一样,冲突时,需要给字段名加``,(Esc键下面、1的左边)
3.如果给虚拟结果表中的字段取了别名,则对虚拟结果表查询时,应该用 表别名.虚拟表字段别名
插入数据:
insert into 表名(字段1,字段2..) values(值1,值2…);
注意: 1.如果插入的表中的主键是自增类型的,可以不用插入值
2.如果主键是非自增 ,插入的数据则是填补主键字段值空余的值
3.如果主键设置了自动递增,会从主键字段最大值开始插入数据
其他插入方式:
insert into 表名(字段1,字段2) values(值1,值2),(值1,值2); //插入多条数据【MYSQL】
insert into 表名 values(值1,值2); //针对全表所有字段进行插入操作
insert into 表名(字段) select 字段 from 表2; //查询结果插入
insert into 表名 select 字段 from 表2; //查询结果,全表插入
修改数据:
update 表 set 字段=值 where 条件; //带条件修改指定数据,否则修改全表
删除数据:
delete from 表 where 条件; //删除数据带条件指定数据,否则删除全表数据
数据备份:
在命令行窗口进行,若操作系统版本高,则使用管理员模式
导出:
mysqldump -u账户 -p密码 数据库名称>脚本文件存储地
ex: mysqldump -uroot -proot jdbcdemo> C:/shop_bak.sql
导入:
mysql -u账户 -p密码 数据库名称< 脚本文件存储地址
ex: mysql -uroot -proot jdbcdemo< C:/shop_bak.sql
使用可视化导入导出:
Navicat工具的导入和导出/Navicat工具的备份和还原
数据索引:
索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

什么列适合建索引??
1.表的主键、外键必须有索引;
2.数据量超过30000的表应该有索引;
3.经常与其他表进行连接的表,在连接字段上应该建立索引;
4.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5.索引应该建在选择性高的字段上;
6.索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

sql语句创建和删除索引:
创建索引:
CREATE INDEX 索引名称 ON 表名 (列名)
删除索引:
DROP INDEX 索引名 ON 表名
ALTER TABLE 表名 DROP INDEX 索引名
mysql常用的数据类型:
数值类型:INT、FLOAT、DOUBLE
日期和时间类型:DATE、TIME、YEAR、DATETIME
字符串类型:CHAR、VARCHAR、TEXT、LONGTEXT
mysql常用的查询语句的更多相关文章
- SQL注入之MySQL常用的查询语句
MySQL是一种使用很广的数据库,大部分网站都是用MySQL,所以熟悉对MySQL数据库的注入很重要. 首先来说下MySQL注入的相关知识点 在MySQL5.0版本之后,MySQL默认在数据库存放一个 ...
- 关于MySQL常用的查询语句
一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>,= ...
- Mysql常用的查询语句,记录一下,好东西大家共享
一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>,= ...
- MySQL常用的查询语句回顾
让你快速复习语句的笔记宝典. create table users( username varchar(20) primary key, userpwd varchar(20) ) alt ...
- mysql常用快速查询修改操作
mysql常用快速查询修改操作 一.查找并修改非innodb引擎为innodb引擎 # 通用操作 mysql> select concat('alter table ',table_schema ...
- MySQL 常用的sql语句小结(待续)
mysql 常用的sql语句 1.查看数据库各个表中的记录数 USE information_schema; SELECT table_name,table_rows FROM tables WHER ...
- MySQL常用的查询命令
MySQL常用的查询命令 author: headsen chen 2017-10-19 10:15:25 个人原创.转载请注明作者,出处,否则依法追究法律责任 1,查询现在的时间:mysql& ...
- {MySQL的逻辑查询语句的执行顺序}一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析
MySQL的逻辑查询语句的执行顺序 阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SEL ...
- python 3 mysql sql逻辑查询语句执行顺序
python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_t ...
- [转] 常用SQL查询语句
sunada 的原文地址 常用SQL查询语句 一.简单查询语句 1. 查看表结构 SQL>DESC emp; 2. 查询所有列 SQL>SELECT * FROM emp; 3. 查询指 ...
随机推荐
- cornerstone4.1破解版 for mac
百度网盘: https://pan.baidu.com/s/1l_0rHMF11mZsUP3qJrp7Uw 密码: 8ei9
- AIGC 很火,想微调个自己的模型试试看?(不是卖课的)
去年,我们发布过一篇关于 DreamBooth 编程马拉松的活动通知,获得了全球社区的广泛关注和参与,中国社区的成员们也对这个活动有非常高的热情.同时我们也收到了后台留言反馈说参与活动需要使用的 Go ...
- 在函数中设置input的multiple属性以及input的点击事件时,设置失效
1.在函数中先设置input文件可以多选,然后再设置input框的点击事件情况下,有时候这个多选设置会失效. 我们可以采用下面的方式去解决 <input ref="myInputRef ...
- SpringCloud————>了解什么是微服务技术
SpringCloud是Spring为微服务架构思想做的一个一站式实现.从某种程度是可以简单的理解为,微服务是一个概念.一个项目开发的架构思想.SpringCloud是微服务架构的一种java实现. ...
- File类获取功能的方法-File类判断功能的方法
File类获取功能的方法 获取功能的方法 public string getAbsolutePath()∶返回此File的绝对路径名字符串. public string getPath() ︰将此Fi ...
- RISC-V 平台移植 RTOS
ARM 上移植实时操作系统大家可能比较熟悉,且例程较多,对于 RISC-V 内核的 MCU,可能相对比较陌生.下面结合 WCH 的 CH32V103 和 CH32V307 两款芯片来详细说下针 ...
- Docker不做虚拟化内核,对.NET有什么影响?
引子 前两天刷抖音,看见了这样一个问题. 问题:容器化不做虚拟内核,会有什么弊端?Java很多方法会跟CPU的核数有关,这个时候调用系统函数,读到的是宿主机信息,而不是我们限制资源的大小. 思考:在我 ...
- ChatGPT 背后核心技术的白话版
本文是关于ChatGPT 背后核心技术实现的一个通俗白话版,不涉及到的AI具体实现的技术细节哦. 在编排上增加了一些分割,内容具体如下: LLMs(大型语言模型) 如果将ChatGPT比作是动物,它就 ...
- 重定向Kubernetes pod中的tcpdump输出
重定向Kubernetes pod中的tcpdump输出 最新发现一个比较有意思的库ksniff,它是一个kubectl 插件,使用tcpdump来远程捕获Kubernetes集群中的pod流量并保存 ...
- 10分钟搞定简易MVVM
实现一个简易的 MVVM 分为这么几步来 1.类 Vue:这个类接收的是一个 options. el属性:根元素的id data属性:双向绑定的数据. 2.Dep 类: subNode数组:存放所依赖 ...