Oracle SQL基本操作

Oracle SQL基本操作

Oracle數(shù)據(jù)庫基本操作

1.概述

Oracle數(shù)據(jù)庫客戶端一般需要安裝在服務器上脯燃,可以在服務器端操作,一般我們可以用sql developer工具遠程連接到數(shù)據(jù)庫掂僵,先行建立數(shù)據(jù)庫巾遭,然后對表進行增刪改查贩虾。也可以使用MyEclispse的DB Broswer工具進行連接數(shù)據(jù)庫并進行簡單的增刪改查。

2.SQL語句

Data Definition LanguageDDL):

主要用于建立辅髓、修改、刪除數(shù)據(jù)庫對象(表)少梁,不需要事務的參與

CREATE:創(chuàng)建表

CREATE TABLE emp(

id NUMBER(10),

name VARCHAR2(20),

gender CHAR(1),

birth DATE,

salary NUMBER(6,2),

);

DESC :查詢表結(jié)構(gòu)

DESC emp;

RENAME:重命名表名

RENAME emp TO employee;

DROP:刪除表

DROP TABLE emp;

ALTER:列(字段)操作

ADD:增加字段

ALTER TABLE employee?ADD(birth DATE DEFAULT sysdate);

MODITY:修改字段

ALTER TABLE employeeMODIFY(name VARCHAR2(40) DEFAULT 'CLERK' );

DROP:刪除字段

ALTER TABLE employee?DROP?(birth);

Data Manipulation LanguageDML

用于對數(shù)據(jù)記錄進行操作洛口,包括插入,刪除凯沪,修改第焰。需要commit才能真正確認操作,如果需要撤銷則rollback著洼。

INSERT INTO:插入數(shù)據(jù)

INSERT INTO employee(id, name, salary) VALUES(1001, 'rose', 5500);

UPDATE…SET..:更新數(shù)據(jù)

UPDATE employee SET salary = 8500 WHERE name = 'ROSE';

DELETE FROM:刪除記錄

DELETE FROM employee WHERE job is null;

Transaction Control LanguageTCL

事務控制語言樟遣,包括commit提交,rollback回滾身笤,savepoint保存點(可以回退到指定保存點)豹悬。在sql developer中為圖標。

Data Query LanguageDQL

SQL基礎(chǔ)查詢:

查詢語句的執(zhí)行順序

FROM?子句:執(zhí)行順序為從后往前液荸、從右到左瞻佛。數(shù)據(jù)量較少的表盡量放在后面。

WHERE子句:執(zhí)行順序為自下而上娇钱、從右到左伤柄。將能過濾掉最大數(shù)量記錄的條件寫在WHERE?子句的最右。

GROUP BY執(zhí)行順序從左往右分組文搂,最好在GROUP BY前使用WHERE將不需要的記錄在GROUP BY之前過濾掉适刀。

HAVING?子句:消耗資源。盡量避免使用煤蹭,HAVING?會在檢索出所有記錄之后才對結(jié)果集進行過濾笔喉,需要排序等操作。

SELECT子句:少用*號硝皂,盡量取字段名稱常挚。ORACLE?在解析的過程中,?通過查詢數(shù)據(jù)字典將*號依次轉(zhuǎn)換成所有的列名,?消耗時間。

ORDER BY子句:執(zhí)行順序為從左到右排序稽物,消耗資源奄毡。

也就是從哪張表中以什么樣的限制條件確定數(shù)據(jù)內(nèi)容,再通過分組與進一步限制分組條件得到一個處理過的數(shù)據(jù)贝或,最后選擇出來吼过,如有需要锐秦,則對最后選擇的數(shù)據(jù)進行排序。

FROM子句:

From后接表名那先,from前可以可以是*农猬,但是不建議(查詢效率低),一般接要查詢的字段名售淡。分組函數(shù)斤葱,字段和表名都可以使用別名,不加引號數(shù)據(jù)庫中為大寫揖闸,加引號別名可以用空格小寫等揍堕。

WHERE子句:

