語法
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
);
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 '_白%';