SQL語言的分類和常見數據類型
SQL語言的分類
數據定義語言DDL
DDL主要是對數據庫對象進行創建、修改、刪除的操作(create, alter, drop),數據庫對象包括數據庫、表、視圖、索引;
-- 創建表
create table table_name(
列名 數據類型 [鍵約束],
......,
[約束]
);
-- 修改表
alter table table_name add|modify|drop column_name;
-- add|modify|drop 即向表中添加列、修改列、刪除列
-- 刪除表
drop table table_name;
數據操縱語言DML
DML主要是對數據庫表 進行插入、修改、刪除的操作(insert, update, delete);
-- 插入數據
insert into table_name(column_name1,column_name2....) values(data1,data2....);
-- 通過其他數據表添加數據(查找的數據列要與插入的數據列匹配)
insert into user(u_name) select p_name from person;
-- 修改數據
update table_name set column_name = 'data' [where condition];
-- 修改數據 merge (執行語境:向表1插入或更新數據,滿足條件插入,不滿足則更新)
merge [into] table1 using table2 on condition
when matched then insert_clause
when not matched then update_clause;
-- 刪除數據
delete from table_name [where condition];
-- 刪除數據 truncate
truncate table tabel_name;
數據查詢語言DQL
DQL主要是對數據庫表中數據查詢的操作(select);
數據控制語言DCL
DCL主要是對數據庫對象權限設置的操作授予權限、回收權限、提交、保存點、回滾、設置事務等(grant, revoke, commit, savepoint, rollback, set transaction);
常用數據類型
11g 支持23中數據類型,下面介紹常用的數據類型字符型,數字型,日期類型,其他類型;
字符型
字符型有 char, varchar,nchar,nvarchar,long
五種
數據類型 | 取值范圍(字節) | 說明 |
---|---|---|
char | 0 -2000 | 定長字符 |
nchar | 0-1000 | Unicode字符集定長字符 |
varchar | 0-4000 | 可變字符 |
nvarchar | 0-1000 | Unicode字符集可變字符 |
long | 0-2GB | 可變字符(很少使用) |
數字型
數字型有 number, float
數據類型 | 取值范圍 | 說明 |
---|---|---|
number(p,s) | p最大精度38位(十進制) | p代表精度,s代表保留小數點位數,用於存儲定長整數和小數 |
float | 最大精度126位(二進制) | 精度范圍是二進制的1-126,轉換為10進制需要乘以0.30103 |
日期類型
日期類型分為date, timestamp
數據類型 | 說明 |
---|---|
date | 用來存儲日期和時間( ? - 9999-12-31) |
timestamp | 存儲日期和時間,比date更精確 |
其他數據類型
數據類型 | 取值范圍 | 說明 |
---|---|---|
blob | 4GB | 存儲二進制 |
clob | 4GB | 存儲字符串 |
bfile | 大小與操作系統相關 | 把非結構化的二進制數據存儲在數據庫外的操作系統文件中 |