當查詢條件中和數(shù)字比較,可以使用單引號引起汤纸,也可以不用衩茸,當和字符及日期類型的數(shù)據(jù)比較,則必須用單引號引起贮泞。

使用條件判斷:>楞慈,<,<=啃擦,<=囊蓝,!=,<>令蛉,=聚霜。

SELECT ename, sal FROM emp WHERE sal< 2000;

SELECT ename, sal, job FROM emp WHERE job = 'SALESMAN';

SELECT ename, sal, hiredate FROM emp

WHERE hiredate>todate('2002-1-1','YYYY-MM-DD');

使用AND/OR關(guān)鍵字

如果希望返回的結(jié)果必須滿足多個條件,應該使用AND邏輯操作符連接這些條件

如果希望返回的結(jié)果滿足多個條件之一即可珠叔,應該使用OR邏輯操作符連接這些條件

SELECT ename, sal, job FROM emp

WHERE sal> 1000 AND job = 'CLERK';

使用LIKE條件

SELECT ename, job FROM emp WHERE ename LIKE '_A%';(第二個字母為A)

‘_A%’_表示占位一個字符蝎宇,%表示0到多個字符。

使用IN/NOT??IN

在WHERE子句中可以用比較操作符IN(list)來取出符合列表范圍中的數(shù)據(jù)祷安。其中的參數(shù)list表示值列表姥芥,當列或表達式匹配于列表中的任何一個值時,條件為TRUE汇鞭,該條記錄則被顯示出來撇眯。

SELECT ename, job FROM emp WHERE job IN ('MANAGER', 'CLERK');

使用BETWEEN1AND2

用來查詢符合(1,2)值域范圍之內(nèi)的數(shù)據(jù)虱咧,通常查詢數(shù)字和日期類型的數(shù)據(jù)范圍。

SELECT ename, sal FROM emp

WHERE sal BETWEEN 1500 AND 3000;

使用IS NULL和IS NOT NULL

條件篩選值為空的記錄锚国,空值不能用‘=’來判斷腕巡。

使用ANY和ALL條件

在比較運算符中,可以出現(xiàn)ALL和ANY血筑,表示“全部”和“任一”绘沉,

> ANY :?大于最小< ANY:小于最大> ALL:大于最大< ALL:小于最小

SELECT empno, ename, job, sal, deptno

FROM emp WHERE

sal> ANY?(SELECT sal FROM emp WHERE job = 'SALESMAN');

查詢條件中使用算術(shù)表達式

當查詢需要對選出的字段進行進一步計算煎楣,可以在數(shù)字列上使用算術(shù)表達式(+、-车伞、*择懂、/)。表達式符合四則運算的默認優(yōu)先級另玖,如果要改變優(yōu)先級可以使用括號困曙。

SELECT ename, sal, job FROMempWHERE ename = UPPER('rose');

SELECT ename, sal, job FROM empWHERE sal * 12 >100000;

使用DISTINCT過濾重復

DISTINCT必須緊跟SELECT,后面可以有多個字段谦去,表示過濾掉多個字段都重復的選項慷丽,第二例中不顯示重復的deptno和job相同的記錄。

SELECT DISTINCT deptno FROM emp;

SELECT DISTINCT deptno, job FROM emp;

使用ORDER BY子句

對查詢數(shù)據(jù)按照一定的規(guī)則排序鳄哭,則使用order by子句要糊,order by子句必須為select子句的最后一個子句。默認升序排列妆丘,從小到大锄俄,ASC表示升序。DESC表示降序勺拣,從大到小奶赠。

SELECT ename, sal FROM emp

??ORDER BY sal DESC;

Order by多個列,每個列需要單獨指定排序規(guī)則宣脉,先按照第一個字段排序车柠,當?shù)谝粋€字段的值相同時,再按照第二個字段的值排序塑猖。

聚合函數(shù)分組函數(shù)

當需要統(tǒng)計的數(shù)據(jù)并不能在表里直觀列出竹祷,而是需要根據(jù)現(xiàn)有的數(shù)據(jù)計算得到結(jié)果,這種功能可以使用聚合函數(shù)來實現(xiàn)羊苟。

