国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Oracle常見的sql命令

這篇具有很好參考價值的文章主要介紹了Oracle常見的sql命令。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.在命令提示符提示下進入SQL環(huán)境

1.sqlplus/nolog

進入SQL環(huán)境,然后再使用connect命令以sysdba角色連接sys用戶 connect sys as sysdba
斷開當前用戶的連接:disconnect
然后創(chuàng)建自己的用戶

2.sqlplus

回車后會逐步提示用戶名和密碼,這里的密碼不顯示

3.sqlplus 用戶名

回車后提示輸入密碼,如果輸入的密碼錯誤將重新輸入用戶名和密碼,這里的密碼也不顯示
例如登錄超級用戶:sqlplus / as sysdba

4.sqlplus 用戶名/密碼

輸入正確的用戶名和對應密碼直接進入到SQL環(huán)境下

2.創(chuàng)建用戶

create user 用戶名  identified  by  密碼	[ ACCOUNT LOCK | UNLOCK ] 

例如:create user zhangsan  identified by  zhangsan

3.用戶授權

grant  權限名稱/角色名稱  to  用戶名

例如:grant connect,resource,dba to zhangsan

dba:用戶具有數(shù)據(jù)庫所有的權限,.dmp 是由具有dba角色的用戶導出的,要有相同或更高權限的用戶才能導入該文件
connect:用戶具有連接數(shù)據(jù)庫的權限
resource:用戶可以創(chuàng)建實體

4.刪除權限

revoke 權限名稱或者角色名稱  from  用戶名

例如:revoke  connect,resource  from  zhangsan

5.修改用戶的鎖定/非鎖定狀態(tài)

alter user 所改用戶名 account  locl/unlock

6.修改用戶密碼

alter user 所要修改的用戶名 identified by  新密碼

7.導入腳本

可以用start或者@來執(zhí)行指定腳本,但是必須在自己的用戶下

start/@  指定腳本的目錄+指定腳本的名稱

例如:start/@ D:\database-beginner\scripts\oracle\first_zh_cn.sql

8.查看用戶、表結構和表

顯示當前用戶:show user
查看表結構:desc user_objects;
查看當前用戶下的所有表:select * from user_tab_comments;
查看所有用戶下的所有表:select * from all_tab_comments

9.設置行寬、列格式和頁大小

行寬

set linesize 所要設置的行寬大小

例如:set linesize  120;

列格式設置

column 列名 format 格式

例如:column object_name format a20;

例如:修改金錢的顯示格式為:0000.00

頁大小

set pagesize 所要設置的大小

例如: set pagesize 120;

10.備份與導入

備份:Oracle備份成.dmp文件

exp 賬號/密碼@IP地址:端口號/數(shù)據(jù)庫實例 file=導出數(shù)據(jù)文件存放位置 

例如:exp zhangsan/zhangsan@127.0.0.1:1521/TEST file=E:/test_db.dmp

導入

imp 賬號/密碼@IP地址:端口號/數(shù)據(jù)庫實例名 file=導入數(shù)據(jù)文件存放位置 

例如:imp zhangsan/zhangsan@127.0.0.1:1521/TEST file=E:/test_db.dmp

要是導入有問題,在Oracle的安裝目錄下\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora 中的SID_LIST添加以下片段并重啟服務

(SID_DESC =
(GLOBAL_DBNAME = 全局數(shù)據(jù)庫名)
(ORACLE_HOME = Oracle安裝目錄\product\11.2.0\dbhome_1)
(SID_NAME = SID名)
)

并給用戶授予dba的權限

11.設置Oracle數(shù)據(jù)庫的密碼永久有效

查看用戶的proifle是哪個,一般是default

SELECT username,PROFILE FROM dba_users;

查看指定概要文件(如default)的密碼有效期設置

SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

將密碼有效期由默認的180天修改成“無限制”

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

如果提示密碼已過期的用戶在設置完成以后還需要重新設置密碼

alter user smsc identified by <原來的密碼>

12.刪除用戶

drop user 用戶名  [cascade]

例如:drop user itlaobing  [cascade]

加上 [cascade]是級聯(lián)刪除

13.查詢語句

基本結構:select 被選擇的列  from 被選擇的列對應的表或視圖

基本語法:select  列名……  from  表名  [where 條件]  [grounp by 條件]  [having 條件]  [order by  條件]

查詢當前用戶所擁有的表:select tname from tab;/select table_name from user_tables;

查詢當前用戶擁有的數(shù)據(jù)庫對象:select object_name,object_type from user_objects;

