oracle資料庫語法總結

2020-10-03 14:00:17

基礎

建立表:

語法
create table [模式名.]基本表名 (
列名1 型別1,
列名2 型別2,

完整性約束…
)[tablespace"表空間名"];

例:

create table student(
 			id varchar2(20) primary key,
 		    name varchar2(50) not null,
 		    sex char(1) not null
 		    );

修改表:

1 修改表名
ALTER TABLE student RENAME to student1;
2 增加欄位
ALTER TABLE student1 ADD info varchar(100); 
3 修改欄位
-- 修改欄位的型別
ALTER TABLE student1 MODIFY info integer;
--與 Mysql 不同,oracle 中沒有該語法(同時修改屬性名稱):ALTER TABLE table_name CHANGE 舊屬性名 新屬性名 資料型別
-- 修改欄位的名稱和型別
ALTER TABLE student1 rename column info to stu_info; 
ALTER TABLE student1 MODIFY stu_info varchar(200);

刪除表:

DROP TABLE student1;

插入資料:

--語法
--INSERT INTO table_name(field1,field2,...)  VALUES(val1,val2,...);
-- 指定欄位插入
INSERT INTO student1(name,sex) VALUES('張三','男');
-- 不指定欄位插入,需要按順序寫(不推薦使用)
INSERT INTO student1 VALUES('001','張三','男');

刪除資料

--語法
-- DELETE FROM table_name WHERE CONDITION
--範例
delete from student1 where name='張三';

更新資料記錄

-- UPDATE table_name SET field1=val1,field2=val2,... WHERE condition 
update student1 set id = '002' where name = '張三';

單表資料查詢

簡單的資料查詢

-- SELECT field1,field2,... FROM table_name WHERE CONDITION 
select sex from student where name='李四';
--使用萬用字元*查詢所有資料
select * from student where name='李四';

條件資料記錄查詢

在條件內部定義:
1) 帶關係運算子和邏輯運運算元的表示式
Oracle 中的關係運算子:>、 >=、 <、 <=、 !=(<>) 、 =
Oracle 中的邏輯運運算元:&&(AND)、||(OR)、!(NOT) 在邏輯表示式中,我們一般使用英文表示,如 AND/OR/NOT。

SELECT stuname,salary,salary*12 FROM STUINFO WHERE salary=1000; 
SELECT stuname,salary,salary*12 FROM STUINFO WHERE salary!=1000;   
SELECT stuname,salary,salary*12 FROM STUINFO WHERE salary<>1000; 
SELECT stuname,salary FROM STUINFO WHERE NOT(salary>1000 AND salary<2000);

2) 帶 between…and 關鍵字的條件資料查詢

SELECT stuname,salary FROM STUINFO WHERE salary BETWEEN 1500 AND 2000; 
SELECT stuname,salary FROM STUINFO WHERE NOT(salary BETWEEN 1500 AND 2000);

3) 使用 is null 關鍵字的條件資料查詢
其中空字串和 null 是兩個不同的值,在使用的時候,需要注意,查詢空字串,使用」xxx=’’」,而判斷是否是 null 值,要使用 is null。

SELECT * FROM student WHERE code IS NULL; 
SELECT * FROM student WHERE code IS NOT NULL;

注意: 由於 ‘’ (空串)預設被轉換成了 NULL,不能使用 = ‘’ 作為查詢條件。也不能用 is ‘’。雖然不會有語法錯誤,但是不會有結果集返回。 只能用 is null 。
不等於就是 is not null 。

4) 使用 in 關鍵字的條件資料查詢
在已知的指定範圍內,進行資料的查詢。

SELECT * FROM student WHERE id in(2,4); 
SELECT * FROM student WHERE id NOT in(2,4);

5) 帶 like(模糊查詢)關鍵字的條件資料查詢
like 表示一種模糊查詢的搜尋模式。

-- 準備資料 
INSERT INTO student(id,name,code) VALUES(5,'孫悟空','001'); 
INSERT INTO student(id,name,code) VALUES(6,'小白龍','002'); 
INSERT INTO student(id,name,code) VALUES(7,'唐僧','003'); 
INSERT INTO student(id,name,code) VALUES(8,'沙僧','004');
-- 模糊查詢 -- 只要帶有「悟」,會匹配出來 
SELECT * FROM student WHERE name LIKE '%悟%';
-- 以「唐」開頭 
SELECT * FROM student WHERE name LIKE '唐%'; 
-- 以「僧」結尾 
SELECT * FROM student WHERE name LIKE '%僧'; 
-- 第一個字元不管,只要第二個字元是「白」,會匹配出來 
SELECT * FROM student WHERE name LIKE '_白%';