資料定義語言(data definition language,ddl)用於定義資料庫的結構,比如建立、修改或刪除資料庫物件。
注意:rollback回滾對於ddl無效。
oracle中檢視使用者已建立的表為:
select * from user_tables
oracle中檢視使用者定義的各種資料庫物件:
select distinct object_type
from user_objects
oracle中檢視使用者定義的表、檢視、同義詞和序列:
select *
from user_catalog
2.1 建立表 create table
表名和列名命名規則:
(1)必須以字母開頭;
(2)必須在1-30個字元之間;
(3)必須只能包含a-z,a-z,0-9,_,$,和#;
(4)必須不能和使用者定義的其他物件重名;
(5)必須不能是oracle的保留字。
例:$abc,2abc,_abc,a-b,a#d中正確的有:a#d。
2.1.1 建立表的第一種方式
create table 表名字 ( 列名1 該列型別,
列名2 該列型別,
列名3 該列型別,
……)
例:
create table employees(
employee_id number(6)
first_name varchar2(20)y
last_name varchar2(25)
email varchar2(25)
phone_number varchar2(20)y
hire_date date
job_id varchar2(10)
salary number(8,2)y
commission_pct number(2,2)y
manager_id number(6)y
department_id number(4)y
)
列中salary number(8,2)表示該數字型一共8位,其中有2位是小數。
2.1.2 建立表的第二種方式(依託於現有的表)
依託於現有的表,不僅匯入原有表的結構,同時匯入原有表的資料。
create table 表名字
asselect 列名1,列名2,列名3,列名4
from 已有的表
例1:利用子查詢建立表myemp,該表中包含employees表的employee_id(id),last_name(name),salary(sal),email欄位。
create table myemp
asselect employee_id id,last_name name,salary sal,email
from employees
例2:若對於現有表的資料有所篩選,可以新增過濾條件。
create table emp2
asselect employee_id id,last_name name,hire_date,salary
from employees
where department_id = 50
例3:若只想要表結構,不想要表中資料,可以新增邏輯非的過濾條件。
create table emp2
asselect employee_id id,last_name name,hire_date,salary
from employees
where 1=2
2.2 修改表 alter table
使用alter table語句可以:
(1)追加新的列。
alter table 表名字
add (新列名 新列的型別)
例:
alter table employees
add (email varchar2(20))
(2)修改現有的列的型別,注意此時該列沒有資料,若有資料則修改不成功。
alter table 表名字
modify (列名 列的新型別)
(3)為新追加的列定義預設值,關鍵字:default。
alter table 表名字
modify (列名 列的型別 default 預設值)
(4)刪除乙個列。
alter table 表名字
drop column 列名
例:
alter table employees
drop column email
(5)重新命名表的乙個列名。
alter table 表名字
rename column 舊列名 to 新列名
例:
alter table employees
rename column last_name to name1
(6)將某列設定為不可用。
alter table 表名
set unused column 列名
(7)刪除不可用的列。
alter table 表名
drop unused columns
2.3 刪除表 drop table
資料和結構都被刪除,所有正在執行的相關事務被提交;所有相關索引被刪除。
drop table 表名
2.4 清空表 truncate table
刪除表中所有資料,釋放表的儲存空間。
truncate table 表名
2.5 改變物件的名稱
rename 物件舊名 to 物件新名
2.6 建立索引 create index
2.7 刪除索引 drop index
SQL學習筆記 《SQL高階教程》1 2
自連線 非等值連線 自連線 group by 遞迴集合 表是行的集合,面向集合 開銷較大 唯二重要的方法 case 自連線 sql語言 面向集合的特性 有序對 無序對 獲取可重排列 交叉連線 笛卡爾積 3 3 select p1.name as name 1,p2.name as name 2 fr...
1 2(SQL學習筆記)高階資料過濾
一 and 通過where可以進行條件過濾,但只限於單個條件。通過and就可以連線多個條件,and代表了和,即and兩邊的條件全部滿足才會通過篩選。這就類似程式語言中的 以下表為例 找出vend id 等於 dll01 且prod price 4資訊。二 or or代表了或者,篩選時只需滿足or任意...
學習筆記12
sql server提供了兩種索引 聚集索引和非聚集索引。其中聚集索引表示表中儲存的資料按照索引的順序儲存,檢索效率比非聚集索引高,但對資料更新影響較大。非聚集索引表示資料儲存 在乙個地方,索引儲存在另乙個地方,索引帶有指標指向資料的儲存位置,非聚集索引檢索效率比聚集索引低,但對資料更新影響較小。聚...