查詢所有的列:select * from 表名或者視圖/select 列名……列名  from 表名

查詢 tab 中的所有列:select * from tab;

?在數(shù)據(jù)庫中默認都是select all…… from ……帶有重復

?若想去除重復可使用select distinct …… from……但只影響顯示結果,不影響表內數(shù)據(jù)

?可以使用lower或者upper將所要查詢的內容全轉為小寫或者大寫

14.修改當前會話的日期格式

alter session set nls_date_format =所要設置的日期格式 ;

alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss' ;

15.創(chuàng)建表

創(chuàng)建標準表

?create table  表名( 

?	列名  類型( 寬度 ) [ 約束 ] 

?	[ , 列名 類型(寬度) [ 約束 ] , ...... ]
);

通過查詢語句創(chuàng)建表

CREATE TABLE 表名 AS 查詢語句 ;

例如:CREATE TABLE t_emp AS SELECT empno , ename , job , sal , hiredate FROM emp ;

16.變動表結構

增加列

alter table 表名  add (列名 類型 (寬度) [約束],……)

例如:ALTER TABLE t_students ADD ( married CHAR(1) , birthdate DATE , hometown VARCHAR2(200) ) ;

改列名

alter table 表名 rename column 原列名 to  新列名

例如: ALTER TABLE t_students RENAME COLUMN hometown TO address

修改列
可修改列的類型或者寬度

alter table 表名 modify  (列名 類型 (寬度));

?例如:ALTER TABLE t_students MODIFY ( gender VARCHAR2(10) ) ;

刪除列

alter table 表名 drop (列名,……) [cascade constraints]

      cascade constraints:表示刪除列的相關約束

例如: ALTER TABLE t_students DROP ( gender , married ) ;

17.重命名表

alter table 原表名 rename to 新表名

例如:ALTER TABLE t_students RENAME TO t_customers ;

rename 原表名 to  新表名

例如:RENAME t_customers TO t_students ;

18.刪除表

刪除到回收站

drop table 表名 [cascade consreaints]  

cascade consreaints:表示刪除相關的約束

查看回收站

show recyclebin

使用 show recyclebin 時不要以分號結束,否則可能導致sql*plus退出

清空回收站

purge recyclebin

徹底刪除表

drop table 表名 [cascade consreaints]  purge

恢復

?flashback table 原表名 to  before  drop

19.截斷表

truncate table 表名

作用:將整張表中的所有數(shù)據(jù)刪除,僅保留表的結構,使用rollback也不能將已刪除的數(shù)據(jù)找回

例如:TRUNCATE TABLE t_emp ;

20.插入數(shù)據(jù)

insert into 表名[(列名,……)] values (值……)

例如:insert into t_students(id,name) values (1,‘值’); / insert into t_students values (1,‘值’);

插入空值

INSERT INTO t_users VALUES ( 3 , '皓慕' , NULL , NULL ); 

注:在數(shù)據(jù)庫中存儲的數(shù)據(jù)是空值

插入引號

INSERT INTO t_users VALUES ( 4 , '皓慕**''**hh' , '男' , ' 12"33" ' ); 

插入查詢出來的內容

insert into 表名[(列名,……)]  查詢語句

注意不要在查詢語句前使用values

INSERT into x_users  SELECT * from t_users ; 

批量插入

insert all

?	into 表名 (列名,……) values (值……)

?	into 表名 (列名,……) values (值……)

select * from dual

例如:
insert all
  into t_topics values(1,'哪個不是Java關鍵字',1,null,null)
  into t_topics values(2,'哪個不是位運算符',1,null,null)
  into t_topics values(null,'哪個不是位運算符',1,null,null)
select  1  from dual

21.更新數(shù)據(jù)

UPDATE  表名  SET  列名 = 新值 [ , 列名 = 新值 , ... ]  [ WHERE 條件 ] ;

例如:update t_users set name = “你xx” where id = 3 ;

22.刪除數(shù)據(jù)

DELETE  FROM  表名  [ WHERE 條件 ] ;

例如:delete from t_users where id = 3 ;
delete from t_users ;

可使用rollback回滾被刪除的數(shù)據(jù),

23.創(chuàng)建約束

23.1非空約束(not null)

建表時:
CREATE TABLE 表名 (
  ...
  列名  類型(寬度)  [ CONSTRAINT 約束名稱 ]  NOT  NULL ,
  ...
);

建表后:ALTER TABLE 表名  MODIFY ( 列名 [ CONSTRAINT 約束名 ] NOT NULL ) ;
例如:alter table t_topics modify(id constraint t_topics_id_nn not null);

