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