天天看點

常用SQL語句詞典

Q0.建立使用者 

【前提】

你必須有CREATE USER系統權限。當你使用CREATE USER語句建立一個新使用者後,該使用者的權

限是空的,要登入到ORACLE該使用者必須有CREATE SESSION 系統權限。是以在建立使用者之後

,你至少應該授予使用者CREATE SESSION 權限。

【示例】

建立一個使用者的例子

如果你建立一個新使用者使用PASSWORD EXPIRE項,在嘗試登陸ORACLE之前該使用者的密碼必須

改變。你可以建立該使用者使用以下語句:

CREATE USER sidney 

IDENTIFIED BY welcome 

DEFAULT TABLESPACE cases_ts 

QUOTA 10M ON cases_ts 

TEMPORARY TABLESPACE temp_ts 

QUOTA 5M ON system 

PROFILE engineer 

PASSWORD EXPIRE; 

該使用者有以下特征:

密碼:welcome

預設表空間: cases_ts,有10M的使用權。

臨時表空間: temp_ts

在系統表空間SYSTEM有5M的使用權。

使用資料庫資源定義在配置檔案engineer中。

一個過期密碼,在登陸ORACLE之前該使用者的密碼必須改變。

【關鍵字和參數】

user

辨別要被建立的使用者名稱。

IDENTIFIED

IDENTIFIED 項讓你指出ORACLE如何鑒别該使用者。

BY password 

BY password 項讓你建立一個本地使用者并指出該使用者必須使用指定密碼登入ORACLE。

密碼隻包含單位元組字元。

DEFAULT TABLESPACE

指出所創使用者的預設表空間。如果你忽略該項,預設值是SYSTEM表空間。

TEMPORARY TABLESPACE 

指出所創使用者的臨時表空間。如果你忽略該項,預設值是SYSTEM表空間。 

QUOTA

使用QUOTA項指定允許使用者使用的表空間大小,以K或M為機關的整數值。

一個使用者可以擁有多個表空間的多個QUOTA值。

UNLIMITED 

允許使用者無限制的使用表空間。

PROFILE 

指你想給使用者配置設定哪個配置檔案。配置檔案限制使用者使用資料庫的資源量。如果忽略該

項,ORACLE為使用者指定預設配置檔案。

PASSWORD EXPIRE

指定使用者密碼的過期。這個設定迫使使用者(或DBA)在登入到ORACLE之前必須修改密碼

。 

Q1.怎樣建立表?

A. CREATE TABLE ROYAL_MTABLE

(

RM_INT_FIELD INTEGER,

RM_STR_FIELD VARCHAR2(64)

)

CREATE TABLE ROYAL_DTABLE

RD_INT_FIELD INTEGER,

RD_STR_FIELD VARCHAR2(32)

Q2.怎樣删除表?

A. DROP TABLE ROYAL_DTABLE;

Q3.怎樣建立視圖?

A. CREATE OR REPLACE VIEW ROYAL_MDVIEW AS

SELECT T1.RM_STR_FIELD AS F1, T2.RD_STR_FIELD AS F2 FROM ROYAL_MTABLE T1, ROYAL_DTABLE T2

WHERE T1.RM_INT_FIELD = T2.RM_INT_FIELD

Q4.怎樣删除視圖?

A. DROP VIEW ROYAL_MDVIEW;

Q5.怎樣給表添加字段?

A. ALTER TABLE ROYAL_DTABLE ADD RM_INT_FIELD INTEGER;

Q6.怎樣删除表中某個字段?

A. ALTER TABLE ROYAL_DTABLE DROP COLUMN RM_INT_FIELD;

Q7.怎樣給某個字段添加限制?

A. ALTER TABLE ROYAL_MTABLE MODIFY RM_STR_FIELD NOT NULL;

Q8.怎樣去除某個字段上的限制?

A. ALTER TABLE ROYAL_MTABLE MODIFY RM_STR_FIELD NULL;

Q9.怎樣給表加上主鍵?

A. ALTER TABLE ROYAL_MTABLE ADD CONSTRAINT PK_ROYAL_MTABLE PRIMARY KEY (RM_INT_FIELD);

Q10.怎樣删除表的主鍵?

A. ALTER TABLE ROYAL_MTABLE DROP CONSTRAINT PK_ROYAL_MTABLE CASCADE;

Q11.怎樣給表添加一個外鍵?

A. ALTER TABLE ROYAL_DTABLE ADD CONSTRAINT FK_ROYAL_DTABLE FOREIGN KEY (RM_INT_FIELD) REFERENCES ROYAL_MTABLE (RM_INT_FIELD) ON DELETE CASCADE;

Q12.怎樣删除表的一個外鍵?

A. ALTER TABLE ROYAL_DTABLE DROP CONSTRAINT FK_ROYAL_DTABLE;

Q13.怎樣給字段加上CHECK?

A. ALTER TABLE ROYAL_MTABLE ADD CONSTRAINT CHK_RM_STR_FIELD CHECK (RM_STR_FIELD IN ('Y','N'));

Q14.怎樣去掉字段上的CHECK?

A. ALTER TABLE ROYAL_MTABLE DROP CONSTRAINT CHK_RM_STR_FIELD;

Q15.怎樣給字段設定預設值?