因為是多行數(shù)據(jù)參與運算返回一行結(jié)果塑陵,也稱作分組函數(shù)、多行函數(shù)蜡励、集合函數(shù)令花。用到的關(guān)鍵字:GOURP BY?按什么分組,HAVING進一步限制分組結(jié)果

MAX和MIN

用來取得列或者表達式的最大最小值,包括數(shù)字,字符和日期生巡。

SELECT MAX(sal) max_sal, MIN(sal) min_sal FROM emp;

AVG和SUM

用來統(tǒng)計列或者表達式的平均值和求和糖埋,只能處理數(shù)字類,并且平均值忽略NULL。

SELECT AVG(sal) avg_sal, SUM(sal)??sum_sal??FROM emp;

COUNT

用來計算表中的記錄條數(shù),同樣忽略NULL玫芦。

SELECT COUNT(job) total_num??FROM emp;

空值的操作

NVL(expr1, expr2):將NULL轉(zhuǎn)變?yōu)榉荖ULL值慎王。如果expr1為NULL蚓土,則取值expr2, expr2是非空值。

NVL2(expr1, expr2, expr3):和NVL函數(shù)功能類似赖淤,都是將NULL轉(zhuǎn)變?yōu)榉强罩凳衿帷VL2用來判斷expr1是否為NULL,如果不是NULL咱旱,返回expr2确丢,如果是NULL,返回expr3莽龟。

GROUP BY子句

Group by是表示對表中某個字段進行分組蠕嫁,值相同為一組,而分組函數(shù)的意思則是對這每一個組進行計算毯盈,平均值或是最大最小值剃毒。

HAVING子句

是對分組后的結(jié)果進行進一步的限制,HAVING子句必須緊跟在GROUP BY子句后搂赋,不能單獨存在赘阀。限制分組條件不能放在WHERE子句中。

SELECT deptno, MAX(sal) max_sal FROM emp

GROUP BY deptno HAVING MAX(sal) >4000;

SQL關(guān)聯(lián)查詢:

概述脑奠,在實際應用中基公,往往我們所需要的數(shù)據(jù)是分布在不同的表上的,我們想要獲取數(shù)據(jù)必須跨表格查詢宋欺。

關(guān)聯(lián)有兩種方式:

SELECT table1.column, table2.column

FROM table1, table2

WHERE?table1.column1 = table2.column2;

SELECT table1.column, table2.column

FROM table1JOINtable2

ON(table1.column1 = table2.column2);

關(guān)聯(lián)查詢有三種連接方式

內(nèi)連接返回關(guān)聯(lián)表中所有滿足條件的記錄(也稱等值連接)

外連接返回一些不滿足條件的記錄轰豆,外連接有左外連接,右外連接和全外連接三種形式

其中左外連接返回左邊所有記錄而不必管右邊是否匹配齿诞,如不匹配則為NULL值酸休,

右外連接返回右邊所有記錄而不必管左邊的記錄是否匹配,如不匹配則默認NULL祷杈,

全外連接返回左邊和右邊所有的數(shù)據(jù)斑司,左右邊不匹配的數(shù)據(jù),對應的其他字段值為NULL但汞,

格式如下

JOIN ON

SELECT table1.column, table2.column

FROM table1?[LEFT | RIGHT | FULL] JOINtable2

ON?table1.column1 = table2.column2;

WHERE

Select * from dave a,bl b?wherea.id=b.id(+);

+號的位置和意義

‘+’號加在哪個表宿刮,哪個表就是關(guān)聯(lián)表,另一張表就是基表私蕾〗┤保基表全部顯示,關(guān)聯(lián)表匹配顯示踩叭。+在左邊就是右外連接谤饭,+在右邊就是左外連接。

自連接:

表示數(shù)據(jù)的來源是同一張表的內(nèi)容,即將一張表中的不同列進行連接揉抵,可以是等值或者不等值。實現(xiàn)方式是利用別名將一張表看作兩張表嗤疯。

