標籤:
SQL(Strutured Query Language):結構化查詢語言 (SQL)
SQL可分為:
<1>資料定義語言 (Data Definition Language)(DDL):Data Definition Language
用於建立、修改、刪除資料對象(資料庫,表之類):
(1)create:建立表或其他對象的結構
(2)alter:修改表或其他對象的結構
(3)drop:刪除表或其他對象的結構
(4)truncate:刪除表資料,保留表結構
<2>資料操作語言(DML):Data Manipulation Language
用於改變表中的資料(記錄),和事務相關,執行後經過事務控制語句提交後才能真正將改變應用到資料庫中:
(1)insert:將資料插入到資料庫中
(2)update:更新資料表中已存在的資料
(3)delete:刪除資料庫表中的資料
<3>事務控制語言(TCL):Transaction Control Language
用與維護資料一致性的語句:
(1)commit:提交,確實已進行的資料改變
(2)rollback:復原,取消已經進行的資料改變
(3)savepoint:儲存點,使當前的事務可以回退到指定的儲存點,便於取消部分操作
<4>資料查詢語言(DQL):Data Query Language
用於插敘查詢所需要的資料:
select語句
<5>資料控制語言(DCL):Data Contral Language
用於執行許可權的授予和收回操作
(1)grant:授予,用於給使用者或角色授予許可權
(2)remove:用於收回使用者或角色的已用的許可權
(3)create:建立使用者
(一)oracle資料類型
<1>number(p,s):表示數實值型別
-p表示數值的總位元
-s表示數值的精度(小數位位元)
-number(p,0)表示整數,也可寫成number(p)
<2>char(n):表示固定長度的字元類型(字串是用單引號括起來)
-n表示字元的位元組數長度(不是字元個數),固定不變,最長為2000位元組
<3>varchar(n):表示變長的字元類型(字串是用單引號括起來)
-n表示最多可存的字串位元組長度,可存的長度是實際字元長度,最長為4000位元組
<4>date:用於定義日期的資料
-長度是7位元組
-預設格式是:DD-MON-RR,例:11-APR-71
-sysdate表示系統預設時間
-在操作資料是時,可以使用資料庫內建to_date(‘1987-11-09‘,‘yyyy-mm-dd‘)來設定和修改date類型的值
(二)表的增刪改查(CRUD)----DDL
<1>建立表:
create table 表名(
欄位1 類型(長度) [約束條件],
欄位2 類型(長度) [約束條件],
...
欄位n 類型(長度) [約束條件]
);
注:最後一個欄位沒有逗號.
<2>刪除表:
drop table 表名;
<3>修改表:
(1)修改表名
rename 舊錶名 to 新表名;
(2)修改表結構:(可理解為欄位的增刪改)
(2.1)增加欄位:可以一次增加一個或多個(多個用逗號隔開,最後一個沒有逗號),只可以添加到現有欄位的末尾
alter table 表名 add (
欄位1 類型(長度) [約束條件],
欄位2 類型(長度) [約束條件],
...
欄位n 類型(長度) [約束條件]
);
(2.2)刪除已有字段:可以一次刪除一個或多個(多個用逗號隔開,最後一個沒有逗號)
alter table 表名 drop(欄位1,欄位2,...,欄位n);
(2.3)修改已有欄位:可以一次修改一個或多個(多個用逗號隔開,最後一個沒有逗號)
alter table 表名 modify(
欄位1 類型(長度) [約束條件],
欄位2 類型(長度) [約束條件],
...
欄位n 類型(長度) [約束條件]
);
(4)查看錶結構:
desc 表名;
(三)表中資料(記錄)增刪改查----(DML)
<1>增:插入一條記錄:(推薦使用第一種)
(1) insert into 表名(欄位1,欄位2,...,欄位n) values (值1,值2,...,值n);
注:欄位和值必須一一對應,有多少欄位就得有多少對應的值.
(2)insert into 表名 values(值1,值2,...,值n);
注:表中定義了多少欄位就得有多少值(不可缺),而且是按表中欄位的順序設定值.
<2>刪:刪除表中資料
delete from 表名 [where 條件運算式];
注:如果沒有條件運算式,則會刪除表中所有資料.
也可用DDL中的:truncate table 表名;來刪除全部記錄,不過不受事務控制,刪除就無法恢複(效率高)
<3>改:修改記錄中的一個或多個值
update 表名 set 欄位1=值1,欄位2=值2,...,欄位n=值n [where 條件運算式];
注:如果沒有條件運算式,將會修改所有記錄中的修改的欄位.
<3>查:查看錶中資料(所有記錄) (重中之重)
select語句;
oracle資料學習第一天