一、DDL 1、創建表(CREATE) (1)資料庫對大小寫不敏感,只對字元串大小寫敏感。 (2)使用create關鍵字創建表。(-- 表示註釋)。 (3)將一個查詢結果集作為一張表。可用於將多張表連成一張表的操作。 2、刪除表(DROP)、DESC關鍵字、TRUNCATE關鍵字 (1)使用DESC ...
一、DDL
1、創建表(CREATE)
(1)資料庫對大小寫不敏感,只對字元串大小寫敏感。
(2)使用create關鍵字創建表。(-- 表示註釋)。
格式: CREATE TABLE 表名( 欄位名1 欄位值1, 欄位名2 欄位值2 ); --分號可以不加,多個欄位間用逗號隔開。 舉例: CREATE TABLE emp( name VARCHAR2(20), birth DATE );
(3)將一個查詢結果集作為一張表。可用於將多張表連成一張表的操作。
CREATE TABLE 表名 AS SELECT * FROM emp;
2、刪除表(DROP)、DESC關鍵字、TRUNCATE關鍵字
(1)使用DESC關鍵字查看表結構。
格式: DESC 表名; 舉例: DESC emp;
(2)使用DROP關鍵字刪除表。
格式: DROP TABLE 表名: 舉例: DROP TABLE emp;
(3)使用TRUNCATE關鍵字刪除表數據,但不刪除表結構。
格式: TRUNCATE TABLE 表名: 舉例: TRUNCATE TABLE emp;
3、DEFAULT關鍵字、NOT NULL關鍵字
(1)DEFAULT關鍵字用於給欄位添加預設值。如果未使用DEFAULT給欄位定義預設值,那麼無論是什麼欄位,其預設均為NULL。
(2)字元串要用單引號引上,區分大小寫。
create table emp1( name varchar2(20) default 'tom' );
(3)NOT NULL是一種約束條件,確保欄位有值,不能為NULL。
create table emp1( name varchar2(20) NOT NULL );
4、修改表名(RENAME)
(1)RENAME關鍵字用於修改表名,但修改後的新表名不能為當前資料庫中的已存在的表名。
格式: RENAME TABLE 原表名 TO 新表名; 舉例: RENAME TABLE emp to employee;
5、修改表結構(ALERT)
(1)ALTER關鍵字用於修改表結構。
(2)修改列時類型通常不變,長度儘量變大。修改後,僅對以後將插入的數據有效,不影響之前的數據,且長度由大改小時,可能不成功。
格式: ALTER TABLE 表名 ADD(列定義); --添加列 ALTER TABLE 表名 DROP(列名); --刪除列 ALTER TABLE 表名 MODIFY(現有列 列值); --修改列 舉例: ALTER TABLE emp ADD id VARCHAR2(20); ALTER TABLE emp DROP id; ALTER TABLE emp MODIFY name VARCHAR2(30);
二、DML
1、DML、TCL間的關係
(1)執行DML操作後,不會立即修改資料庫中的表,會保存在記憶體中。
(2)若想真正修改資料庫中的表數據,需要執行TCL事務操作,如COMMIT,才算真正的修改。
2、增加與插入數據(INSERT)
(1)使用INSERT關鍵字可以實現增加與插入數據。
(2)插入日期數據時,預設格式為RR-MON-DD,一般自定義格式,使用TO_DATE()函數轉換。
格式: INSERT INTO 表名[(列名1,列名2……)] VALUES(屬性1, 屬性2); 舉例: INSERT INTO employee(s_id, s_name) VALUES('10012', 'Jarry') INSERT INTO employee(s_id, s_name, birth) VALUES('10022', 'Tom', TO_DATE('2019-06-13', 'yyyy-mm-dd'));
3、更新表數據(UPDATE)
(1)使用UPDATE關鍵字可以實現數據的更新。
格式: UPDATE 表名 SET 列名1 = 值1[,列名2 = 值2] [WHERE 條件] 其中[]表示可忽略。但WHERE最好寫,否則是對整張表進行操作。 舉例: UPDATE liuyihong_staff SET d_id = 2, s_salary = 3000 WHERE s_id = 10022
4、刪除數據(DELETE)
(1)刪除數據,以行為單位。
格式: DELETE FEOM 表名 WHERE name = 'tom'; //若無WHERE,則刪除的是整張表 DELETE FROM 表名 等價於 TRUNCATE TABLE 表名 , 但DELETE是DML語句,可以進行回退(ROLLBACK)操作,且DELETE可以有條件的刪除。 刪除後不會立即釋放其空間,便於回退。 TRUNCATE是DDL語句,直接刪除表中數據,但不破壞表結構,刪除後直接釋放空間。 且TRUNCATE執行效率比DELETE高。