23.2惟一約束

建表時:
CREATE TABLE 表名 (
  ...
  列名  類型(寬度)  [ CONSTRAINT 約束名稱 ]  UNIQUE ,
  ...
);

建表后:ALTER TABLE 表名  MODIFY ( 列名 [ CONSTRAINT 約束名 ] UNIQUE ) ;
或者:ALTER TABLE 表名 ADD CONSTRAINT 約束名 UNIQUE( 列名 );
例如: alter table t_topics add constraint t_topics unique(title);

23.3缺省約束(default)

建表時:
CREATE TABLE 表名 (
     ...
     列名  類型(寬度)  DEFAULT 默認值 ,
     ...
);
建表后:ALTER TABLE 表名  MODIFY ( 列名  DEFAULT 默認值 ) ;

綜上結合例如:

create table t_monkey(
  id number(8) constraint t_monkey_id_nn not null,
  name varchar2(30) constraint t_monkey_name_uk unique,
  birthdate date default current_date
);

23.4主鍵約束

建表時:
CREATE TABLE 表名 (
     ...
     列名  類型(寬度)  [ CONSTRAINT 約束名稱 ]  PRIMARY KEY ,
     ...
);
或者:
CREATE TABLE 表名 (
     ...
     列名  類型(寬度) ,
     ...
     [ CONSTRAINT 約束名稱 ]  PRIMARY KEY( 列名 [ , 列名 , ... ] ) ,
     ...
);

建表后:ALTER TABLE 表名  MODIFY ( 列名 [ CONSTRAINT 約束名 ] PRIMARY KEY ) ;
或者:ALTER TABLE 表名 ADD [ CONSTRAINT 約束名 ]  PRIMARY KEY( 列名 [ , 列名 , ... ] );

例如: 
create table t_options(
  id number(10),
  content varchar2(100),
  code varchar2(500),
  is_key char(1),
  constraints t_options_id_pk primary key(id)
);

聯(lián)合主鍵:
create table t_score(
  student_id number(5),
  course_id number(5),
  exam_time date,
  score number(4,1),
  constraint t_score_sid_cid_time_pk primary key(student_id,course_id,exam_time)
);

23.5檢查約束(check)

注:Oracle數(shù)據(jù)庫支持檢查約束,MySQL數(shù)據(jù)庫不支持檢查約束

CREATE  TABLE  表名 (
     ...
     [ CONSTRAINT 約束名稱 ]  CHECK(  表達式  ) ,
     ...
);

例如:
create table t_users(
  id number(10),
  username varchar2(20) constraint t_users_username_nn not null constraint t_users_username_uk unique,
  password varchar2(40) constraint t_users_password_nn not null,
  constraint t_users_id_pk primary key(id),
  constraint t_users_id_username_ck check(id>1000 and length(username)>5)
)

23.6外鍵約束(foreign key)

首先要先有被參照表,其次再創(chuàng)建參照表

建表時:
CREATE TABLE 參照表表名 (
     ...
     [ CONSTRAINT 約束名稱 ]  FOREIGN KEY( 列名 ) REFERENCES 被參照表表名( 被參照表主鍵列名 ) ,
     ...
);

建表后:ALTER TABLE 參照表表名 
ADD [ CONSTRAINT 約束名 ]  FOREIGN KEY( 列名 ) REFERENCES 被參照表表名( 被參照表主鍵列名 ) ;

例如:
create table t_students(
   id number(10)
   name varchar2(20)
   major_id number(5)
   constraint t_students_id_pk primary key(id)
   foreign key(major_id) references t_major(id)
);

24.管理約束

24.1查看約束

通過user_constraints可以確定約束名稱和類型;
通過user_cons_columns可以確定哪張表哪個列對應哪個約束

例如:select table_name,constraint_name,constraint_type from user_constraints;
able_name 表示表名、constraint_name 表示約束名、constraint_type 表示約束類型

通過user_cons_columns數(shù)據(jù)字典查看那些表的那些列上有約束
例如:desc user_cons_columns;

24.2修改約束

在約束名稱中應該盡量使用指定的前綴或后綴來明確約束類型

  pk : primary key ,表示主鍵約束
  uk : unique key ,表示惟一約束
  fk : foreign key ,表示外鍵約束
  nn : not null , 表示非空約束
  ck : check ,表示檢查約束

格式:ALTER TABLE 表名 RENAME CONSTRAINT 原約束名 TO 新約束名 ;

例如:alter table t_topics rename constraint t_topics to t_topics_title_uk;

24.3刪除約束

