搜尋
首頁資料庫mysql教程介紹高階進階的MySQL資料庫SQL語句

介紹高階進階的MySQL資料庫SQL語句

Feb 19, 2021 am 09:26 AM
mysqlsql語句

介紹高階進階的MySQL資料庫SQL語句

#免費學習推薦:mysql教學(視頻)

一、準備工作

1、安裝MySQL資料庫

Shell腳本一鍵部署-原始碼編譯安裝MySQL

2、實驗準備,資料表配置

mysql -uroot -p
show databases;

create database train_ticket;
use train_ticket;
create table REGION(region varchar(10),site varchar(20));
create table FARE(site varchar(20),money int(10),date varchar(15));

desc REGION;
desc FARE;

insert into REGION values ('south','changsha');
insert into REGION values ('south','nanchang');
insert into REGION values ('north','beijing');
insert into REGION values ('north','tianjin');

insert into FARE values ('changsha',1000,'2021-01-30');
insert into FARE values ('nanchang',700,'2021-01-30');
insert into FARE values ('beijing',1500,'2021-01-30');
insert into FARE values ('tianjin',1200,'2021-01-30');
insert into FARE values ('beijing',2200,'2021-02-05');

select * from REGION;
select * from FARE;

介紹高階進階的MySQL資料庫SQL語句
介紹高階進階的MySQL資料庫SQL語句

#二、MySQL 高階(進階) SQL 語句


1、SELECT

顯示表格中一個或數個欄位的所有資料

語法:SELECT 欄位FROM 表名

select region from REGION;

2、DISTINCT

不顯示重複的資料(去重)

語法:SELECT DISTINCT 字段FROM 表名

select distinct region from REGION;

3、WHERE

有條件查詢

語法:SELECT 字段FROM表名WHERE 條件

select site from FARE where money > 1000;
select site from FARE where money 

4、AND、OR

and(並且)、or(或)

語法:SELECT 字段FROM 表名WHERE 條件1 ([AND|OR] 條件2) ;

select site from FARE where money > 1000 and (money = 700);