A. ALTER TABLE ROYAL_DTABLE MODIFY RD_STR_FIELD DEFAULT 'ROYAL';

Q16.怎樣移去字段的預設值?

A. ALTER TABLE ROYAL_DTABLE MODIFY RD_STR_FIELD DEFAULT NULL;

Q17.怎樣建立索引?

A. CREATE UNIQUE INDEX IDX_ROYAL_DTABLE ON ROYAL_DTABLE (RM_INT_FIELD);

Q18.怎樣删除索引?

A. DROP INDEX IDX_ROYAL_DTABLE;

Q19.怎樣建立使用者?

A. CREATE USER TESTUSER IDENTIFIED EXTERNALLY DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP PROFILE DEFAULT;

Q20.怎樣删除使用者?

A. DROP USER TESTUSER CASCADE;

Q21.怎樣将對象權限(object privileges)授予使用者?

A. GRANT SELECT, INSERT, UPDATE, DELETE, ALTER ON ROYAL_MTABLE TO TESTUSER;

GRANT INSERT, UPDATE, DELETE ON ROYAL_DTABLE TO TESTUSER;

GRANT SELECT, ALTER ON ROYAL_DTABLE TO TESTUSER WITH GRANT OPTION;

Q22.怎樣從使用者收回對象權限?

A. REVOKE SELECT, INSERT, UPDATE, DELETE, ALTER ON ROYAL_DTABLE FROM TESTUSER;

Q23.怎樣将角色權限(role privileges)授予使用者?

A. GRANT CONNECT TO TESTUSER WITH ADMIN OPTION;

GRANT DBA TO TESTUSER;

Q24.怎樣從使用者收回角色權限?

A. REVOKE DBA FROM TESTUSER;

Q25.怎樣将系統權限(system privileges)授予使用者?

A. GRANT ALTER ANY TABLE TO TESTUSER WITH ADMIN OPTION;

Q26.怎樣從使用者收回系統權限?

A. REVOKE ALTER ANY TABLE FROM TESTUSER;

Q27.怎樣建立序列?

A. CREATE SEQUENCE RM_INT_FIELD_SEQ

MINVALUE 1

MAXVALUE 999999999999999999999999999

START WITH 1

INCREMENT BY 1

CACHE 10

ORDER;

Q28.怎樣删除序列?

A. DROP SEQUENCE RM_INT_FIELD_SEQ;

Q29.怎樣擷取序列值?

A. SELECT RM_INT_FIELD_SEQ.NEXTVAL FROM DUAL;

Q30.怎樣建立角色?

A. CREATE ROLE TESTROLE;

Q31.怎樣删除角色?

A. DROP ROLE TESTROLE;

Q32.怎樣将對象權限(object privileges)授予角色?

A. GRANT SELECT, INSERT, UPDATE, DELETE, ALTER ON ROYAL_MTABLE TO TESTROLE;

Q33.怎樣從角色收回對象權限?

A. REVOKE SELECT, INSERT, UPDATE, DELETE, ALTER ON ROYAL_MTABLE FROM TESTROLE;

Q34.怎樣将角色權限(role privileges)授予角色?

A. GRANT DBA TO TESTROLE;

Q35.怎樣從角色收回角色權限?

A. REVOKE DBA FROM TESTROLE;

Q36.怎樣将系統權限(system privileges)授予角色?

A. GRANT CREATE TABLE TO TESTROLE;

Q37.怎樣從角色收回系統權限?

A. REVOKE CREATE TABLE FROM TESTROLE;

Q38.不等于條件有哪幾種寫法?(茴香豆問題:))

A. SELECT * FROM ROYAL_MTABLE WHERE RM_STR_FIELD != 'Y';

SELECT * FROM ROYAL_MTABLE WHERE RM_STR_FIELD ^= 'Y';

SELECT * FROM ROYAL_MTABLE WHERE RM_STR_FIELD <> 'Y';

Q39.like子句的用法?

A. SELECT * FROM ROYAL_DTABLE WHERE RD_STR_FIELD LIKE '%Y%';

SELECT * FROM ROYAL_DTABLE WHERE RD_STR_FIELD LIKE '_Y%';

Q40.請舉出一個where子查詢簡單例子?

A. SELECT * FROM ROYAL_DTABLE WHERE RM_INT_FIELD IN (SELECT RM_INT_FIELD FROM ROYAL_MTABLE WHERE RM_STR_FIELD NOT IN ('Y','B'));

Q41.Oracle常用字元串處理函數有哪些?

A. || 連接配接兩個字元串; LENGTH 字元串長度; TRIM/LTRIM/RTRIM 截斷串左(右)指定字元串(包括空串); LOWER/UPPER 将字元串轉換為小/大寫,等等。

例如:SELECT RM_INT_FIELD||'--'||RM_STR_FIELD||'YES' FROM ROYAL_MTABLE;

Q42.Oracle支援哪些數字處理函數?

A. Oracle支援所有常用數字函數,包括(但不限于)+、-、*、/、ABS、COS、EXP、LN、LOG、MOD、POWER、ROUND、SIN、SINH、SQRT、TAN、TRUNC、AVG、COUNT、MAX、MIN、SUM、GREATEST、LEAST等等。

例如:

S

本文轉自loveme2351CTO部落格,原文連結:http://blog.51cto.com/loveme23/7941 ,如需轉載請自行聯系原作者