通用的格式(除了default不適用):ALTER TABLE 表名 DROP CONSTRAINT 約束名 ;

例如: alter table t_topics drop constraint t_topics_id_nn;

不適用格式名

缺省約束:使用指定默認值:ALTER TABLE 表名 MODIFY ( 列名 DEFAULT 默認值 ) ;
讓默認值為null:ALTER TABLE 表名 MODIFY ( 列名 DEFAULT NULL ) ;

非空約束:ALTER TABLE 表名 MODIFY ( 列名 NULL ) ;

惟一約束:ALTER TABLE 表名 DROP UNIQUE ( 列名 ) ;

主鍵約束:ALTER TABLE 表名 DROP PRIMARY KEY [ CASCADE ] ;

24.4禁用約束/啟用約束

禁用約束
	ALTER TABLE 表名 DISABLE CONSTRAINT 約束名 ;
啟用約束
	ALTER TABLE 表名 ENABLE CONSTRAINT 約束名 ;

25.索引

25.1查看索引

與索引有關的數(shù)字字典:user_indexes、user_ind_columns、user_objects

例如: select table_name,index_name,index_type from user_indexes;

select object_name,object_type from user_objects;

select table_name,column_name,index_name from user_ind_columns;

25.2創(chuàng)建索引

格式:CREATE  INDEX  索引名稱  ON  表名 ( 列名 [ ASC | DESC ]  [ , 列名 [ ASC | DESC ] , ... ] ) ;
例如:create index ind_temps_id on t_emps(id asc);

25.3更改索引

  ALTER  INDEX  原索引名  RENAME TO  新索引名 ;

25.4刪除索引

  DROP  INDEX  索引名稱   ;

26.執(zhí)行計劃

概念:是關于 查詢語句 在 Oracle DBMS 中的 執(zhí)行過程 或 訪問路徑 的描述

作用:分析某個SQL的性能、查看某個SQL執(zhí)行是否存在問題

格式:SET  AUTOTRACE { OFF | ON | TRACEONLY } [ EXPLAIN ]  [ STATISTICS ]
EXPLAIN 表示 執(zhí)行計劃;STATISTICS 表示 統(tǒng)計信息

SET  AUTOTRACE  OFF 表示僅顯示 查詢結果 ,不顯示 執(zhí)行計劃 和 統(tǒng)計信息
SET  AUTOTRACE  ON 表示既顯示 查詢結果 ,又顯示 執(zhí)行計劃 ,也顯示 統(tǒng)計信息
SET  AUTOTRACE  TRACEONLY 表示不顯示 查詢結果 ,僅顯示 執(zhí)行計劃 和 統(tǒng)計信息
SET  AUTOTRACE  ON EXPLAIN 表示顯示 查詢結果 和 執(zhí)行計劃 ,不顯示 統(tǒng)計信息
SET  AUTOTRACE  ON STATISTICS 表示顯示 查詢結果 和 統(tǒng)計信息 ,不顯示 執(zhí)行計劃

Oracle查詢數(shù)據(jù)的方式

> 全表掃描 ( TABLE ACCESS FULL )  
> 通過ROWID訪問 ( TABLE ACCESS ROWID )  
> 索引掃描(INDEX SCAN / INDEX LOOKUP ) 
> > >索引惟一掃描( INDEX UNIQUE SCAN) 
> > >索引范圍掃描 ( INDEX RANGE SCAN ) 
> > >索引全掃描 ( INDEX FULL SCAN ) 
> > >索引快速掃描 ( INDEX FAST FULL SCAN )

27.高級查詢之多表查詢

27.1無連接條件(笛卡爾乘積)

? 格式:selcet * from 表名1,表名2……

? 例如:select * from t_topics,t_options;

27.2內連接

概念:當查詢結果中的所有數(shù)據(jù)都 滿足連接條件 時,就稱該查詢?yōu)?內連接 ( INNERJOIN )

語法:SELECT 列名 , ... 
	FROM 表名 
	[INNER] JOIN 表名 
	ON 連接條件 
	[WHERE 篩選條件] 
	[GROUP BY 分組條件 [ HAVING 篩選條件] ] 
	[ORDER BY 排序條件];

27.2.1等值連接

使用的是等號運算符比較

SELECT e.empno , e.ename , e.deptno , d.deptno , d.dname , d.loc 
FROM emp e INNER JOIN dept d
ON e.deptno = d.deptno ;

27.2.2非等值連接

使用 、<、between……and……運算符比較,就說該內連接查詢是非等值連接,比較某個值是否屬于某個區(qū)間

