學習Oracle數據庫操作基本語法

Oracle SQL Developer

Oracle SQL Developer is a free graphical tool that enhances productivity and simplifies database development tasks.

Oracle SQL Developer is a free graphical tool that enhances productivity and simplifies database development tasks.

Oracle數據庫操作基本語法

Provides conceptual and usage information about Oracle SQL Developer, a graphical tool that enables you to browse, create, edit, and delete (drop) database objects; run SQL statements and scripts; edit and debug PL/SQL code; manipulate and export data; migrate third-party databases to Oracle; view metadata and data in MySQL and third-party databases; and view and create reports

Alt

創建表

//創建表
CREATE TABLE classes(
  classId NUMBER(2),
  cname VARCHAR2(40),
  birthday DATE
);

添加一個字段

//添加一個字段
ALTER table classes ADD (sex VARCHAR2(3));

修改字段長度

//修改字段長度
ALTER table classes MODIFY(cname VARCHAR2(20));

修改字段的類型/或是名字(不能有數據)

//修改字段的類型/或是名字(不能有數據)
alter table student modify(xm char(30));

刪除一個字段

//刪除一個字段
alter table student drop column sal;

重新命名錶的名字

//重新命名錶的名字
RENAME classes to cls;

刪除表

//刪除表
drop table cls;

插入數據

//插入數據
select * from cls;
INSERT INTO cls VALUES('01','土狗','06-6月-18','男');
INSERT INTO cls values('02','光頭強',to_date('08-8-18','yyyy-mm-dd'),'男');
INSERT INTO cls values('03','碧亮',to_date('07/7-18','yyyy/mm/dd'),'男');
INSERT INTO cls(CLASSID,CNAME,BIRTHDAY,SEX) VALUES ('04','郭曉峯',null,'娚');

修改日期輸入格式

//修改日期輸入格式
//臨時生效,重啓後不起作用
SQL>alter session set nls_date_format = ‘yyyy-mm-dd’;

第一個字符【名字第一個字符爲碧的員工的信息】

//第一個字符【名字第一個字符爲碧的員工的信息】
SELECT classid,cname FROM cls WHERE CNAME like '碧%';

其它字符【名字第三個字符爲強的員工的信息】

//其它字符【名字第三個字符爲強的員工的信息】
SELECT classid,cname FROM cls WHERE CNAME like '__強%';

增加一列名稱為薪水

//增加一列名稱為薪水
ALTER TABLE cls ADD(salaries NUMBER(10,2));

插入薪水的數據

//插入薪水的數據
select * from cls;
UPDATE CLS SET SALARIES = 18888 WHERE CLASSID = '10001';
UPDATE CLS SET SALARIES = 16666 WHERE CLASSID = '10002';
UPDATE CLS SET SALARIES = 8888 WHERE CLASSID = '10003';
UPDATE CLS SET SALARIES = 6666 WHERE CLASSID = '10004';

條件組合查詢(與、或)

//條件組合查詢(與、或)
SELECT * FROM cls where(SALARIES>10000 OR cname='郭曉峯') and CNAME like '土%';

Order by 排序從低到高[默認]

//Order by 排序從低到高[默認]
SELECT * FROM cls ORDER BY SALARIES asc;

修改字段類型、更新數據

//修改字段類型、更新數據
ALTER table cls MODIFY(classid NUMBER(20));
UPDATE cls SET CLASSID = 10004 where classid = 4;
SELECT * from cls;

年薪13薪按照從低到高排序

//年薪13薪按照從低到高排序
SELECT cname "姓名",salaries*13 "年薪" FROM cls ORDER BY "年薪" ASC;
//最高、最低薪水
SELECT MAX(salaries),Min(salaries) FROM cls;
SELECT cname,salaries FROM cls WHERE SALARIES = (SELECT MAX(salaries) FROM cls);
//展示大於平均的薪水
SELECT * FROM cls WHERE salaries > (SELECT AVG(salaries) FROM cls);

重命名錶名,增加hiredate字段,增加數據

