數據管理

1、數據管理

一、增長數據html

INSERT INTO student VALUES(1,'張三','男',20);
--依次按順序插入全部字段

如只須要插入部分字段jsp

INSERT INTO student(id,NAME) VALUES(2,'李四');
--只添加id 和NAME兩列內容,但也要依此按順序

二、修改數據函數

UPDATE student SET gender='男' WHERE id=1; 
-- 修改id爲1的學生,修改性別爲男

修改多個字段post

UPDATE student SET gender='男',age=30 WHERE id=2;
-- 修改多個字段,注意: SET  字段名=值,字段名=值

三、刪除數據spa

DELETE FROM student WHERE id=2;
-- 帶條件的刪除,刪除id=2的行
DELETE FROM student;
--不帶條件,刪除student全部數據

另外一種方式code

-- delete from: 能夠全表刪除     htm

1)能夠帶條件刪除  blog

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值的字段

八、查詢排序

order by

-- 語法 :order by 字段 asc/desc
-- asc: 順序,正序。數值:遞增,字母:天然順序(a-z)
-- desc: 倒序,反序。數值:遞減,字母:天然反序(z-a)
-- 需求: 按照id順序排序
SELECT * FROM student ORDER BY id ASC;
SELECT * FROM student ORDER BY id; -- 默認正序

SELECT * FROM student ORDER BY id DESC;-- 反序

-- 注意:多個排序條件
-- 需求: 按照servlet正序,按照jsp的倒序
SELECT * FROM student ORDER BY servlet ASC,jsp DESC;

九、分組查詢

group by

-- 需求: 查詢男女的人數
-- 預期結果:
  --  男   3
  -- 女   2
  -- 1) 把學生按照性別分組(GROUP BY gender)
  -- 2) 統計每組的人數(COUNT(*))
SELECT gender,COUNT(*) FROM student GROUP BY gender;

十、分組查詢後篩選

需求: 查詢總人數大於2的性別
-- 1) 查詢男女的人數
-- 2)篩選出人數大於2的記錄(having)
--- 注意: 分組以前條件使用where關鍵字,分組以後條件使用having關鍵字
SELECT gender,COUNT(*) FROM student WHERE GROUP BY gender HAVING COUNT(*)>2;
相關文章
相關標籤/搜索