SELECT?????worker.empnow_empno,worker.enamew_ename, manager.empnom_empno, manager.enamem_ename

FROMemp workerjoinemp manager

ON worker.mgr = manager.empno;

SQL高級查詢:

子查詢:

子查詢用在WHERE

在SELECT中冤今,往往WHERE的限制條件并不是一個確定的值,而是來源于另一個查詢結(jié)果茂缚,即需要在另一個查詢結(jié)果的基礎(chǔ)上進行查詢戏罢,這個時候為另一個查詢提供數(shù)據(jù)的查詢就叫做子查詢。

SELECT e.ename, e.job FROM emp e

WHERE e.job =(SELECT job FROM emp WHERE ename = 'SCOTT');

可以與多行/單行比較操作符混合使用脚囊。

子查詢用在HAVING子句

SELECT deptno, MIN(sal) min_sal FROM emp GROUP BY deptno

HAVING MIN(sal) > (SELECT MIN(sal) FROM emp WHERE deptno = 30);

表示分組條件需要滿足的條件龟糕。可以把子查詢當成一個結(jié)果悔耘。

子查詢用在FROM部分

子查詢用在FROM子句中讲岁,子查詢可稱為行內(nèi)視圖或者匿名試圖,可以把它當成一張單獨的表衬以,用別名進行標識缓艳。

子查詢用在SELECT子句中

可以認為是外連接的一張表現(xiàn)


分頁查詢:

ROWNUM

偽列,返回標識行數(shù)據(jù)順序的數(shù)字看峻,偽列并不是真正的列數(shù)據(jù)阶淘,只是用來顯示行數(shù),并不能單獨作為一列進行分組操作互妓。

ROWNUM的結(jié)果從第一行數(shù)據(jù)之上開始溪窒,每查詢到一條數(shù)據(jù)則指針下移一個,所以只有查詢到數(shù)據(jù)后才能夠出現(xiàn)偽列數(shù)字冯勉,因此不能直接用在where里澈蚌,如果要利用ROWNUM截取結(jié)果集的部分數(shù)據(jù),可以將含有ROWNUM偽列的SELECT子句放在FROM內(nèi)珠闰,作為視圖惜浅,供外部的SELECT語句使用,此時的偽列已形成順序數(shù)據(jù)伏嗜,可以進行分組函數(shù)操作坛悉。

也就是將ROWNUM先作為行內(nèi)視圖的一個列,在主查詢中就可以使用這個列值作為條件承绸。

SELECT??* FROM??(SELECT??ROWNUMrn , e.* FROM emp e )?

?WHERE rn BETWEEN 8 AND 10;

使用子查詢和ROWNUM進行分頁

分頁操作需要有一個作為分頁標準的數(shù)據(jù)裸影,該數(shù)據(jù)線進行排序,排序的結(jié)果作為視圖被父查詢用偽列標識順序數(shù)字军熏,然后在最外面的爺爺查詢對偽列進行分頁轩猩。

如:

SELECT??* FROM

??(SELECT??ROWNUMrn , t.* FROM

(SELECT empno,ename,sal FROM emp

?????ORDER BY sal DESC)??t

??)?

?WHERE rn BETWEEN 8 AND 10;

DECODE函數(shù)

DECODE (expr, search1, result1[, search2, result2…][, default])

它用于比較參數(shù)expr的值,如果匹配到哪一個search條件,就返回對應的result結(jié)果均践,可以有多組search和result的對應關(guān)系晤锹,如果任何一個search條件都沒有匹配到,則返回最后default的值彤委。default參數(shù)是可選的鞭铆,如果沒有提供default參數(shù)值,當沒有匹配到時焦影,將返回NULL车遂。

SELECT ename, job, sal,

DECODE(job, 'MANAGER', sal * 1.2,

???????????????'ANALYST', sal * 1.1,

??????????????'SALESMAN', sal * 1.05,

sal) bonus

FROM emp;

SELECT deptno, dname, loc

