數據庫的增刪改查
添加
insert into 目標表 values(添加的值); insert into 目標表(列名1,列名2) values(新值1,新值2); 創建一份新表 插入數據,備份數據 create table 新表名 as select * from 原表名
修改
update 表名 set 屬性值=‘新的名稱’ where 選擇到應該的行數據
刪除
delete from 表名 where 選擇條件 delete 表名---刪除所有 刪除表裏所有數據存儲空間不會被釋放 truncate 表名---刪除所有 刪除表中所有數據,存儲空間會被釋放。
總結:
insert into 目標表 values(添加的值)
create table 新表名 as select *
update 表名 set 屬性值=‘新的名稱’ where
delete from 表名 where 選擇條件
多表查詢
多張表聯合起來一起查詢 分爲92標準 99標準
92標準:
- 笛卡爾集
- 檢索出的列數目是第一個表中的數據數量乘以第二個表中的數據的個數
- 應該保證所有的連接都有where子句,否則會返回大量無用數據
- select * from emp,dept;(逗號分開兩個表就可以)
- 等值連接
- 當連接的兩個表中擁有相同的屬性的時候
- 可以使用and增加操作條件
- 可以使用別名前綴提高查詢效率
- select * from emp t1,dept t2 where t1.deptno=t2.deptno;
- 非等值連接
- SELECT * FROM EMP T1,SALGRADE T2 WHERE T1.SAL BETWEEN T2.LOSAL AND T2.HISAL;
- SELECT * FROM EMP T1,SALGRADE T2 WHERE T1.SAL>=T2.LOSAL AND T1.SAL<=T2.HISAL;
- 外連接
- 使用外連接可以看到參與連接的某一方不滿足連接條件的記錄,而不僅僅是滿足連接條件的數據。外連接運算符爲(+),外連接分爲左外連接和右外連接兩種
- 左連接 以左邊的表爲基準表 +放到右的條件
- 右連接 以右邊的表爲基準表 +放到左的條件
- 自然連接、
- 就是自己連自己 一個表當兩個使用。
99標準
- 交叉連接、
- 就是笛卡爾集
- select * from emp cross join dept;
- 自然連接
- Natural join基於兩個表中的全部同名列建立連接
- 從兩個表中選出同名列的值均對應相等的所有行,如果兩個表中同名列的數據類型不同,則出錯
- 不允許在參照列上!!!!使用表名或者別名作爲前綴!!!!,自然連接的結果不保留重複的屬性。
- 99:select * from emp natural join dept;
- 92:SELECT * FROM EMP T1,DEPT T2 WHERE T1.DEPTNO=T2.DEPTNO;
- 使用using子句建立連接
- 如果不希望參照被連接表的!所有!同名列進行等值連接,自然連接將無法滿足要求,可以在連接時使用USING子句來設置用於等值連接的列(參照列)名。
- using子句引用的列在sql任何地方不能使用!!!!表名或者別名做前綴!!!!
- SELECT * FROM DEPT T1 JOIN EMP T2 USING(DEPTNO)
- 使用on子句建立連接
- 自然連接的條件是基於表中所有同名列的等值連接
- 爲了設置任意的連接條件或者指定連接的列,需要使用ON子句
- 連接條件與其它的查詢條件分開書寫
- 92:SELECT * FROM EMP T1,SALGRADE T2 WHERE T1.SAL BETWEEN T2.LOSAL AND T2.HISAL
- 99:SELECT * FROM EMP T1 JOIN SALGRADE T2 ON(T1.SAL BETWEEN T2.LOSAL AND T2.HISAL) WHERE 後面可以再加判斷條件
- 外連接
- 左外連接
- 兩個表在連接過程中除返回滿足連接條件的行以外,還返回左表中不滿足條件的行,這種連接稱爲左外聯接。
- SELECT * FROM DEPT T1 LEFT JOIN EMP T2 ON(T1.DEPTNO=T2.DEPTNO);
- 右外連接
- 兩個表在連接過程中除返回滿足連接條件的行以外,還返回右表中不滿足條件的行,這種連接稱爲右外聯接。
- SELECT * FROM DEPT T1 RIGHT JOIN EMP T2 ON(T1.DEPTNO=T2.DEPTNO);
- 全外連接
- 兩個表在連接過程中除返回滿足連接條件的行以外,還返回兩個表中不滿足條件的所有行,這種連接稱爲滿外聯接。
- SELECT * FROM DEPT T1 FULL JOIN EMP T2 ON(T1.DEPTNO=T2.DEPTNO);
- 左外連接