MySQL高级SQL语句
MySQL高级SQL语句
围绕两张表
Location表
Store_Info表
#select选择
SELECT Store_Name FROM Store_Info;
#distinct去重
select distinct 列名 from 表名
#where条件查询
select distinct 列名 from 表名 where
#and且 or或
语法:SELECT "字段" FROM "表名" WHERE "条件1" {[AND|OR] "条件2"}+ ;
SELECT Store_Name FROM Store_Info WHERE Sales > 1000 OR (Sales < 500 AND Sales > 200);
#in显示已知的
not in ≈取反
语法:SELECT "字段" FROM "表名" WHERE "字段" IN ('值1', '值2', ...);
SELECT * FROM Store_Info WHERE Store_Name IN ('Los Angeles', 'Houston');
#between两个值范围内的数据记录
select * from store_info where between 300 and 1000;
300≤结果≤1000
#通配符——配合like使用
%:百分号表示零个、一个或多个字符
_:下划线表示单个字符
#like
语法:SELECT "字段" FROM "表名" WHERE "字段" LIKE {模式};
SELECT * FROM Store_Info WHERE Store_Name like '%os%';
#order by
asc升序
desc降序
语法:SELECT "字段" FROM "表名" [WHERE "条件"] ORDER BY "字段" [ASC, DESC];
#ASC 是按照升序进行排序的,是默认的排序方式。
#DESC 是按降序方式进行排序。
SELECT Store_Name,Sales,Date FROM Store_Info ORDER BY Sales DESC;
函数
数学函数:
abs(x) 返回 x 的绝对值
rand() 返回 0 到 1 的随机数
mod(x,y) 返回 x 除以 y 以后的余数
power(x,y) 返回 x 的 y 次方
round(x) 返回离 x 最近的整数
round(x,y) 保留 x 的 y 位小数四舍五入后的值
sqrt(x) 返回 x 的平方根
truncate(x,y) 返回数字 x 截断为 y 位小数的值
ceil(x) 返回大于或等于 x 的最小整数
floor(x) 返回小于或等于 x 的最大整数
greatest(x1,x2...) 返回集合中最大的值,也可以返回多个字段的最大的值
least(x1,x2...) 返回集合中最小的值,也可以返回多个字段的最小的值
SELECT abs(-1), rand(), mod(5,3), power(2,3), round(1.89);
SELECT round(1.8937,3), truncate(1.235,2), ceil(5.2), floor(2.1), least(1.89,3,6.1,2.1);
聚合函数:
avg() 返回指定列的平均值
count() 返回指定列中非 NULL 值的个数
min() 返回指定列的最小值
max() 返回指定列的最大值
sum(x) 返回指定列的所有值之和
SELECT avg(Sales) FROM Store_Info;
SELECT count(Store_Name) FROM Store_Info;
SELECT count(DISTINCT Store_Name) FROM Store_Info;
SELECT max(Sales) FROM Store_Info;
SELECT min(Sales) FROM Store_Info;
SELECT sum(Sales) FROM Store_Info;
字符串函数
trim() 返回去除指定格式的值
concat(x,y) 将提供的参数 x 和 y 拼接成一个字符串
substr(x,y) 获取从字符串 x 中的第 y 个位置开始的字符串,跟substring()函数作用相同
substr(x,y,z) 获取从字符串 x 中的第 y 个位置开始长度为 z 的字符串
length(x) 返回字符串 x 的长度
replace(x,y,z) 将字符串 z 替代字符串 x 中的字符串 y
upper(x) 将字符串 x 的所有字母变成大写字母
lower(x) 将字符串 x 的所有字母变成小写字母
left(x,y) 返回字符串 x 的前 y 个字符
right(x,y) 返回字符串 x 的后 y 个字符
repeat(x,y) 将字符串 x 重复 y 次
space(x) 返回 x 个空格
strcmp(x,y) 比较 x 和 y,返回的值可以为-1,0,1
reverse(x) 将字符串 x 反转
a=12345678
echo $(a:6:3)
echo $(#a)
GROUP BY配合“聚合函数”一起使用
HAVING 对group by汇总后的结果做筛选
select store_name ,sum(store_name) from store_info group by store_name having sum(store_name) >=2
连接查询
select * from location as A inner join store_info as B on A.store_name = B.store_name;
表连接
inner join 内连接,只返回两个表的字段相等的行记录
left join 左连接,返回左表所有的行记录和右表字段相等的行记录,不相等的行返回null
right join 右连接,返回右表所有的行记录和左表字段相等的行记录,不相等的行返回null
union 联集,将两个select查询语句的结果合并,并去重
union all 联集,将两个select查询语句的结果合并,不去重
求交集
select A.字段 from 左表 A inner join 右表 B
数据库模式:
create database kgc;
show databases;
use kgc;
create table location (Region char(20),Store_Name char(20));
desc location;
insert into location values('East','Boston');
insert into location values('East','New York');
insert into location values('West','Los Angeles');
insert into location values('West','Houston');
select * from location;
create table store_info (Store_Name char(20),Sales int(10),Date char(10));
desc store_info;
insert into store_info values('Los Angeles','1500','2020-12-05');
insert into store_info values('Houston','250','2020-12-07');
insert into store_info values('Los Angeles','300','2020-12-08');
insert into store_info values('Boston','700','2020-12-08');
select * from store_info;
select * from store_info where store_name='Los Angeles';
select * from store_info where sales <= 1000;
select * from store_info where sales >= 1000;
select * from store_info where sales != 1500;
select * from store_info where sales > 1000 or (sales < 500 and sales > 200);
select * from store_info where Store_Name in ('Los Angeles', 'Houston');
select * from store_info where date between '2020-12-06' and '2020-12-10';
select * from store_info where store_name like '%os%';
select store_name,sales,date from store_info order by sales desc;
select sum(sales) from store_info;
select min(sales) from store_info;
select max(sales) from store_info;
select avg(sales) from store_info;
select count(sales) from store_info;
select concat('abc','123');
select concat('abc',' ','123');
select * from location;
select * from store_info;
select * from location where store_name='New York';
select concat(Region,store_name) from location where store_name='New York';
select concat(Region,'+',store_name) from location where store_name='New York';
select region || store_name from location;
select region || ' ' || store_name from location;
select substr(store_name,5) from location where store_name='Los Angeles';
select substr(store_name,5,6) from location where store_name='Los Angeles';
select store_name, sum(sales) from store_info group by store_name order by sales desc;
select store_name, sum(sales) from store_info group by store_name having sum(sales) > 1500;
select a.store_name store, sum(a.sales) "total sales" from store_info a group by a.store_name;
select sum(sales) from store_info where store_name in (select store_name from location where region = 'west');
select sum(a.sales) from store_info a where a.store_name in (select store_name from location b where b.store_name = a.store_name);
select sum(sales) from store_info where exists (select * from location where region = 'West');
update store_info set store_name='Washington' WHERE sales=300;
select * from store_info;
select * from location a right join store_info b on a.store_name = b.store_name ;
select * from location a left join store_info b on a.store_name = b.store_name ;
select * from location a inner join store_info b on a.store_name = b.store_name ;
select * from location a, store_info b where a.store_name = b.store_name;
select a.region region, sum(b.sales) sales from location a, store_info b where a.store_name = b.store_name group by region;
select store_name from location union select store_name from store_info;
select store_name from location union all select store_name from store_info;
select A.store_name from location A inner join store_info B ON A.store_name = B.store_ore_name;
select A.store_name from location A inner join store_info B using(store_name);
MySQL高级SQL语句的更多相关文章
- 29.MySQL高级SQL语句
MySQL高级SQL语句 目录 MySQL高级SQL语句 创建两个表 SELECT DISTINCT WHERE AND OR IN BETWEEN 通配符 LIKE ORDER BY 函数 数学函数 ...
- MySQL 数据库SQL语句——高阶版本2
MySQL 数据库SQL语句--高阶版本2 实验准备 数据库表配置: mysql -uroot -p show databases; create database train_ticket; use ...
- mysql 常用 sql 语句 - 快速查询
Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互 1.1.1 mysql 连接 mysql.exe -hPup ...
- Mysql 常用 SQL 语句集锦
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
- Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
- MySQL数据库sql语句的一些简单优化
1.查询条件的先后顺序 有多个查询条件时,要把效率高能更精确筛选记录的条件放在后边.因为MySQL解析sql语句是从后往前的(不知是否准确). 例: select a.*,b.* from UsrIn ...
- mysql下sql语句 update 字段=字段+字符串
mysql下sql语句 update 字段=字段+字符串 mysql下sql语句令某字段值等于原值加上一个字符串 update 表明 SET 字段= 'feifei' || 字段; (postgr ...
- MySQL数据库SQL语句基本操作
一.用户管理: 创建用户: create user '用户名'@'IP地址' identified by '密码'; 删除用户: drop user '用户名'@'IP地址'; 修改用户: renam ...
- mysql执行sql语句过程
开发人员基本都知道,我们的数据存在数据库中(目前最多的是mysql和oracle,由于作者更擅长mysql,所以这里默认数据库为mysql),服务器通过sql语句将查询数据的请求传入到mysql数据库 ...
- MySQL与SQL语句的操作
MySQL与SQL语句的操作 Mysql比较轻量化,企业用的是Oracle,基本的是熟悉对数据库,数据表,字段,记录的更新与修改 1. mysql基本信息 特殊数据库:information_sche ...
随机推荐
- 【Java】并行执行任务
在实际的应用上,我们平时需要调用第三方的接口,可能会调用多个接口,串行执行的话, 就需要等待所有的接口调用完成之后才获取到结果,那我们有没有并行的方法的呢? 串行执行 以下是三个接口,假设他们额的执行 ...
- matlab的gui图像处理操作界面,实现重置和退出按钮功能
axes控件实现了展示图片,动态txt控件实现了展示或者输入参数. 重置 在gui界面右键点击重置pushbotton回到代码块callback,编写代码 以下代码是实现图片和参数数字重置,是重置按钮 ...
- Seal AppManager如何基于Terraform简化基础设施管理
作者简介 陈灿,数澈软件Seal 后端研发工程师,曾在腾讯负责敏捷研发体系建设以及 DevOps 解决方案的敏捷实践.在敏捷研发和产品效能提升有着丰富的经验,致力于构建一站式研发友好的平台工程解决方案 ...
- linux程序开机自动运行-未解决
愚认为,本质上就是把程序放在etc文件目录下,让系统开机时,把程序一起编译运行了.orz 首先可以写个shell脚本如下: #!/bin/bash # 定义需要按顺序启动的 Python 程序列表 P ...
- 升讯威在线客服系统是如何实现对 IE8 完全完美支持的(怎样从 WebSocket 降级到 Http)【干货】
简介 升讯威在线客服与营销系统是基于 .net core / WPF 开发的一款在线客服软件,宗旨是: 开放.开源.共享.努力打造 .net 社区的一款优秀开源产品. 完整私有化包下载地址 https ...
- 一文搞明白STM32芯片存储结构
一.前言 本篇介绍STM32芯片的存储结构,ARM公司负责提供设计内核,而其他外设则为芯片商设计并使用,ARM收取其专利费用而不参与其他经济活动,半导体芯片厂商拿到内核授权后,根据产品需求,添加各类组 ...
- Programming abstractions in C阅读笔记: p114-p117
<Programming Abstractions in C>学习第48天,p114-p117,总结如下: 一.技术总结 主要通过random number介绍了随机数的相关用法,int ...
- API接口设计规范
说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢? 下面我们 ...
- tomcat远程部署
使用maven的插件对tomcat进行远程部署,大大降低了部署步骤,对于远程部署调试也有一定的帮助 要让maven对够进行远程部署,我们需要对tomcat进行配置,主要是配置tomcat-user.x ...
- 【项目源码】基于JSP动漫论坛的设计与实现
动漫论坛项目主要用于实现动漫爱好者的互相交流,基本功能包括:注册用户.登录.浏览帖子.发布新帖.回复帖子.等.本系统结构如下: (1)普通用户: 注册用户:如果用户为非会员用户,通过注册,经审核通过之 ...