FROM dept

ORDER BY

DECODE(dname, '研發(fā)部',1,'市場部',2,'銷售部',3), loc;

分組函數(shù)

ROW_NUMBER

ROW_NUMBER()

???OVER (PARTITION BY deptno ORDER BY empno)

根據(jù)deptno分組,在分組內(nèi)根據(jù)empno內(nèi)排序斯辰,比ROWNUM功能更強舶担。可以直接從結(jié)果集中取出子集

RANK

RANK() OVER( PARTITION BY col1 ORDER BY col2)

功能與上相同彬呻,不同在于存在并列衣陶,并列第二跳過第三直接第四的規(guī)則。

DENSE_RANK

如果有并列第二废岂,下一個排序?qū)⑹侨?/p>

高級分組函數(shù)

ROLLUP

如果對兩個字段rollup祖搓,那么第一個字段相同的值會當成一組,如果有分組函數(shù)求和湖苞,就會對第一字段所有的數(shù)據(jù)求和拯欧,單獨成行。此時第二字段值為空财骨「渥鳎可以用于統(tǒng)計年度銷售(工資)和。

CUBE

CUBE函數(shù)對字段進行排列統(tǒng)計隆箩,比如三個字段的CUBE運算该贾,將三個字段排列成6種情況具體需要使用的時候再參考百度。

GROUPING()

GROUPING只能在使用ROLLUP或CUBE的查詢中使用捌臊。當需要在返回空值的地方顯示某個值時杨蛋,GROUPING()就非常有用。案例情況復雜理澎,具體使用時再說逞力。


集合操作

UNION、UNION ALL糠爬、INTERSECT寇荧、MINUS

Union表示取多次SELECT結(jié)果的并集,如果去掉重復的數(shù)據(jù)执隧。

Union All與union功能一樣揩抡,只是它不會去掉重復的數(shù)據(jù)户侥,會全部顯示。

Intersect表示相交峦嗤,多次查詢后去相同的數(shù)據(jù)蕊唐,即同時滿足兩個查詢條件的數(shù)據(jù)

Minus表示差集,即將第一個結(jié)果集中的數(shù)據(jù)烁设,減去第二個結(jié)果集的數(shù)據(jù)刃泌。即滿足第一個查詢條件,而不滿足第二查詢條件的數(shù)據(jù)署尤。

Data Control LanguageDCL:

用于執(zhí)行權(quán)限的授予和收回操作、創(chuàng)建用戶等亚侠,包括授予(GRANT)語句曹体,收回(REVOKE)語句,CREATE USER語句硝烂,其中GRANT用于給用戶或角色授予權(quán)限箕别,REVOKE用于收回用戶或角色已有的權(quán)限。DCL語句也不需要事務的參與滞谢,是自動提交的串稀。

GRANT CREATE VIEW TO tarena;


3.視圖、索引狮杨、序列母截、約束

視圖

視圖本質(zhì)上是一條SELECT語句,當SELECT子查詢在from子句中橄教,可以把SELECT子句的結(jié)果當作一個視圖清寇。視圖本身只是基表的映射,只是把基表中的數(shù)據(jù)顯示出來护蝶,可以把視圖當成表看待华烟,所有操作都與表操作極其相似。

視圖有三種持灰,簡單視圖不包括函數(shù)盔夜,復雜視圖包含了分組函數(shù)等附加的內(nèi)容,連接視圖是基于多個表的堤魁。

視圖的優(yōu)劣點:

如果需要經(jīng)常執(zhí)行某項復雜查詢喂链,可以基于這個復雜查詢建立視圖,此后查詢此視圖即可姨涡,簡化復雜查詢衩藤;視圖本質(zhì)上就是一條SELECT語句,所以當訪問視圖時涛漂,只能訪問到所對應的SELECT語句中涉及到的列赏表,對基表中的其它列起到安全和保密的作用检诗,可以限制數(shù)據(jù)訪問。