SELECT e.empno , e.ename , e.sal , g.grade , g.losal , g.hisal
FROM emp e INNER JOIN sal grade g
ON e.sal BETWEEN g.losal AND g.hisal ;

27.3外連接

概念:當查詢結果中除了 滿足連接條件 數(shù)據(jù)外,也包含不滿足連接條件的數(shù)據(jù)時,就稱該查詢?yōu)?外連接 ( OUTERJOIN )

格式:SELECT 列名 , ... 
	 FROM 表名 
	 { LEFT | RIGHT | FULL } [OUTER] JOIN 表名 
	 ON 連接條件 
	 [WHERE 篩選條件] 
	 [GROUP BY 分組條件 [ HAVING 篩選條件] ] 
	 [ORDER BY 排序條件];

27.3.1左外連接

概念:查詢結果中既包含滿足連接條件的數(shù)據(jù),也包含了 【JOIN之前】的表中不滿足條件的數(shù)據(jù)

格式:SELECT ... FROM表名LEFT [ OUTER ] JOIN 表名 ON 連接條件 ;

例如:select e.empno,e.ename,d.deptno,d.dname
		 from emp e
		 left outer join dept d
 		 on d.deptno=e.deptno;

27.3.2右外連接:

概念:查詢結果中既包含滿足連接條件的數(shù)據(jù),也包含了 【JOIN之后】的表中不滿足條件的數(shù)據(jù)

格式:SELECT ... FROM表名RIGHT [ OUTER ] JOIN 表名 ON 連接條件 ;

例如:select e.empno,e.ename,d.deptno,d.dname
 	  from dept d
 	  right outer join emp e
	  on e.deptno=d.deptno;

27.3.3全外連接

MySQL不支持FULL OUTER JOIN

概念:查詢結果中既包含滿足連接條件的數(shù)據(jù),也包含了 【JOIN之前】的表中不滿足條件的數(shù)據(jù),也包含了 【JOIN之后】的表中不滿足條件的數(shù)據(jù)

格式:SELECT ... FROM表名FULL [ OUTER ] JOIN 表名 ON 連接條件 ;

例如:select e.empno,e.ename,d.deptno,d.dname
 		 from emp e
		 full outer join dept d
 	 	 on e.deptno=d.deptno

27.3.4自連接

概念:就是將一張表當多張表來使用( 通過為表取不同別名來區(qū)分 ),自連接可以是內連接也可以是外連接

內連接自連接:
	select this.empno,this.ename,manager.empno,manager.ename
	from emp this
	join emp manager
	on this.mgr=manager.empno;

外連接自連接:
	select e.empno,e.ename,m.empno,m.ename
	from emp e
	left join emp m
	on e.mgr=m.empno

28.高級查詢之子查詢

概念:被嵌套在SELECT/UPDATE/DELETE/INSERT語句中的SELECT語句就是子查詢

1.所有的子查詢都是被 小括號 括起來的 ?

2.子查詢中通常不使用 ORDER BY 子句 ?

3.子查詢可以嵌套多層使用,但最多不超過 255 層

分類
? 單行子查詢:返回 單行、單列 ( 最多返回一行數(shù)據(jù) )
? 多行子查詢:返回 多行、單列
? 多列子查詢:返回 單行、多列

? 關聯(lián)子查詢:子查詢引用了外部語句中的某些表或某些列,子查詢與外部語句是相互關聯(lián)的

? 注意:外部語句不可以引用子查詢中的表或列,關聯(lián)子查詢 也被稱作 相關子查詢

? 嵌套子查詢:即在子查詢中繼續(xù)嵌套子查詢,但最多不超過 255 層

select * from emp
where deptno = (select deptno from emp where lower(ename)='smith')
and job=(select job from emp where lower(ename)='smith');

或者:select * from emp
where(deptno,job)=(select deptno,job from emp where >ename='SMITH');

select id,first_name,last_name,salary,dept_id
from s_emp e
where salary=(select max(salary) from s_emp x
where x.dept_id=e.dept_id)
order by dept_id asc,salary desc;

關聯(lián)子查詢:

查詢哪些在NEW YORK工作的員工

select * from emp e where exists(select *  from dept x 
where x.deptno=e.deptno 
and x.loc='NEW YORK' )

29.視圖

概念:視圖(View)是由 SELECT 查詢語句定義的一個"邏輯表",視圖( View ) 只有定義而無數(shù)據(jù),是一個"虛表";是一個或多個表(或視圖)經過 SELECT 查詢后選擇的邏輯表示,創(chuàng)建視圖時所使用的表(或視圖)被稱作 基礎表 ( Base Table )

