mysql資料庫常用命令(補充)

肥肥生威發表於2024-07-18
1、檢視錶的所有內容

select * from 表名;

2、檢視指定內容

select name,age from test;

select表示查詢,name表示名字,age表示年齡,from是從的意思,test是表名。

翻譯過來就是:從test表中查詢名字和年齡欄位的內容。

在select後面指定要查詢的項,可以是一項也可以多項。

在select後面新增distinct去除重複項輸出:如select distinct name,age from 表名;

3、預測庫存量

select name,stock+100 from test;

stock是庫存列,stock+100就是原庫存加100。

如果庫存有為null的,它是不會相加的,需要把它設為0。

select name,ifnull(stock,0)+100 from 表名;

ifnull(stock,0)的意思是:如果stock為null,就把stock的值設為0。

3、根據條件查詢

select * from test where age>20;

where後面就是條件

翻譯過來就是:從test表查詢所有年齡大於20的內容。

如果條件為null的話,需要用is或is not,不能用<、=、>這些符號

例如:select * from test where age is null;

範圍查詢

select * from test where age>=20 and age<=50;

翻譯過來就是:從test表查詢所有年齡大於等於20和小於等於50的內容

也可以用:select * from test where age between 20 and 50;

從test表查詢年齡在20到50之間的內容

4、模糊查詢

select * from test where name like '蘋果%';
%是匹配所有的意思,只要前面倆個字是蘋果都會匹配上

翻譯過來就是:從test表查詢所有名字前倆位是蘋果的內容,

查詢所有帶有蘋果的內容:select * from test where name like '%蘋果%';

select * from 表名 where name like '_蘋果%

_表示佔一位的意思,也可以用多個來佔多個位

翻譯過來就是:從test表查詢所有名稱第二位是蘋,第三位是果的內容。

5、聚合查詢

select count(*) from test;

count()查詢函式,翻譯過來就是:從test表查詢所有函式,也就是有多少條資訊。

min()最小,max()最大,sun()總數,AVG()平均數。

例如說從test表查詢最小年齡的值:select min(age) from test;

6、排序查詢asc desc

升序查詢

select * from test order by age asc;

從test表查詢年齡的所有欄位並按升序從小到大排列

降序查詢

select * from test order by age desc;

從test表查詢年齡的所有欄位並按降序從大到小排列

order by是查詢欄位的意思,asc是升序的意思,desc是降序的意思

7、分組查詢

select brand,sun(prcice) from test group by brand;

brand是品牌,sun(prcice)計算總金額,group by分組輸出。

意思就是:從test表查詢品牌和金額的總欄位內容並分組輸出。

8、分頁查詢

公式:select * from 表名 LIMIT (頁碼-1)*每頁數量,每頁數量

如果一頁有五條資料,頁碼數量從1開始,也就是(1-1)*每頁數量5,每頁數量5;第一頁得出0,5。

第二頁是(2-1)*每頁數量5,每頁數量5;第二頁得出5,5。以此類推

還有個簡單的方法從0開始算,第一頁是0到4,第二頁是5到9。

或者是頁碼數加每頁數量得出下一頁的頁碼數,如0+5得5,5+5得10。

select * from test limit 0,5;第一頁

select * from test limit 5,5;第二頁

9、多對多表查詢

用一箇中間表把其它的錶連結起來,透過這個中間表可以把資料聯通。

如學生、課程,學生可以選擇多個課程,但同時課程也可以被多個學生去選擇

課程表跟學生表之間就需要用到中間表來專門把它們連線起來。

學生表

create table student (

id int PRIMARY key auto_increment,//把整數型別id設為主鍵並且自增

name varchar(20)//字串型別名字

)ENGINE=innodb;

id int 宣告id為整數,PRIMARY key 設為主鍵,auto_increment自增

name varchar(20) 宣告name為字串型別

ENGINE=innodb 設定儲存引擎,沒有可能會報錯

課程表

create table course (

id int PRIMARY key auto_increment,

name varchar(20)

)ENGINE=innodb;

中間表

create table stu_cre (

id int PRIMARY key auto_increment,

sid int,

cid int,

constraint ss foreign key (sid) references student(id),

constraint sc foreign key (cid) references course(id),

)ENGINE=innodb;

constraint設定外連結,命名為ss隨便起一個,foreign key (sid)本表鍵,references student(id)學生表鍵。

我這裡沒有插入資料,可以自己新增資料,如果表裡面有資料,透過查詢語句

select * from 中間表名;

檢視中間表就可以看到倆個表的關聯資料了

10、內連線

用於查詢倆個表或多個表有交集、相關聯的資料

語法:select 列名 from 表名1 inner join 表名2 on 關聯條件;

select * from 使用者表 inner join 訂單表 on 使用者.id=訂單.sid;

從使用者表查詢所有與訂單表相關聯的資料,使用者.id和s訂單sid要有關聯。

使用者表是要查詢的主表,inner join表示連線。

相關文章