DML和DQL 增刪改查 SELECT * FROM grade --新增 insert -- 向年級表中新增3條數據INSERT INTO grade(gradeID,gradeName) VALUES(4,'4年級');INSERT INTO grade(gradeID,gradeName) V ...
DML和DQL 增刪改查
SELECT * FROM grade
--新增 insert
-- 向年級表中新增3條數據
INSERT INTO grade(gradeID,gradeName) VALUES(4,'4年級');
INSERT INTO grade(gradeID,gradeName) VALUES(5,'5年級');
INSERT INTO grade(gradeID,gradeName) VALUES(6,'6年級');
-1.備份表:create table 新表(不存在) select * from 原表
-2.追加數據:
(一次性向表中走N條記錄)
insert into 被追加數據的表名(列) select 列 from 原表
-- 刪除 delect
DELETE FROM grade WHERE gradeID>3;
DELETE FROM grade WHERE gradeID=4 OR gradeID=5 OR gradeID=6;
DELETE FROM grade WHERE gradeID IN (4,5,6);
-- 同時插入多條數據 (oracle資料庫不支持)
INSERT INTO grade(gradeID,gradeName)
VALUES(4,'4年級'),(5,'5年級'),(6,'6年級');
--修改 update
-- 修改gradeID=1的年級名稱為 one
UPDATE grade SET gradeName='one'
WHERE gradeID=1
-- delete 刪除表中所有的數據
DELETE FROM grade;
delete 和 truncate的區別
01.delete
begin (開啟事務)
select * from grade;(查詢年級表中所有的數據)
delete from grade; (刪除年級表中所有的數據)
select * from grade;(查詢年級表中所有的數據,沒有數據)
rollback; (事務回滾)
select * from grade;(查詢年級表中所有的數據,刪除的數據恢復)
commit (提交事務)
02.truncate
begin (開啟事務)
select * from grade;(查詢年級表中所有的數據)
truncate table grade; (刪除年級表中所有的數據)
select * from grade;(查詢年級表中所有的數據,沒有數據)
rollback; (事務回滾)
select * from grade;(查詢年級表中所有的數據,沒有數據)
commit (提交事務)
區別:
01.delete後面可以拼接where條件,刪除指定的行!
truncate只能刪除表中所有的數據!不能有where!
02.delete可以回滾,資料庫可以恢復!(記錄日誌)
truncate 不能事務混滾,數據不可以恢復!(不記錄日誌)
03.truncate執行效率高!
delete執行效率低!
04.delete刪除後自增列編號會接著上次最大值
Truncate截斷表:自增列編號從1開始
查詢
將查詢結果保存到 新表中!
create table newStudent
(select stuName,address from student)
view (視圖) :不占物理空間!
使用 具體的列 代替 *
select * from student;
select stuName,age ,address from student;
使用別名
SELECT gradeID AS 年級編號,gradeName '年級 名稱' FROM grade;
格式
01. 列名 AS 別名
02. 列名 別名
03. 如果別名中有特殊符號,必須把 別名用 單引號 引起來!
查詢年級表中 id不等於1的數據 <> !=
SELECT gradeID,gradeName
FROM grade
WHERE gradeid <> 1
+ 必須是相同的數據類型,能轉換成2進位的數據!
如果有一個列是null 整體返回null!
我們通常使用 concat來做合併
SELECT CONCAT(loginPwd,',',studentNAME) AS 合併列 FROM STUDENT
使用is null 的時候 要確保 查詢的列 可以為空!
null:
01.標識 空值
02.不是0,也不是空串""
03.只能出現在定義 允許為null的欄位
04.只能使用is null 或者is not null 進行比較!
SELECT * FROM student
WHERE loginPwd IS NULL
-- 查詢成績表的總成績
SELECT SUM(studentResult) FROM result;
-- 查詢成績的平均值
SELECT AVG(studentResult) FROM result;
-- 查詢成績的最高分
SELECT MAX(studentResult) FROM result;
-- 查詢成績的最低分
SELECT MIN(studentResult) FROM result;
-- 查詢有成績的總數
SELECT COUNT(studentResult) FROM result;
#修改表名
ALTER TABLE 舊表名RENAME [TO] 新表名;
#添加欄位
ALTER TABLE 表名ADD 欄位名數據類型[屬性];
#修改欄位
ALTER TABLE 表名CHANGE 原欄位名新欄位名數據類型[屬性];
#刪除欄位
ALTER TABLE 表名DROP 欄位名;