同時因為視圖本質(zhì)是基表的數(shù)據(jù)瓢剿,所以對視圖的操作會影響到基表從而不安全逢慌。這里可以使用WITH READ ONLY來限制對視圖的DML語言。

CREATE OR REPLACE VIEW v_emp_10

AS

SELECT empno, ename, sal, deptno FROM emp

WHERE deptno = 10

WITH READ ONLY;

使用DCL語句可以授權(quán)用戶創(chuàng)建視圖的權(quán)限间狂,

GRANT CREATE VIEW??TO tarena;

創(chuàng)建簡單視圖

CREATE VIEW v_emp_10

AS

SELECT empno, ename, sal, deptno

FROM emp

WHERE deptno = 10;

查詢視圖

SELECT id, name, salary FROM v_emp_10;

對視圖的DML操作

簡單視圖可以進行DML操作攻泼,但是操作的對象必須是基表里視圖包含的字段,即對視圖可見鉴象。而且簡單視圖的DML操作會對影響基表數(shù)據(jù)忙菠。

WITH CHECK OPTION短語表示,通過視圖所做的修改纺弊,必須在視圖的可見范圍內(nèi)牛欢,無論是INSERT UPDATE DELETE操作都必須在視圖范圍內(nèi),超過視圖范圍不可用淆游。

CREATE [OR REPLACE] VIEW view_name[(alias[, alias…])]

AS subquery

[WITH CHECK OPTION];

刪除視圖

DROP VIEW v_emp_10;

對視圖的刪除不會導致基表數(shù)據(jù)的丟失傍睹,不會影響基表數(shù)據(jù)。

序列

序列(SEQUENCE)是一種用來生成唯一數(shù)字值的數(shù)據(jù)庫對象犹菱。序列的值由Oracle程序按遞增或遞減順序自動生成拾稳,通常用來自動產(chǎn)生表的主鍵值,是一種高效率獲得唯一鍵值的途徑腊脱。

序列是獨立的數(shù)據(jù)庫對象访得,和表是獨立的對象,序列并不依附于表虑椎。

通常情況下震鹉,一個序列為一個表提供主鍵值,但一個序列也可以為多個表提供主鍵值捆姜。

CREATE SEQUENCE [schema.]sequence_name

????[ START WITH i ] [ INCREMENT BY j ]

????[ MAXVALUE m | NOMAXVALUE ]

????[ MINVALUE n | NOMINVALUE ]

[ CYCLE | NOCYCLE ][ CACHE p | NOCACHE ]

創(chuàng)建一個序列传趾,起始數(shù)據(jù)是100,步進是10:

CREATE SEQUENCE emp_seq

????START WITH 100

????INCREMENT BY 10;

NEXTVAL:獲取序列的下個值

CURRVAL:獲取序列的當前值

當序列創(chuàng)建以后泥技,必須先執(zhí)行一次NEXTVAL浆兰,之后才能使用CURRVAL

獲取序列的第一個值珊豹,并且使用序列值為EMP表插入新的記錄:

刪除序列

DROP SEQUENCE emp_seq;




索引

創(chuàng)建索引

CREATE [UNIQUE] INDEX index_name

????????ON table(column[, column…]);

index_name表示索引名稱

table表示表名

column表示列名簸呈,可以建立單列索引或復合索引

UNIQUE表示唯一索引

CREATE INDEX idx_emp_job_sal ON emp(job, sal);

可以增加函數(shù)

CREATE INDEX emp_ename_upper_idx

????ON emp(UPPER(ename));

重建索引,提高索引空間利用率

ALTER INDEX index_name REBUILD;

刪除索引

DROP INDEX idx_emp_ename;


為提升查詢效率店茶,創(chuàng)建和使用索引的原則:

1.為經(jīng)常出現(xiàn)在WHERE子句中的列創(chuàng)建索引

2.為經(jīng)常出現(xiàn)在ORDER BY蜕便、DISTINCT后面的字段建立索引。如果建立的是復合索引贩幻,索引的字段順序要和這些關(guān)鍵字后面的字段順序一致

3.為經(jīng)常作為表的連接條件的列上創(chuàng)建索引