目的:提供各種數(shù)據(jù)表現(xiàn)形式;提高某些安全性保證;隱藏數(shù)據(jù)的邏輯復雜性并簡化查詢語句;執(zhí)行某些必須使用視圖的查詢,簡化用戶權限的管理

創(chuàng)建視圖(在當前用戶中創(chuàng)建視圖需要具有 CREATE VIEW 權限)

格式:CREATE [ OR REPLACE ] VIEW  視圖名稱 
	[ ( 列名 , ... ) ]
	AS  查詢語句 ;
例如:create view v_emp_2 as select empno,ename,deptno from emp;

查看視圖

?		通過 user_objects 數(shù)據(jù)字典查看

?		通過 user_views 數(shù)據(jù)字典查看

刪除視圖(在當前用戶中刪除視圖需要具有 DROP VIEW 權限)

DROP VIEW  視圖名稱 ;

?		例如 desc v_emp_2;

30.時間格式

30.1日期模式:

YYYY:用 四位 數(shù)字表示年份;YY:用 兩位 數(shù)字表示年份,不涉及世紀轉換問題;RR:用 兩位 數(shù)字表示年份,涉及世紀轉換問題

MM:用 兩位 數(shù)字表示月份,取值范圍是 1 ~ 12;MON;用 三個 字符表示月份;MONTH:用 英文單詞 或 數(shù)字加中文 表示月份

DAY:表示一周中的第幾天;DY:表示一周中的第幾天;
D:用 一位 數(shù)字表示一周中的第幾天;DD:用 兩位 數(shù)字表示月份中的天數(shù);DDD:用 三位 數(shù)字表示年份中的天數(shù)

HH 或 HH12:表示以12小時計時所表示小時,取值范圍是 1 ~ 12;HH24:表示以24小時計時所表示小時,取值范圍是 0 ~ 23

MI:用 兩位 數(shù)字表示分鐘

SS:用 兩位 數(shù)字表示秒數(shù)

BC 或 B.C.:表示公元前 ( Before Christ )

AD 或 A.D.:表示公元后 ( Anno Domini )

30.2設置格式:

默認格式:dd-mon-yy
英文環(huán)境下,mon 表示用 月份名稱的 縮寫 ( 3個字符 );中文環(huán)境下,mon 表示 ‘X月’ ,比如 ’9月‘ 、‘12 月’

設置當前會話的日期格式:ALTER SESSION SET nls_date_format = ‘日期模式’ ;

alter session set nls_date_format='yyyy_mm_dd';

alter session set nls_date_format ='ad yyyy-mm-dd day ddd';

為某個日期時間值設置格式:to_char( 日期時間值 , ‘日期模式’ )

select to_char(sysdate,'yyyy-mm-dd day ddd' ) from dual;

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

31.日期函數(shù)

31.1日期計算

last_day ( d ):用于返回 指定日期 所在月份的最后一天
例如:select last_day(sysdate) from dual;

next_day ( d , c ):用于獲取 d 之后第一個 c 對應的日期
第一個參數(shù) d 表示一個 DATE 值,第二個參數(shù) c 是用 字符 表示的 星期中的某一天 ,比如 ‘星期一’ 、‘MON’
例如: select next_day(sysdate,‘星期六’) from dual;在這里插入代碼片

add_months( d , m )
例如: select add_months(sysdate,5) from dual;

months_between( d1 , d2 ):用于返回 兩個日期 之間間隔的月數(shù)

31.2四舍五入

?使用 round( d [ , fmt ] ) 函數(shù)可以 DATE 值進行四舍五入

若 fmt 為 year ,則表示四舍五入到年,以 7月1日 為分界線 ?
若 fmt 為 month ,則表示四舍五入到月,以 16日為分界線 ?
若 fmt 為 dd ,則表示四舍五入到日,以 中午12點 為分界線 ?
若 fmt 為 day,則表示四舍五入到周,以 周三中午12點 為分界線

? 例如:select round(to_date(‘2020-06-30 23:59:59’,‘yyyy-mm-dd hh24:mi:ss’),‘year’) from dual;

31.3截斷日期

使用 trunc( d [ , fmt ] ) 可以將 DATE 值裁剪

若 fmt 為 year ,則表示截取到本年年初( 即 1月1日 ),超出部分全部舍棄 ?
若 fmt 為 month ,則截取到本月初( 即 1日 ),超出部分全部舍棄 ?
若 fmt 為 dd ,則截取到當日起點,超出部分全部舍棄 ?
若 fmt 為 day ,則截取到本周起點,超出部分全部舍棄

