1、數據管理html
一、增長數據jsp
INSERT INTO student VALUES(1,'張三','男',20);
-- 插入全部字段。必定依次按順序插入
-- 注意不能少或多字段值
如只須要插入部分字段函數
INSERT INTO student(id,NAME) VALUES(2,'李四');
--只添加id 和NAME兩列內容,也要依此按順序
二、修改數據spa
UPDATE student SET gender='男' WHERE id=1;
-- 修改id爲1的學生,修改性別爲男
修改多個字段code
UPDATE student SET gender='男',age=30 WHERE id=2;
-- 修改多個字段,注意: SET 字段名=值,字段名=值
三、刪除數據htm
DELETE FROM student WHERE id=2;
-- 帶條件的刪除,刪除id=2的行
DELETE FROM student; --不帶條件,刪除student全部數據
另外一種方式blog
-- delete from: 能夠全表刪除 排序
1)能夠帶條件刪除 事務
2)只能刪除表的數據,不能刪除表的約束 字符串
3)使用delete from刪除的數據能夠回滾(事務)
-- truncate table: 能夠全表刪除
1)不能帶條件刪除
2)便可以刪除表的數據,也能夠刪除表的約束
3)使用truncate table刪除的數據不能回滾
四、查詢數據
1>查詢全部列
SELECT * FROM student;
2>查詢指定列
SELECT id,NAME,gender FROM student;
3>查詢時添加常量
給查詢字段添加常量方便觀看,對原表格沒有影響
SELECT pro_name AS '產品名稱',price FROM product;
--原顯示pro_name 和price,如今換成:產品名稱 和 price
4>查詢時合併列
合併列只能合併相同類型且是數值類型的字段
SELECT sname,(servlet+jsp+html) AS '總成績'FROM student;
5>查詢時去除重複記錄
-- 需求: 查詢學生的性別 男 女
SELECT DISTINCT sex FROM student;
-- 另外一種語法(是否有括號沒有區別)
SELECT DISTINCT(sex) FROM student;
6>條件查詢
1、邏輯條件: and(與) or(或)
SELECT * FROM student WHERE id=2 AND NAME='李四'; -- 交集 SELECT * FROM student WHERE id=2 OR NAME='張三'; -- 並集
二、比較條件: > < >= <= = <>(不等於) between and (等價於>= 且 <=)
SELECT * FROM student WHERE jsp>=75 AND jsp<=90; --等同於between and SELECT * FROM student WHERE jsp BETWEEN 75 AND 90; -- (包前包後) --查詢不等於男的學生 SELECT * FROM student WHERE gender<>'男';
三、判空條件
null,是空,裏面沒有內容
'' 是空字符串,裏面有內容,內容是空字符串
is null 是空
is not null 不是空
='' 是空字符串
<>'' 不是空字符串
-- 判斷null SELECT * FROM student WHERE address IS NULL ; SELECT * FROM student WHERE address IS NOT NULL ; -- 判斷空字符串 SELECT * FROM student WHERE address=''; --查詢不等於空的學生 SELECT * FROM student WHERE address<>'';
查詢有地址的學生(不包括null和空字符串)
SELECT * FROM student WHERE address IS NOT NULL AND address<>'';
四、模糊條件:like
-- % : 表示任意個字符
--%在前表示前面能夠有字符,%在後表示後面能夠有字符
--查詢含有'索尼'字符的數據 SELECT * FROM product WHERE pro_name LIKE '%索尼%';
-- _ : 表示一個字符
-- 需求: 查詢姓‘李’,且姓名只有兩個字的學生 SELECT * FROM student WHERE NAME LIKE '李_';
七、聚合查詢
-- 經常使用的聚合函數: sum() 總和, avg() 平均分, max() 最大值, min()最小值, count()統計數量
-- 需求: 查詢學生的servlet的平均分 SELECT AVG(servlet) AS 'servlet的平均分' FROM student;
SELECT COUNT(*) FROM student; --查詢共有多少學生
-- 注意:count()函數統計的數量不包含null的數據
-- 使用count統計表的記錄數,要使用不包含null值的字段
八、分頁查詢
語法:limit 起始行,查詢幾行,起始行從0開始
SELECT * FROM student LIMIT 0,2; -- 從第一行開始,顯示兩行
九、查詢排序
語法 :order by 字段 asc/desc,默認順序
-- asc: 順序,正序。數值:遞增,字母:天然順序(a-z)
-- desc: 倒序,反序。數值:遞減,字母:天然反序(z-a)
SELECT * FROM student ORDER BY id; -- 默認正序123 SELECT * FROM student ORDER BY id DESC;-- 反序321
多個排序條件
SELECT * FROM student ORDER BY servlet ASC,jsp DESC -- 按照servlet爲主順序,正序排列,當servlet數值相同時,後面的jsp倒序排列其餘的JSP不按照倒序排列
十、分組查詢 (group by)
SELECT gender,COUNT(*) FROM student GROUP BY gender --查詢男女的人數
分組查詢後篩選
-- 需求: 查詢總人數大於2的性別 SELECT gender,COUNT(*) FROM student GROUP BY gender HAVING COUNT(*)>2; -- 注意: 分組以前條件使用where關鍵字,分組以後條件使用having關鍵字