-
分組
分組查詢是指使用GROUP BY語(yǔ)句對(duì)查詢信息進(jìn)行分組,相同的數(shù)據(jù)作為一組
SELECT 字段1,字段2,…… FROM 表名 GROUP BY 分組字段 [HAVING 條件];
分組后用having進(jìn)行條件過(guò)濾
GROUP BY 怎么分組的?將分組字段結(jié)果中相同內(nèi)容作為一組
分組和聚合函數(shù)一起使用
注意事項(xiàng):當(dāng)使用某個(gè)字段分組,在查詢的時(shí)候也需要將這個(gè)字段查詢出來(lái),否則看不到數(shù)據(jù)是屬于哪組的
SELECT SUM(life),sex FROM hero GROUP BY sex;
having與where的區(qū)別
having 是在分組后對(duì)數(shù)據(jù)進(jìn)行過(guò)濾
where 是在分組前對(duì)數(shù)據(jù)進(jìn)行過(guò)濾
having 后面可以使用聚合函數(shù)
where 后面不可用使用聚合函數(shù)
查看全部 -
分組
分組查詢是指使用GROUP BY語(yǔ)句對(duì)查詢信息進(jìn)行分組,相同的數(shù)據(jù)作為一組
SELECT 字段1,字段2,…… FROM 表名 GROUP BY 分組字段 [HAVING 條件];
分組后用having進(jìn)行條件過(guò)濾
GROUP BY 怎么分組的?將分組字段結(jié)果中相同內(nèi)容作為一組
分組和聚合函數(shù)一起使用
注意事項(xiàng):當(dāng)使用某個(gè)字段分組,在查詢的時(shí)候也需要將這個(gè)字段查詢出來(lái),否則看不到數(shù)據(jù)是屬于哪組的
SELECT SUM(life),sex FROM hero GROUP BY sex;
having與where的區(qū)別
having 是在分組后對(duì)數(shù)據(jù)進(jìn)行過(guò)濾
where 是在分組前對(duì)數(shù)據(jù)進(jìn)行過(guò)濾
having 后面可以使用聚合函數(shù)
where 后面不可用使用聚合函數(shù)
查看全部 -
分組
分組查詢是指使用GROUP BY語(yǔ)句對(duì)查詢信息進(jìn)行分組,相同的數(shù)據(jù)作為一組
SELECT 字段1,字段2,…… FROM 表名 GROUP BY 分組字段 [HAVING 條件];
分組后用having進(jìn)行條件過(guò)濾
GROUP BY 怎么分組的?將分組字段結(jié)果中相同內(nèi)容作為一組
分組和聚合函數(shù)一起使用
注意事項(xiàng):當(dāng)使用某個(gè)字段分組,在查詢的時(shí)候也需要將這個(gè)字段查詢出來(lái),否則看不到數(shù)據(jù)是屬于哪組的
SELECT SUM(life),sex FROM hero GROUP BY sex;
having與where的區(qū)別
having 是在分組后對(duì)數(shù)據(jù)進(jìn)行過(guò)濾
where 是在分組前對(duì)數(shù)據(jù)進(jìn)行過(guò)濾
having 后面可以使用聚合函數(shù)
where 后面不可用使用聚合函數(shù)
查看全部 -
聚合函數(shù):是縱向查詢,對(duì)一列的值進(jìn)行計(jì)算,然后返回一個(gè)結(jié)果值,會(huì)忽略空值
count:統(tǒng)計(jì)指定列記錄數(shù),記錄為null的不統(tǒng)計(jì)
sum:計(jì)算指定列的數(shù)值和,如果不是數(shù)值類型,計(jì)算結(jié)果為0
max:計(jì)算指定列的最大值
min:計(jì)算指定列的最小值
avg:計(jì)算指定列的平均值,如果不是數(shù)值類型,那么計(jì)算結(jié)果為0
聚合函數(shù)的使用:寫在SQL語(yǔ)句SELECT后 字段名 的地方
SELECT 字段名…… FROM 表名;
SELECT COUNT(age) FROM 表名;
SELECT COUNT(*) FROM 表名;— 統(tǒng)計(jì)共有多少行數(shù)據(jù)(不算表頭)
查看全部 -
排序
通過(guò)ORDEB BY 可以將查詢結(jié)果進(jìn)行排序(排序只是顯示方式,不會(huì)影響數(shù)據(jù)庫(kù)中數(shù)據(jù)的順序)
語(yǔ)法:SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名 [ASC|DESC]
ASC:升序,默認(rèn)是升序
DESC:降序
單列排序:使用一個(gè)字段排序
組合排序
SECLECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名1 [ASC|DESC],字段名2 [ASC|DESC],……;
查看全部 -
LIKE? 表示模糊查詢
SELECT *FROM 表名 WHERE 字段名 LIKE '通配符字符串';
滿足通配符字符串規(guī)則的數(shù)據(jù)就會(huì)顯示出來(lái)
MySQL通配符有兩個(gè):
% :表示0個(gè)或者多個(gè)字符(任意字符) (%筆記本%? ? 蘋果筆記本 )
例如:把名字中含“孫”的名字全搜出來(lái):LIKE '%孫%';
_:表示一個(gè)字符? ?(筆記_? ? 筆記本? ?筆記1)
例如:把姓孫的且名字是三個(gè)字的名字搜出來(lái):LIKE '孫_ _';
查看全部 -
刪除表直接用DROP
刪除列則須用ALTER TABLE student DROP intro
查看全部 -
邏輯運(yùn)算符
and 多個(gè)條件同時(shí)滿足
or 多個(gè)條件其中一個(gè)滿足
not 不滿足
in關(guān)鍵字
語(yǔ)法格式:SELECT * FROM 表明 WHERE 字段 in(數(shù)據(jù)1,數(shù)據(jù)2……);
in里面的每個(gè)數(shù)據(jù)都會(huì)作為一次條件,只要滿足條件的就會(huì)顯示
顯示除過(guò)數(shù)據(jù)1,數(shù)據(jù)2之外的數(shù)據(jù):
SELECT * FROM 表明 WHERE 字段 not in(數(shù)據(jù)1,數(shù)據(jù)2……);
范圍運(yùn)算符:
SELECT * FROM 表名 WHERE 字段名 BETWEEN 值1 AND 值2?
表示從值1到值2范圍,包頭又包尾
查看全部 -
Navicat連接工具的使用
Navicat是一套快速、可靠且價(jià)格相當(dāng)便宜的數(shù)據(jù)庫(kù)管理工具
查看全部 -
DQL語(yǔ)句:不會(huì)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修改,只是一種顯示數(shù)據(jù)的形式
查詢表中所有數(shù)據(jù)
1、使用*表示所有列:SELECT *FROM 表名;
2、寫出要查詢的每列的字段名稱:SELECT id,name,age FROM 表名;
查詢指定列的數(shù)據(jù):SELECT id,name,age,…… FROM 表名;
別名查詢
1、查詢時(shí)給列、表指定別名需要使用AS關(guān)鍵字
2、使用別名的好處是方便觀看和處理查詢到的數(shù)據(jù)
SELECT 字段名1 AS 別名,字段名2 AS 別名…… FROM 表名;
其中AS可以省了不寫
清除重復(fù)值
查詢指定列并且結(jié)果不出現(xiàn)重復(fù)數(shù)據(jù)
SELECT DISTINCT 字段名 FROM 表名;
查詢結(jié)果參與運(yùn)算
1、某列數(shù)據(jù)和固定值運(yùn)算:SELECT 列名1+固定值 FROM 表名;
2、某列數(shù)據(jù)和其他列數(shù)據(jù)參與運(yùn)算:SELECT 列名1+列名2 FROM 表名;
注意:參與運(yùn)算的必須是數(shù)值類型
查看全部 -
更新表記錄
1、不帶條件修改數(shù)據(jù):UPDATE 表名 SET 字段名=值;
2、帶條件修改數(shù)據(jù):
UPDATE 表名 SET 字段名=值 WHERE 字段名=值;
3、關(guān)鍵字說(shuō)明
UPDATE:修改數(shù)據(jù)
SET:修改哪些數(shù)據(jù)
WHERE:指定條件
刪除表記錄
1、不帶條件刪除數(shù)據(jù):DELETE FROM 表名;
2、帶條件刪除數(shù)據(jù):DELETE FROM 表名 WHERE 字段名=值;
truncate刪除表記錄:TRUNCATE TABLE 表名;
truncate與delete的區(qū)別
delete是將表中的數(shù)據(jù)一條一條的刪除
truncate是將整個(gè)表摧毀,重新創(chuàng)建一個(gè)新的表,新的表結(jié)構(gòu)和原來(lái)表結(jié)構(gòu)一模一樣
查看全部 -
蠕蟲(chóng)復(fù)制:在已有的數(shù)據(jù)基礎(chǔ)之上,將原來(lái)的數(shù)據(jù)進(jìn)行復(fù)制,插入到對(duì)應(yīng)的表中
語(yǔ)法:INSERT INTO 表1 SELECT * FROM 表2;
作用:將表2中的數(shù)據(jù)復(fù)制到表1中
LIKE是復(fù)制表結(jié)構(gòu),無(wú)法復(fù)制表中的數(shù)據(jù)
如果只是想復(fù)制表1中的某些字段到新表2中
INSERT INTO 表2(name,age)SELECT name,age FROM 表1
?
查看全部 -
查看創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)
SHOW CREATE DATABASE 數(shù)據(jù)庫(kù)名
查看全部 -
默認(rèn)UTF字符集
查看全部 -
DDL數(shù)據(jù)定義語(yǔ)言:數(shù)據(jù)庫(kù)、表、列
DML數(shù)據(jù)操作語(yǔ)言:數(shù)據(jù)增刪改
DQL數(shù)據(jù)查詢語(yǔ)言:數(shù)據(jù)查詢
DCL數(shù)據(jù)控制語(yǔ)言:權(quán)限
查看全部 -
DML語(yǔ)句
1、插入記錄
INSERT INTO 表名 (字段1,字段2,……) VALUES(值1,值2,……)
1)值與字段必須對(duì)應(yīng),個(gè)數(shù)和類型相同
2)值的數(shù)據(jù)大小必須在字符的長(zhǎng)度范圍內(nèi)
3)除了數(shù)據(jù)類型外,其他的字段類型的值必須使用引號(hào)(建議單引號(hào))
4)如果要插入空值,可以不寫字段,或者插入null
2、插入全部字段
1)所有的字段名全寫
INSERT INTO 表名 (字段1,字段2,……) VALUES(值1,值2,……)
2)不寫字段名:INSERT INTO 表名 VALUES(值1,值2,……)
3、插入部分?jǐn)?shù)據(jù)
INSERT INTO 表名 (字段1,字段2,……) VALUES(值1,值2,……)
沒(méi)有添加數(shù)據(jù)的字段會(huì)使用null,null不要加引號(hào)
4、查詢是否成功插入數(shù)據(jù):SELECT * FROM 表名;
查看全部 -
修改表結(jié)構(gòu)
1、添加表列:ALTER TABLE 表名 ADD 列名 類型;
2、修改列類型:ALTER TABLE 表名 MODIFY 列名 新的類型;
3、修改列名:ALTER TABLE 表名 CHANGE 舊表名 新表名 類型;
4、刪除列:ALTER TABLE 表名 DROP 列名;
5、修改表名:RENAME TABLE 表名 To 新表名; ?
6、修改字符集:ALTER TABLE 表名 CHARACTER SET 字符集;?
查看全部 -
DDL操作表
前提是先使用某個(gè)數(shù)據(jù)庫(kù):USE
創(chuàng)建表
語(yǔ)法:CREATE TABLE 表名(
字段名1 字段類型1,
字段名2 字段類型2,
……
);
查看數(shù)據(jù)庫(kù)中所有的表:SHOW TABLES;
查看表結(jié)構(gòu):DESC 表名;
查看創(chuàng)建表的SQL語(yǔ)句:SHOW CREATE TABLE 表名;
快速創(chuàng)建一個(gè)表結(jié)構(gòu)相同的表:CREATE TABLE 新表名 LIKE 舊表名;
刪除數(shù)據(jù)表:DROP TABLE 表名;
判斷表是否存在并刪除表:DROP TABLE IF EXISTS 表名;
修改表結(jié)構(gòu)
查看全部
舉報(bào)