例如: select trunc(to_date(‘2020-12-31 23:59:59’,‘yyyy-mm-dd hh24:mi:ss’),‘year’) from dual;

31.4獲取日期

  sysdate:獲取數(shù)據(jù)庫系統(tǒng)的當前日期時間
  current_date:獲取當前會話時區(qū)所對應的日期時間值
  systimestamp:獲得數(shù)據(jù)庫系統(tǒng)中一個 timestamp with time zone 類型的日期時間值
例如:select sysdate,current_date,systimestamp from dual;
結果依次為:18-9-20     18-9-20     18-9-20 05.11.42.253000 下午 +08:00   

31.5查詢時區(qū)

dbtimezone:數(shù)據(jù)庫時區(qū)
sessiontimezone:會話時區(qū)

例如:select dbtimezone,sessiontimezone from dual;
DBTIME SESSIONTIMEZONE                                                                                                  
------ ---------------------------------------------------------------------------                                      
+00:00 +08:00          

32.添加注釋

為表中的列添加注釋:comment on column 表名.字段名 is '注釋信息';

為表添加注釋:comment on table is '注釋信息';

33.Spool命令

將在命令行中一段時間內oracle所有的操作結果寫入到指定的文件中

例如:
開始寫入:spool test.log
結束寫入:spool off

34.whenever命令

當一個腳本中存在大量的sql/plsql語句時,執(zhí)行該腳本時,如果其中有一條sql語句執(zhí)行失敗,用sqlplus可能很難發(fā)現(xiàn);如果能讓碰到錯誤時,讓sqlplus退出,再結合spool命令查看日志,就很容易知道腳本的執(zhí)行情況,這可以通過whenever命令來實現(xiàn)

whenever sqlerror exit rollback

一旦腳本中該語句之后的某sql語句執(zhí)行出錯,就會停止出錯,sqlplus就會自動退出;加了rollback選項,則出錯后sqlplus在退出前會自動執(zhí)行rollback一下,把所有還沒提交的變化回滾處理;如果加了none選項或什么都不加,則退出不會做任何事

35.set feedback命令

set feedback on:打開反饋,默認的當一條sql發(fā)出的時候,oracle會給一個反饋;
例如當表創(chuàng)建成時會輸出命令行會返回:Table created

set feedback off:關閉反饋,用于關閉輸出提示信息,當有大量執(zhí)行語句時候,如果將每一條信息都反饋出來,則顯得太亂,往往會關閉"輸出提示信息功能"

set feedback n:設置反饋限制;當一條 sql 語句返回 n 或者大于 n 行記錄的時候,就會有feedback,比如:set feedback 10,當返回記錄等于或多于 10 行的時候,會有類似 ‘10 rows selected’ 的反饋,如果返回行少于 10 則沒有此反饋

36.set define 命令

作用就是關閉和開啟替代變量
在SQLPlus中默認的"&"表示替代變量,只要在命令中出現(xiàn)該符號,SQLPlus就會要你輸入替代值;
因此如果我們輸入的命令中如果包含該字符,就要進行設置

set define on:開啟
set define off:關閉

37.prompt命令

相當于一般的操作系統(tǒng)命令echo,輸出后面的信息

例如sql>prompt helloworld   
>helloworld

常見的sql命令就總結到這里了,謝謝閱讀,有問題請指出!文章來源地址http://www.zghlxwxcb.cn/news/detail-482715.html

