自己學(xué)習(xí)Oracle的相關(guān)筆記,主要備忘,并不詳細(xì),如有錯(cuò)誤歡迎大家指正~~~
Oracle基礎(chǔ)語(yǔ)法
-
DDL使用
-
Create創(chuàng)建表
- 語(yǔ)法
CREATE TABLE table_name( column_name datatype [null|not null], column_name datatype [null|not null], ... [constraint] );- table_name: 表名,不可重復(fù)
- column_name: 列名,在同一表中不可重復(fù)
- datatype: 該列所存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)類型
- [null|not null]:是否為空
- [constraint]:約束條件
- 示例:
CREATE TABLE student( student_id number(10), student_name varchar2(20), student_address varchar2(100) ); DESC student; --顯示表結(jié)構(gòu) -
Alter修改表
- 語(yǔ)法
ALTER TABLE table_name ADD column_name | MODIFY column_name | DROP COLUMN column_name;- ADD: 向表中添加列
- MODIFY: 修改表中已經(jīng)存在的列的信息
- DROP COLUMN: 刪除表中的列,無(wú)法刪除屬于sys的表中的列
- 示例
ALTER TABLE student ADD remark varchar2(300);--添加備注列 ALTER TABLE student MODIFY remark varchar2(400);--修改remark DESC student;--顯示student表結(jié)構(gòu) -
Drop刪除表
DROP TABLE table_name; DROP TABLE student; --刪除student -
-
約束的使用
-
主鍵約束
- 添加主鍵約束
CREATE TABLE stdent( student_id number(10), student_name varchar(20), primary key(student_id) ); --建表時(shí)添加主鍵 ALTER TABLE table_name ADD CONSTRAINTS constraint_name PRIMARY KEY(column_name); --用ALTER添加主鍵,constraint_name是約束名,自己取- 移除主鍵約束
ALTER TABLE table_name DROP CONSTRAINT constraint_name; -
外鍵約束
- 使用外鍵約束建表
CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCE table_name (column_name) ON DELETE CASCADE;+ 外鍵約束是建立在兩張表之間的約束,需在創(chuàng)建表的后面加上上面語(yǔ)句 + constraint_name: 外鍵約束名字 + FOREIGN KEY (column_name): 指定外鍵約束的列 + REFERENCE:要引用的表名(列名) + ON DELETE CASCADE:設(shè)置級(jí)聯(lián)刪除,當(dāng)主鍵字段被刪除時(shí),外鍵對(duì)應(yīng)的字段也同時(shí)被刪除。 + 示例: ``` CREATE TABLE student_scores( student_id number(10), math_score number(2,2), english_score number(2,2), PRIMARY KEY (student_id), CONSTRAINT fk FOREIGN KEY(student_id) REFERENCES student(student_id) ON DELETE CSCADE ); ```- 在修改表時(shí)添加外鍵約束
- 在ALTER TABLE后添加
ADD CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCES table_name (column_name) ON DELETE CASCADE; - 移除外鍵約束
- 與移除主鍵相同
ALTER TABLE student_scores DROP CONSTRAINT fk;
-
CHECK約束
- 創(chuàng)建表時(shí)添加CHECK約束
CONSTRAINT constraint_name CHECK(condition) --condition可以為age>=18 and age<50- 修改表時(shí)添加CHECK約束
ADD CONSTRAINT constraint_name CHECK(condition) --condition->Gender='男' or Gender='女'- 移除CHECK約束
ALTER TABLE table_name DROP CONSTRAINT constraint_name; -
UNIQUE約束
- 創(chuàng)建表時(shí)添加UNIQUE約束
CONSTRAINT constration_name UNIQUE(column_name)- 修改表時(shí)添加UNIQUE約束
ADD CONSTRAINT constraint_name UNIQUE (column_name)- 移除UNIQUE約束
ALTER TABLE table_name DROP CONSTRAINT constraint_name; -
NOT NULL約束
- 創(chuàng)建NOT NULL約束
- 創(chuàng)建表時(shí)直接在列后加NOT NULL
- 修改表設(shè)置NOT NULL約束
ALTER TABLE table_name MODIFY column NOT NULL; - 非空約束不需要?jiǎng)h除,直接使用MODIFY語(yǔ)句把該列的非空約束寫成NULL。
- 創(chuàng)建NOT NULL約束
-
-
DML和DQL使用
-
INSERT添加數(shù)據(jù)
- 語(yǔ)法
INSERT INTO table_name(column_name1,column_name2,...) VALUES(data1,data2,...);- 直接添加數(shù)據(jù)
INSERT INTO student(student_id,student_name,student_address,remark) values(1,'Tim','asdf','12344');- 通過(guò)其他表添加數(shù)據(jù)
- 如果創(chuàng)建一個(gè)新的數(shù)據(jù)表,但這個(gè)表中的數(shù)據(jù)又與其他表中的數(shù)據(jù)相似,就可以直接把存在表的數(shù)據(jù)添加到新創(chuàng)建的表,減少工作量
- 語(yǔ)法
INSERT INTO table_name(column_name1,column_name2,...) select column_name1,column_name2,...From table_name2;
-
UPDATE修改數(shù)據(jù)
- 語(yǔ)法
UPDATE table_name SET column_name1=data1,column_name2=data2,...[WHERE condition] --WHERE:條件,如果省略where語(yǔ)句,表示修改該字段所有值,加上where選擇修改- 根據(jù)條件修改表中指定字段
UPDATE student SET student_name = 'TD' WHERE student_id=1; -
DELETE刪除數(shù)據(jù)
- 語(yǔ)法
DELETE FROM table_name [WHERE condition]; -
SELECT查詢數(shù)據(jù)
- 語(yǔ)法
SELECT column_name1,column_name2,... FROM table_name [WHERE condition];- 查詢表中全部數(shù)據(jù)
SELETE * FROM student;- 查詢表中某一字段數(shù)據(jù)
SELETE student_name FROM student;- 根據(jù)條件查詢數(shù)據(jù)
SELETE * FROM student WHERE student_id = 1;
-