Học Oracle cơ bản (Bài 10)

Đây là tập tài liệu hướng dẫn học Oracle từ mức cơ bản của công ty PyThis, tài liệu này khá hay. Bạn nào quan tâm hãy download về và học

ppt22 trang | Chia sẻ: tue_kc | Lượt xem: 2357 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Học Oracle cơ bản (Bài 10), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
T¹o vµ qu¶n lý b¶ng Néi dung M« t¶ c¸c ®èi t­îng trong database T¹o b¶ng M« t¶ c¸c kiÓu d÷ liÖu khi t¹o b¶ng Thay ®æi ®Þnh nghÜa b¶ng Drop, rename, vµ truncate b¶ng C¸c ®èi t­îng trong database §èi t­îng M« t¶ Table Lµ ®¬n vÞ l­u tr÷ c¬ b¶n;bao gåm c¸c hµng vµ cét View Lµ ®¬n vÞ logic chøa tËp con d÷ liÖu tõ mét hay nhiÒu b¶ng Sequence Sinh ra gi¸ trÞ cho kho¸ chÝnh Index Hç trî hiÖu n¨ng cho c¸c c©u lÖnh truy vÊn Synonym T¹o ra mét tªn thay thÕ cho mét ®èi t­îng C¸ch ®Æt tªn Ph¶i b¾t ®Çu b»ng mét ch÷ Cã thÓ cã ®é dµi tõ 1-30 kÝ tù Ph¶i chøa c¸c kÝ tù A–Z, a–z, 0–9, _, $, and # Kh«ng ®­îc ®Æt tªn trïng víi tªn cña c¸c ®èi t­äng kh¸c thuéc vÒ cïng 1 user Kh«ng ®­îc trïng víi tõ khãa cña oracle C©u lÖnh t¹o b¶ng B¹n ph¶i cã : Cã ®Æc quyÒn CREATE TABLE Cã ®ñ vïng l­u tr÷ B¹n ph¶i chØ ®Þnh: Tªn b¶ng Tªn cét, kiÓu d÷ liÖu cét vµ kÝch th­íc cét CREATE TABLE [schema.]table (column datatype [DEFAULT expr][, ...]); Tham kh¶o tíi b¶ng cña user kh¸c B¶ng thuéc vÒ user kh¸c kh«ng thuéc vÒ schema cña user CÇn thªm tªn cña user lµ owner vµo tr­íc tªn b¶ng Tïy chän mÆc ®Þnh ChØ ®Þnh gi¸ trÞ mÆc ®Þnh cho cét … hiredate DATE DEFAULT SYSDATE, … Gi¸ trÞ hîp lÖ lµ literal, c¸c biÓu thøc vµ hµm SQL. Gi¸ trÞ kh«ng hîp lÖ lµ tªn cét kh¸c hay to¸n tö gi¶ KiÓu cña gi¸ trÞ mÆc ®Þnh cÇn phï hîp víi kiÓu d÷ liÖu cña cét T¹o b¶ng SQL> CREATE TABLE dept 2 (deptno NUMBER(2), 3 dname VARCHAR2(14), 4 loc VARCHAR2(13)); Table created. T¶o b¶ng. X¸c nhËn b¶ng ®· t¹o. SQL> DESCRIBE dept Name Null? Type --------------------------- -------- --------- DEPTNO NUMBER(2) DNAME VARCHAR2(14) LOC VARCHAR2(13) C¸c b¶ng trong Oracle Database B¶ng cña user TËp c¸c b¶ng ®­îc t¹o vµ b¶o tr× cña user Chøa th«ng tin vÒ user Tõ ®iÓn d÷ liÖu TËp c¸c b¶ng t¹o vµ b¶o tr× bëi Oracle database Chøa th«ng tin vÒ database Truy xuÊt th«ng tin cña data dictionary LÊy th«ng tin vÒ c¸c b¶ng cña user. Xem c¸c object kh¸c nhau cña user Xem c¸c tables, views, synonyms vµ sequences thuéc vÒ user. SQL> SELECT * 2 FROM user_tables; SQL> SELECT DISTINCT object_type 2 FROM user_objects; SQL> SELECT * 2 FROM user_catalog; C¸c kiÓu d÷ liÖu Datatype Description VARCHAR2(size) Variable-length character data CHAR(size) Fixed-length character data NUMBER(p,s) Variable-length numeric data DATE Date and time values CLOB Single-byte character data up to 4 gigabytes BLOB Binary data up to 4 gigabytes BFILE Binary data stored in an external file; up to 4 gigabytes T¹o b¶ng bëi subquery T¹o b¶ng bëi chÌn c¸c hµng b»ng c©u lÖnh CREATE TABLE vµ tïy chän AS Sè cét cña b¶ng ®­îc t¹o cÇn gièng sè cét trong subquery §Þnh nghÜa tªn cét vµ gi¸ trÞ mÆc ®Þnh CREATE TABLE table [(column, column...)] AS subquery; T¹o b¶ng b»ng c¸ch dïng subquery Name Null? Type ---------------------------- -------- ----- EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) ANNSAL NUMBER HIREDATE DATE SQL> DESCRIBE dept30 SQL> CREATE TABLE dept30 2 AS 3 SELECT empno, ename, sal*12 ANNSAL, hiredate 4 FROM emp 5 WHERE deptno = 30; Table created. C©u lÖnh ALTER TABLE Sö dông c©u lÖnh ALTER TABLE ®Ó: Thªm mét cét míi Söa c¸c cét ®· tån t¹i §Þnh nghÜa gi¸ trÞ mÆc ®Þnh cho cét ALTER TABLE table ADD (column datatype [DEFAULT expr] [, column datatype]...); ALTER TABLE table MODIFY (column datatype [DEFAULT expr] [, column datatype]...); Thªm mét cét DEPT30 EMPNO ENAME ANNSAL HIREDATE ------ ---------- -------- 7698 BLAKE 34200 01-MAY-81 7654 MARTIN 15000 28-SEP-81 7499 ALLEN 19200 20-FEB-81 7844 TURNER 18000 08-SEP-81 ... DEPT30 EMPNO ENAME ANNSAL HIREDATE ------ ---------- -------- 7698 BLAKE 34200 01-MAY-81 7654 MARTIN 15000 28-SEP-81 7499 ALLEN 19200 20-FEB-81 7844 TURNER 18000 08-SEP-81 ... JOB New column Thªm mét cét Sö dông mÖnh ®Ò ADD. EMPNO ENAME ANNSAL HIREDATE JOB --------- ---------- --------- --------- ---- 7698 BLAKE 34200 01-MAY-81 7654 MARTIN 15000 28-SEP-81 7499 ALLEN 19200 20-FEB-81 7844 TURNER 18000 08-SEP-81 ... 6 rows selected. SQL> ALTER TABLE dept30 2 ADD (job VARCHAR2(9)); Table altered. Cét míi sÏ trë thµnh cét cuèi cïng cña b¶ng. Söa ch÷a cét B¹n cã thÓ thay ®æi kiÓu d÷ liÖu , kÝch th­íc vµ gi¸ trÞ mÆc ®Þnh cña cét Mét thay ®æi ®èi víi gi¸ trÞ mÆc ®Þnh chØ t¸c dông víi c¸c hµng tiÕp theo ALTER TABLE dept30 MODIFY (ename VARCHAR2(15)); Table altered. Xãa b¶ng Toµn bé d÷ liÖu vµ cÊu tróc bÞ xãa. c¸c giao ®ich g¾n víi b¶ng sÏ ®­îc commit. TÊt c¶ c¸c index trªn b¶ng bÞ xãa Kh«ng thÓ rollback ®­îc c©u lÖnh nµy SQL> DROP TABLE dept30; Table dropped. Thay ®æi tªn cña ®èi t­îng Thay ®æi tªn cña table, view, sequence, hay synonym, b¹n ph¶i ch¹y c©u lÖmh RENAME You must be the owner of the object. SQL> RENAME dept TO department; Table renamed. Truncating mét b¶ng C©u lÖnh TRUNCATE TABLE : Xãa toµn bé c¸c hµng trong b¶ng Xãa vïng l­­ tr÷ mµ d÷ liÖu chiÕm Kh«ng thÓ rollback khi dïng TRUNCATE Kh«ng thÓ xãa c¸c hµng b»ng c¸ch dïng lÖnh DELETE SQL> TRUNCATE TABLE department; Table truncated. Thªm Comment vµo b¶ng Cã thÓ thªm COMMENT b»ng c¸ch sö dông lÖnh COMMENT Comment cã thÓ xem th«ng qua data dictionary ALL_COL_COMMENTS USER_COL_COMMENTS ALL_TAB_COMMENTS USER_TAB_COMMENTS SQL> COMMENT ON TABLE emp 2 IS 'Employee Information'; Comment created. Tæng kÕt Statement Description CREATE TABLE Creates a table ALTER TABLE Modifies table structures DROP TABLE Removes the rows and table structure RENAME Changes the name of a table, view, sequence, or synonym TRUNCATE Removes all rows from a table and releases the storage space COMMENT Adds comments to a table or view