select site,money,date from FARE where money >= 500 and (date 

#5、IN

顯示已知的值的資料

語法:SELECT 欄位FROM 表名WHERE 欄位IN ('值1','值2',……);

select site,money from FARE where money in (700,1000);

#6、BETWEEN


顯示兩個值範圍內的資料

語法:SELECT 欄位FROM 表名WHERE 欄位BETWEEN '值一' and '值二';

select * from FARE where money between 500 and 1000;

#7、通配符、LIKE

通常通配符都是跟LIKE一起使用




%:百分號表示零個、一個或多個字元

_:底線表示單字元

LIKE:用於匹配模式來尋找資料 語法:SELECT 欄位FROM 表格名稱WHERE 欄位LIKE '模式';

select * from FARE where site like 'be%';
select site,money from FARE where site like '%jin_';

8、ORDER BY

依關鍵字排序 語法:SELECT 欄位FROM 表名[WHERE 條件] ORDER BY 欄位[ASC,DESC]; #ASC:依照升序進行排序,預設的排序方式 #DESC:依照降序進行排序函數傳回x 的絕對值rand()mod(x,y)power(x,y)round(x)#round(x,y)sqrt(x)##truncate(x,y)傳回數字x 截斷為y 位小數的值ceil(x)傳回大於或等於x 的最小整數floor(x)傳回小於或等於x 的最大整數
select * from FARE order by money desc;
select date,money from FARE order by money desc;
1、數學函數
#abs(x)
傳回0 到1 的隨機數
傳回x 除以y 以後的餘數
傳回x 的y 次方
傳回離x 最近的整數
保留x 的y 位小數四捨五入後的值
#傳回x 的平方根

介紹高階進階的MySQL資料庫SQL語句

greatest(x1,x2…)

介紹高階進階的MySQL資料庫SQL語句返回集合中最大的值

least(x1,x2…)

傳回集合中最小的值
select sqrt(9),truncate(1.234,2),ceil(1.2),floor(1.9),greatest(1,2,3,4),least(1,2,3,4);
##avg()傳回指定列的平均值count()傳回指定列中非NULL 值的個數min()傳回指定列的最小值
##
select abs(-1),rand(),mod(5,3),power(2,3),round (1.579),round(1.734,2);
2、聚合函數
####max()######傳回指定列的最大值############sum(x)###### 傳回指定列的所有值總和############
select avg(money) from FARE;
select count(money) from FARE;
select min(money) from FARE;
select max(money) from FARE;
select sum(money) from FARE;

#count(*)包括所有列的行数,在统计结果时,不好忽略值为null
#count(字段)只包括那一行的列数,在统计结果的时候,会忽略列值为null的值

3、字符串函数

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 反转

SELECT TRIM ([ [位置] [要移除的字符串] FROM ] 字符串);

#[位置]:的值可以为 LEADING (起头), TRAILING (结尾), BOTH (起头及结尾)。
#[要移除的字符串]:从字串的起头、结尾,或起头及结尾移除的字符串。缺省时为空格。

select trim(leading 'na' from 'nanchang');
select trim(trailing '--' from 'nanchang--');
select trim(both '--' from '--nanchang--');

select concat(region,site) from REGION where region = 'south';
select concat(region,' ',site) from REGION where region = 'south';

select substr(money,1,2) from FARE;

select length(site) from FARE;

select replace(site,'ji','--') from FARE;

select upper(site) from FARE;

select lower('HAHAHA');

select left(site,2) from FARE;

select right(site,3) from FARE;

select repeat(site,2) from FARE;

select space(2); 

select strcmp(100,200);

select reverse(site) from FARE;

4、| | 连接符

如果sql_mode开启开启了PIPES_AS_CONCAT,"||"视为字符串的连接操作符而非或运算符,和字符串的拼接函数Concat相类似,这和Oracle数据库使用方法一样的

介紹高階進階的MySQL資料庫SQL語句

mysql -uroot -p
use train_ticket;

select region || ' ' || site from REGION where region = 'north';
select site || ' ' || money || ' ' || date from FARE;

5、GROUP BY

BY后面的栏位的查询结果进行汇总分组,通常是结合聚合函数一起使用的
GROUP BY 有一个原则,就是 SELECT 后面的所有列中,没有使用聚合函数的列,必须出现在GROUP BY后面。

语法:SELECT 字段1,SUM(字段2) FROM 表名 GROUP BY 字段1;

select site,sum(money) from FARE group by site;
select site,sum(money),date from FARE group by site order by money desc;
select site,count(money),sum(money),date from FARE group by site order by money desc;

6、HAVING

用来过滤由GROUP BY语句返回的记录集,通常与GROUP BY语句联合使用。
HAVING语句的存在弥补了WHERE关键字不能与聚合函数联合使用的不足。如果被SELECT的只有函数栏,那就不需要GROUP BY子句。

语法:SELECT 字段1,SUM(字段2) FROM 表名 GROUP BY 字段1 HAVING(函数条件);

select site,count(money),sum(money),date from FARE group by site having sum(money) >=700;

7、别名

字段别名、表格别名
语法:SELECT “表格別名”.“字段1” [AS] “字段1別名” FROM “表格名” [AS] “表格別名”;

select RE.region  AS reg, count(site) from REGION AS RE group by reg;

select FA.site AS si,sum(money),count(money),date AS da from FARE AS FA group by si;

8、子查询

连接表格,在WHERE 子句或HAVING 子句中插入另一个SQL 语句
语法:SELECT 字段1 FROM 表格1 WHERE 字段2 [比较运算符] (SELECT 字段1 FROM 表格2 WHERE 条件)

可以是符号的运算符
例:=、>、=、

也可以是文字的运算符
例:LIKE、IN、BETWEEN

select A.site,region from REGION AS A where A.site in(select B.site from FARE AS B where money<blockquote><p><strong>相关免费推荐:<a href="https://www.php.cn/sql/" target="_blank">SQL教程</a></strong></p></blockquote>

以上是介紹高階進階的MySQL資料庫SQL語句的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除
MySQL和其他SQL方言之間的語法有什麼區別?MySQL和其他SQL方言之間的語法有什麼區別?Apr 27, 2025 am 12:26 AM

mysqldiffersfromothersqldialectsinsyntaxforlimit,自動啟動,弦樂範圍,子征服和表面上分析。 1)MySqluessLipslimit,whilesqlserverusestopopandoraclesrontersrontsrontsrontsronnum.2)

