文章目錄
一、數據定義語句DDL
(一)、數據庫表的創建create table
1.語法結構
create table 表名
(
列名1 數據類型1 [,列名2 數據類型2 ......]
);
2.oracle常用數據類型
- 字符類型
char :固定長度字符串,列長度可以使1~2000個字節
varchar2 :可變長度字符串,最大長度是4000字節 - 數值類型
聲明語法:NUMBER[(P[,S]] P表示精度,S表示小數位數,最高精度是38位,可以存儲整數、浮點數等數值類型。 - 日期時間類型
主要類型:DATE - LOB類型
CLOB:可以存儲大量字符數據
BLOB:可以存儲較大的二進制對象,如圖像、視頻等
示例:
CREATE TABLE student(
sid NUMBER(8,0),
name VARCHAR2(20),
sex char(2),
birthday DATE,
address VARCHAR2(50)
);
#用作外鍵的主表
create table department(
depid VARCHAR2(20) primary key,
depname varchar2(2));
(二)、數據庫表的修改
1.表列修改 alter table
1)增加列 add
alter table 表名 add 新增列名 數據類型;
2)刪除列 drop column
alter table 表名 drop column 列名;
3)修改列數據類型 modify
alter table 表名 modify 列名 新數據類型;
4)修改列名 rename column…to…
alter table 表名 rename column 列名 to 新列名;
2.表名修改 rename
rename 表名 to 新表名;
(三)、數據庫表的刪除
1.刪除表數據保留表結構(截斷表)truncate
truncate table 表名;
2.刪除表數據和表結構
drop table 表名;
(四)、數據庫表的約束
1.約束的類型
- 主鍵約束 primary key
唯一確定表中每一條記錄的標識符,不能爲null,不能重複,只能有一個主鍵,但是可以由多個列構成 - 唯一性約束 unique
指定的一個或者多個列的組合值具有唯一性,防止重複的值。唯一性約束的列允許有空值,一個表中允許多個唯一性約束,可以把唯一性約束定義在多個列上。 - 默認約束 default
設置默認值 - 非空約束 not null
保證插入或更新數據時,該列不能爲null - 檢查約束 check
設置檢查條件,設置輸入值 - 外部鍵約束 foreign key
用於建立和加強兩個表數據之間的連接的一列或多列,外鍵約束是唯一涉及兩個表關係的約束
2.添加約束
1)新建表時添加
A.列級約束
語法:
CREATE TABLE student2(
列名1 數據類型1 約束類型1
[,列名2 數據類型2 約束類型2......]
);
示例:
CREATE TABLE student2(
sid NUMBER(8,0) primary key,
name VARCHAR2(20) [constraint 約束名] not null,
sex char(2) check(sex='男' or sex='女'),
birthday DATE,
address VARCHAR2(50) default '中國',
cardid VARCHAR2(18) unique,
depid VARCHAR2(20) references department(depid)
);
B.表級約束
語法:
CREATE TABLE student2(
列名1 數據類型1
[,列名2 數據類型2 ......]
constraint 約束名1 約束類型1 (列名1)
[,constraint 約束名2 約束類型2 (列名2)......]
);
示例:
CREATE TABLE student2(
sid NUMBER(8,0),
name VARCHAR2(20),
sex char(2),
birthday DATE,
address VARCHAR2(50),
cardid VARCHAR2(18),
depid VARCHAR2(20),
constraint pk primary key(sid),
constraint uq primary key(cardid),
constraint ch check(sex='男' or sex='女'),
constraint fk foreign key(depid) references department(depid) on delete cascade
);
2)修改表時添加
語法:
alter table 表名 add constraint 約束名 約束類型(列名);
#針對非空約束:
alter table 表名 modify (列名 數據類型 not null);
#針對默認約束
alter table 表名 modify 列名 default 默認值;
示例:
alter table student add constraint pk primary key(sid);
alter table student modify (name VARCHAR2(20) not null);
3.刪除約束
1)禁用和啓用約束
語法:
alter table 表名 disable constraint 約束名;
alter table 表名 enable constraint 約束名;
示例:
alter table student disable constraint pk;
alter table student enable constraint pk;
2)徹底刪除約束
語法:
alter table 表名 drop 約束名;
#針對主鍵是唯一的,可以直接指明刪除主鍵
alter table 表名 drop primary key;
#針對非空約束
alter table 表名 modify 列名 數據類型 null;
#針對默認約束
alter table 表名 modify 列名 default null;
示例:
alter table student drop constraint pk;
二、數據操作語言DML
(一)、添加數據insert
語法結構:
insert into 表名 [(列1,列2,...列n)] values (值1,值2,...值n);
#示例
insert into student values (12345678,張三,男,1989-10-20,default,454268477895524458,2222);
(二)、查詢數據select
語法結構:
select *|column[,...] from 表名;
(三)、修改數據update
update table set 列名1=值1 [列名2=值2,...] [where 條件];
(四)、刪除數據delete
delete from table [where 條件];
三、事務控制語言TCL
(一)、提交事務
commit;
當執行了commit語句後,會確認事務的變化,結束事務、刪除保存點,釋放鎖。
(二)、回滾事務
rollback;#回滾全部事務
rollabck to 保存點名;
rollback只能對未提交的數據進行撤銷,已經commit的數據是無法撤銷的
(三)、保存點
savepoint 保存點名;