SQL學習筆記1 2 DDL

2021-09-24 01:29:40 字數 3567 閱讀 2821

資料定義語言(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提供了兩種索引 聚集索引和非聚集索引。其中聚集索引表示表中儲存的資料按照索引的順序儲存,檢索效率比非聚集索引高,但對資料更新影響較大。非聚集索引表示資料儲存 在乙個地方,索引儲存在另乙個地方,索引帶有指標指向資料的儲存位置,非聚集索引檢索效率比聚集索引低,但對資料更新影響較小。聚...