一、添加數據。
-- 1.創建表,並插入一定的數據。
1 CREATE TABLE STUDENT( 2 ID INT, 3 USERNAME VARCHAR(20), 4 SERVLET INT, 5 JSP INT, 6 ADDRESS VARCHAR(30) 7 ); 8 INSERT INTO STUDENT VALUES (1,'張三',23,84,'京口區'); 9 INSERT INTO STUDENT VALUES (2,'李四',36,74,'潤州區'); 10 INSERT INTO STUDENT VALUES (3,'王五',74,24,'京口區'); 11 INSERT INTO STUDENT VALUES (4,'趙六',87,85,'京口區'); 12 INSERT INTO STUDENT VALUES (5,'李七',63,98,'大港區'); 13 INSERT INTO STUDENT VALUES (6,'鄭八',99,89,null); 14 INSERT INTO STUDENT VALUES (7,'孫九',60,84,'');
-- 2.插入部分數據
INSERT INTO STUDENT (ID,USERNAME) VALUES(8,'李十十');
二、修改數據
--1.根據條件修改數據
UPDATE STUDENT SET SERVLET = 86 WHERE ID =1;
--2.修改多個字段的內容
UPDATE STUDENT SET SERVLET = 65,JSP = 73 WHERE ID = 2;
三、刪除數據(暫無演示)
-- 7.刪除所有數據
-- 可以帶條件刪除,只能刪除表的數據,不能刪除表的約束,即自增長數值接著上次刪除的數值增長,刪除數據可以回滾。
DELETE FROM STUDENT;
-- 8.帶條件刪除
DELETE FROM STUDENT WHERE SID = 2;
-- 9.另一種刪除方式,輸出表中所有數據
-- 不能帶條件刪除,既可以刪除表的數據,也可以刪除表的約束,永久刪除。
TRUNCATE TABLE STUDENT;
四、單表查詢
-- 1.查詢所有列
SELECT * FROM STUDENT;
-- 2.查詢指定列
SELECT ID ,USERNAME FROM STUDENT;
-- 3.查詢時指定別名
-- 在多表查詢時經常使用表的別名
SELECT ID AS '編號' ,USERNAME AS '用戶名' FROM STUDENT AS S;
-- 4.A查詢時添加常量列
SELECT ID ,USERNAME,'這是一個班' AS '備注' FROM STUDENT;
-- 5.查詢時合並列
-- 查詢每個學生的SERVLET和JSP的總成績
-- 合並列只能合並數值類型的字段。
SELECT ID ,USERNAME ,(SERVLET+JSP) AS '總成績' FROM STUDENT;
-- 6.查詢去除重復記錄
-- 查詢所有JSP成績可以出現的情況
SELECT DISTINCT ADDRESS FROM STUDENT;
-- 另一種語法
SELECT DISTINCT(ADDRESS) FROM STUDENT;
-- 7.條件查詢(WHERE)
-- 7.1邏輯條件 AND OR
-- 查詢 SID為2,且姓名為李四的學生
SELECT * FROM STUDENT WHERE ID = 2 AND USERNAME = '李四';
-- 7.1.1查詢 SID為2,或姓名為張三的學生
SELECT * FROM STUDENT WHERE ID = 2 OR USERNAME = '張三';
-- 7.2比較條件 > < >= <= == <> BETWEEN AND
-- 7.2.1查詢 SERVLET 成績大於70分的學生
SELECT * FROM STUDENT WHERE SERVLET > 70;
-- 7.2.2查詢 SERVLET 成績大於60分小於80分的學生
SELECT * FROM STUDENT WHERE SERVLET >60 AND SERVLET < 80;
-- 7.2.3查詢 SERVLET 成績大於等於70小於等於80的學生
SELECT * FROM STUDENT WHERE SERVLET >=70 AND SERVLET <=80;
-- 7.2.4另外一種語法
SELECT * FROM STUDENT WHERE SERVLET BETWEEN 70 AND 80;
-- 7.2.5查詢 姓名不等於張三的記錄
SELECT * FROM STUDENT WHERE USERNAME <>'張三';
-- 7.3判空(null 空字符串) IS NULL IS NOT NULL ='' <>''
-- 7.3.1判斷NULL
SELECT * FROM STUDENT WHERE ADDRESS IS NULL;
-- 7.3.2判斷空字符串
SELECT * FROM STUDENT WHERE ADDRESS ='';
-- 7.3.3查詢地址為空的記錄
SELECT * FROM STUDENT WHERE ADDRESS IS NULL OR ADDRESS = '';
-- 7.3.4查詢地址不為空的記錄
SELECT * FROM STUDENT WHERE ADDRESS IS NOT NULL AND ADDRESS <>'';
-- 7.4模糊條件 LIKE
-- 通常使用以下替換的標記:%:表示任意字符;_:表示一個字符
-- 7.4.1查詢姓李學生的記錄
SELECT * FROM STUDENT WHERE USERNAME LIKE '李%';
-- 8.聚合查詢
-- 常用的聚合函數:SUM() AVG() MAX() MIN() COUNT()
-- 8.1查詢學生SERVLET 總成績
SELECT SUM(SERVLET) AS 'SERVLET的總成績' FROM STUDENT;
-- 8.2查詢 學生 SERVLET 的平均分
SELECT AVG(SERVLET) AS 'SERVLET的平均分' FROM STUDENT;
-- 8.3查詢當前 SERVLET 的最高分
SELECT MAX(SERVLET) AS '最高分' FROM STUDENT;
-- 8.4查詢 SERVLET的最低分
SELECT MIN(SERVLET) AS '最低分' FROM STUDENT;
-- 查詢當前有多少學生 COUNT(字段)
SELECT COUNT(*) FROM STUDENT;
-- 9.分頁查詢 LIMIT 起始行,查詢幾行。主要用於分頁。
-- 查詢第1,2條記錄
SELECT * FROM STUDENT LIMIT 0,2;
-- 10.排序,默認情況下按插入記錄的順序排序。ORDER BY
-- 10.1ASC 正序 DESC 倒序
SELECT * FROM STUDENT ORDER BY ID DESC;
-- 10.2按照SERVLET正序,再JSP倒序
SELECT * FROM STUDENT ORDER BY SERVLET ASC ,JSP DESC;
-- 11.分組查詢 GROUP BY
-- 查詢每個地區的人數
SELECT ADDRESS,COUNT(*) FROM STUDENT GROUP BY ADDRESS;
-- 12.分組查詢後篩選
-- 查詢分組後區域人數超過1個人的區域 GROUP BY 後面不能再跟條件where
SELECT ADDRESS ,COUNT(*) FROM STUDENT GROUP BY ADDRESS HAVING COUNT(*)>1;