什麼是mysql分區?什麼是mysql分區?Apr 27, 2025 am 12:23 AM

MySQL分區能提升性能和簡化維護。 1)通過按特定標準(如日期範圍)將大表分成小塊,2)物理上將數據分成獨立文件,3)查詢時MySQL可專注於相關分區,4)查詢優化器可跳過不相關分區,5)選擇合適的分區策略並定期維護是關鍵。

您如何在MySQL中授予和撤銷特權?您如何在MySQL中授予和撤銷特權?Apr 27, 2025 am 12:21 AM

在MySQL中,如何授予和撤銷權限? 1.使用GRANT語句授予權限,如GRANTALLPRIVILEGESONdatabase_name.TO'username'@'host';2.使用REVOKE語句撤銷權限,如REVOKEALLPRIVILEGESONdatabase_name.FROM'username'@'host',確保及時溝通權限變更。

說明InnoDB和Myisam存儲引擎之間的差異。說明InnoDB和Myisam存儲引擎之間的差異。Apr 27, 2025 am 12:20 AM

InnoDB適合需要事務支持和高並發性的應用,MyISAM適合讀多寫少的應用。 1.InnoDB支持事務和行級鎖,適用於電商和銀行系統。 2.MyISAM提供快速讀取和索引,適合博客和內容管理系統。

MySQL中有哪些不同類型的連接?MySQL中有哪些不同類型的連接?Apr 27, 2025 am 12:13 AM

MySQL中有四種主要的JOIN類型:INNERJOIN、LEFTJOIN、RIGHTJOIN和FULLOUTERJOIN。 1.INNERJOIN返回兩個表中符合JOIN條件的所有行。 2.LEFTJOIN返回左表中的所有行,即使右表中沒有匹配的行。 3.RIGHTJOIN與LEFTJOIN相反,返回右表中的所有行。 4.FULLOUTERJOIN返回兩個表中所有符合或不符合JOIN條件的行。

MySQL中有哪些不同的存儲引擎?MySQL中有哪些不同的存儲引擎?Apr 26, 2025 am 12:27 AM

mysqloffersvariousStorageengines,每個suitedfordferentusecases:1)InnodBisidealForapplicationsNeedingingAcidComplianCeanDhighConcurncurnency,supportingtransactionsancions and foreignkeys.2)myisamisbestforread-Heavy-Heavywyworks,lackingtransactionsactionsacupport.3)記憶

MySQL中有哪些常見的安全漏洞?MySQL中有哪些常見的安全漏洞?Apr 26, 2025 am 12:27 AM

MySQL中常見的安全漏洞包括SQL注入、弱密碼、權限配置不當和未更新的軟件。 1.SQL注入可以通過使用預處理語句防止。 2.弱密碼可以通過強制使用強密碼策略避免。 3.權限配置不當可以通過定期審查和調整用戶權限解決。 4.未更新的軟件可以通過定期檢查和更新MySQL版本來修補。

您如何確定MySQL中的慢速查詢?您如何確定MySQL中的慢速查詢?Apr 26, 2025 am 12:15 AM

在MySQL中識別慢查詢可以通過啟用慢查詢日誌並設置閾值來實現。 1.啟用慢查詢日誌並設置閾值。 2.查看和分析慢查詢日誌文件,使用工具如mysqldumpslow或pt-query-digest進行深入分析。 3.優化慢查詢可以通過索引優化、查詢重寫和避免使用SELECT*來實現。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用