到了這里,關于Oracle常見的sql命令的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 命令提示符(CMD)切換到指定目錄的方法

    命令提示符(CMD)切換到指定目錄的方法

    通常我們把像是java,mysql,python等語言類工具放到自定義目錄,而不是默認路徑,使用cmd命令提示符想查看版本信息的時候需要到指定目錄,這時候就需要掌握切換到指定目錄的方法。 命令提示符(cmd)只在當前盤符切換目錄時,可以先到目標目錄上復制地址, 輸入 即可切

    2024年02月11日
    瀏覽(20)
  • 深入了解命令提示符(CMD):Windows中的強大命令行工具

    引言: 命令提示符(CMD)是 Windows 操作系統(tǒng)中內置的命令行工具,它提供了一種直接與計算機系統(tǒng)進行交互的方式。雖然現(xiàn)代操作系統(tǒng)提供了許多圖形化界面和工具,但命令提示符在某些場景下仍然具有重要的作用。在本篇博客中,我們將深入了解命令提示符,介紹其功能和

    2024年02月08日
    瀏覽(36)
  • 如何以管理員身份打開命令行提示符(cmd)

    如何以管理員身份打開命令行提示符(cmd)

    通常,我們會用win+R,打開運行框,然后輸入cmd,此時就可以進入cmd 其實這個時候我們可以清楚的看到“C:Windowssystem32cmd.exe”,我們這種操作進入的.exe這個應用程序 那么我們如何以管理員的方式進入了,下面提供兩種方法 在上面的界面中輸入命令 net user administration /active:y

    2024年02月11日
    瀏覽(32)
  • 如何使用命令提示符重新啟動Windows 資源管理器?

    如何使用命令提示符重新啟動Windows 資源管理器?

    電腦資源管理器出現(xiàn)問題,導致電腦黑屏,如何使用命令提示符重新啟動Windows 資源管理器呢?出現(xiàn)這個問題的時候,不要慌,按照下面的操作步驟,大概率是可以復原的,當然你覺得這樣比較麻煩,也可以直接重啟電腦解決這個問題,以下步驟方法是針對不重啟電腦的解決

    2024年02月11日
    瀏覽(92)
  • 命令提示符cmd窗口重新啟動Windows 資源管理

    命令提示符cmd窗口重新啟動Windows 資源管理

    最近工作過程中碰到了電腦在使用VS2022編譯VTK時,文件資源管理器崩潰的問題。 在使用任務管理器強制結束文件資源管理器的任務后,看不見文件資源管理器了,也無法找到文件資源管理器程序explorer.exe程序進行重啟。因此想著通過cmd命令行輸入命令的方式重啟文件資源管理

    2024年02月11日
    瀏覽(90)
  • 在命令提示符中下載pyecharts時出現(xiàn)“pip不是內部或外部命令”

    在使用Python進行數(shù)據(jù)可視化時,pyecharts是一個功能強大且易于使用的庫。然而,如果在命令提示符(cmd)中嘗試下載pyecharts時遇到了“pip不是內部或外部命令”的錯誤提示,這意味著pip沒有正確地配置在系統(tǒng)的環(huán)境變量中。本文將介紹如何解決這個問題,并提供一些額外的相

    2024年02月16日
    瀏覽(24)
  • 解決命令提示符已被系統(tǒng)管理員停用的問題

    解決命令提示符已被系統(tǒng)管理員停用的問題

    昨天,現(xiàn)場調試一個項目,以太網怎么也連不上,想用常用的PING來測試一下,結果CMD不正常, 幸虧我的電腦還裝了虛擬機,在虛擬機里面解決了現(xiàn)場問題。今天,上網上搜了一下,記錄下來,以備后續(xù)急用 方法一:修改注冊表 1.在開始搜索框輸入“regedit”命令來打開注冊表

    2024年02月08日
    瀏覽(57)
  • Windows 可以使用以下快捷鍵打開終端(命令提示符)

    Windows 可以使用以下快捷鍵打開終端(命令提示符)

    Windows 可以使用以下快捷鍵打開終端(命令提示符) 使用快捷鍵 Win + R 打開 “運行” 對話框,然后輸入 “cmd” 并按下 Enter 鍵。這將打開默認的命令提示符窗口。 使用快捷鍵 Ctrl + Shift + Esc 打開任務管理器,然后在 “文件” 菜單中選擇 “運行新任務”。在彈出的對話框中

    2024年02月07日
    瀏覽(24)
  • Linux救援:開機進不了系統(tǒng),顯示”GRUB>”命令提示符的解決方法

    Linux救援:開機進不了系統(tǒng),顯示”GRUB>”命令提示符的解決方法

    在Linux系統(tǒng)中,GRUB是一個常見的啟動加載器,負責加載系統(tǒng)的內核和初始文件系統(tǒng)。 然而,當出現(xiàn)某些錯誤時,系統(tǒng)可能會在開機時出現(xiàn)”GRUB”命令提示符,而無法正常啟動。 在本文中,我們將介紹如何修復這種情況。 了解GRUB和問題原因 首先,我們需要了解什么是GRUB,以

    2024年02月21日
    瀏覽(27)
  • 終端(命令提示符或Windows PowerShell或Azure Cloud Shell)概述

    終端(命令提示符或Windows PowerShell或Azure Cloud Shell)概述

    終端(命令提示符或Windows PowerShell或Azure Cloud Shell)是一種很 不 好用的東西 就是要背,很 不 爽 Windows 終端是一個新式主機應用程序,它面向你喜愛的命令行 shell,如命令提示符、PowerShell 和 bash(通過適用于 Linux 的 Windows 子系統(tǒng) (WSL))。 它的主要功能包括多個選項卡、窗格

    2024年01月23日
    瀏覽(48)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包