//重命名錶名,增加hiredate字段,增加數據
RENAME cls to vipmembers;
ALTER TABLE vipmembers ADD(hiredate DATE);
SELECT * FROM VIPMEMBERS;
UPDATE VIPMEMBERS SET hiredate = '09-9月-1999' WHERE CLASSID = '10001';
UPDATE VIPMEMBERS SET hiredate = '08-8月-1998' WHERE CLASSID = '10002';
UPDATE VIPMEMBERS SET hiredate = '01-1月-2011' WHERE CLASSID = '10003';
UPDATE VIPMEMBERS SET hiredate = '05-5月-1997' WHERE CLASSID = '10004';

保存還原點、刪除數據

//保存還原點、刪除數據
RENAME cls to vipmembers;
SQL>savepoint aa;1SQL>delete from vipmembers; //刪除表的數據2SQL>drop table vipmembers;  //刪除表的結構和數據3SQL>delete from vipmembers where classid=10001; //刪除一條記錄4SQL>truncate table vipmembers;  //刪除表中的所有記錄,表結構還在,不寫日誌,無法扎找回的記錄,速度快

查看錶結構

//查看錶結構
SQL>desc vipmembers ;

查詢指定列

//查詢指定列
SQL>select classid,cname,salaries from vipmembers;

打開顯示操作時間的開關

//打開顯示操作時間的開關
SQL>set timing on;

統計表內有多少條記錄

//統計表內有多少條記錄
SQL>select count(*) from vipmembers;

將工資小於平均工資並且入職年限早於1999-12-1的人工資增加10%

//將工資小於平均工資並且入職年限早於1999-12-1的人工資增加10%
UPDATE VIPMEMBERS set SALARIES=SALARIES*1.1 WHERE SALARIES<(SELECT AVG(salaries) FROM VIPMEMBERS) AND HIREDATE<'01-12月-99';

子查詢(用查詢結果創建新表)

//子查詢(用查詢結果創建新表)
CREATE TABLE vipone(classid,name,sal) as select classid,cname,salaries from VIPMEMBERS;
SELECT * FROM VIPONE;
ALTER TABLE vipone ADD (job VARCHAR2(50));
UPDATE VIPONE SET JOB = '教授' WHERE CLASSID = '10001';
UPDATE VIPONE SET JOB = '專家' WHERE CLASSID = '10002';
UPDATE VIPONE SET JOB = '演員' WHERE CLASSID = '10003';
UPDATE VIPONE SET JOB = '網管' WHERE CLASSID = '10004';

union(求並集), union all , intersect(取交集), minus (差集)

//union(求並集), union  all  , intersect(取交集),   minus (差集)
SELECT classid,cname,salaries,job FROM VIPMEMBERS WHERE SALARIES>10000 INTERSECT SELECT classid,name,sal,job FROM VIPONE where JOB='專家';

內嵌視圖

//當在from子句中使用子查詢的時候,必須給子查詢指定別名
SQL>select a2.ename,a2.sal,a2.deptno,a1.mysal from emp a2,(select deptno,avg(sal) (as ) mysal from emp group by deptno) a1 where a2.deptno=a1.deptno and a2.sal>a1.mysal;

分頁

//orcle爲表分配的行號
SQL>select a1.*,rownum rn from (select * from emp) a1;
SQL>select * from (select a1.*,rownum rn from (select * from emp) a1 where rownum<=10) where rn>=6;
//查詢內容的變化
//所有的改動(指定查詢列)只需更改最裏面的子查詢(排序)只需更改最裏面的子查詢

補充:

 //事務  (第一次創建,第二次提交)當退出數據庫時,系統自動提交事務
SQL>commit;
SQL>savepoint a1;  //創建保存點 (保存點的個數沒有限制)
SQL>rollback to aa; //使用保存點回滾到aa
SQL>rollback; //回滾到事務創建開始

//只讀事務
SQL>set transaction read only

//Java中的事務
Ct.setAutoCommit(false); //設置事務自動提交爲否
Ct.commit();  //提交事務

//字符函數
lower(char) //將字符串轉換爲小寫的格式
upper(char) //將字符串裝換爲大寫的格式
length(char) //返回字符串的長度
substr(char,m,n) //取字符串的子串
 
SQL>select lower(ename) from emp;
SQL>select ename from emp where length(ename)=5

你可以自己動手練習Oracle數據庫操作基本語法在 Oracle SQL Developer 圖形工具[here][2018].

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章