4.不要在經(jīng)常做DML操作的表上建立索引

5.不要在小表上建立索引

6.限制表上的索引數(shù)目轿腺,索引并不是越多越好

7.刪除很少被使用的两嘴、不合理的索引


約束

CONSTRAINT

非空約束(Not Null),簡稱NN

創(chuàng)建表時添加約束

CONSTRAINT employees_hiredate_nn NOT NULL

修改表時增加非空約束

ALTER TABLE employees

MODIFY (eid NUMBER(6) NOT NULL);

修改表時取消非空約束

ALTER TABLE employees

MODIFY (eid NUMBER(6));


唯一性約束(Unique)族壳,簡稱UK

CONSTRAINT employees_email_uk UNIQUE(email)

ALTER TABLE employees

ADD CONSTRAINT employees_name_uk UNIQUE(name);

主鍵約束(Primary Key)憔辫,簡稱PK

在主鍵約束下的單字段或者多字段組合上不允許有空值,也不允許有重復值仿荆。

主鍵應是對系統(tǒng)無意義的數(shù)據(jù)

永遠也不要更新主鍵贰您,讓主鍵除了唯一標識一行之外,再無其他的用途

主鍵不應包含動態(tài)變化的數(shù)據(jù)拢操,如時間戳

主鍵應自動生成锦亦,不要人為干預,以免使它帶有除了唯一標識一行以外的意義

主鍵盡量建立在單列上

ALTER TABLE employees3

ADD CONSTRAINT

?????????employees3_eid_pk PRIMARY KEY (eid);

外鍵約束(Foreign Key)令境,簡稱FK

ALTER TABLE employees4

ADD CONSTRAINT employees4_deptno_fk

FOREIGN KEY (deptno) REFERENCES dept(deptno);

檢查約束(Check)孽亲,簡稱CK

檢查(Check)約束條件用來強制在字段上的每個值都要滿足Check中定義的條件。當定義了Check約束的列新增或修改數(shù)據(jù)時展父,數(shù)據(jù)必須符合Check約束中定義的條件。

ALTER TABLE employees4

ADD CONSTRAINT employees4_salary_check

CHECK (salary > 2000);

其他

DEFAULT指定字段默認值

NOT NULL?指定字段值非空玲昧,相當于非空約束

來源于csdn:open_sesame

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末栖茉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子孵延,更是在濱河造成了極大的恐慌吕漂,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尘应,死亡現(xiàn)場離奇詭異惶凝,居然都是意外死亡,警方通過查閱死者的電腦和手機犬钢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門苍鲜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人玷犹,你說我怎么就攤上這事混滔。” “怎么了歹颓?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵坯屿,是天一觀的道長。 經(jīng)常有香客問我巍扛,道長领跛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任撤奸,我火速辦了婚禮吠昭,結(jié)果婚禮上喊括,老公的妹妹穿的比我還像新娘。我一直安慰自己怎诫,他們只是感情好瘾晃,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著幻妓,像睡著了一般蹦误。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肉津,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天强胰,我揣著相機與錄音,去河邊找鬼妹沙。 笑死偶洋,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的距糖。 我是一名探鬼主播玄窝,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼悍引!你這毒婦竟也來了恩脂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤趣斤,失蹤者是張志新(化名)和其女友劉穎俩块,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浓领,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡玉凯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了联贩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漫仆。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖泪幌,靈堂內(nèi)的尸體忽然破棺而出歹啼,到底是詐尸還是另有隱情,我是刑警寧澤座菠,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布狸眼,位于F島的核電站,受9級特大地震影響浴滴,放射性物質(zhì)發(fā)生泄漏拓萌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一升略、第九天 我趴在偏房一處隱蔽的房頂上張望微王。 院中可真熱鬧屡限,春花似錦、人聲如沸炕倘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽罩旋。三九已至啊央,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間涨醋,已是汗流浹背瓜饥。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留浴骂,地道東北人乓土。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像溯警,于是被迫代替她去往敵國和親趣苏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容