亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

[數(shù)據(jù)庫]數(shù)據(jù)庫

來源:guwuyue 發(fā)布時間:2018-11-03 16:40:07 閱讀量:1165

1.數(shù)據(jù)庫簡介

1.1)DB和DBMS

數(shù)據(jù)庫Database簡稱DB,是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫

數(shù)據(jù)庫管理系統(tǒng)Database Management System簡稱DBMS:管理數(shù)據(jù)庫的軟件

1

2

1.2)關(guān)系數(shù)據(jù)庫簡介

關(guān)系:描述兩個元素間的關(guān)聯(lián)或?qū)?yīng)關(guān)系

使用關(guān)系模型把數(shù)據(jù)組織到二維數(shù)據(jù)表中

產(chǎn)品化:Oracle DB2 Sybase SQLServer MySQL

1

2

3

1.3)表的概念

一個關(guān)系數(shù)據(jù)庫是由多個數(shù)據(jù)表組成,數(shù)據(jù)表是關(guān)系數(shù)據(jù)庫的基本存儲結(jié)構(gòu),表是二維的,行為記錄,列為字段

1

2.主流關(guān)系型數(shù)據(jù)庫

Oracle是甲骨文公司的數(shù)據(jù)庫產(chǎn)品,是世界上第一個商品化的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),采用標準SQL結(jié)構(gòu)化查詢語言

DB2是IBM公司的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)

Sybase是美國Sybase公司的關(guān)系型數(shù)據(jù)庫系統(tǒng)

SQL Server是微軟的產(chǎn)品

1

2

3

4

3.SQL概述

3.1)結(jié)構(gòu)化查詢語言

SQL(Structured Query Language):結(jié)構(gòu)化查詢語言

SQL是在關(guān)系數(shù)據(jù)庫上執(zhí)行數(shù)據(jù)操作、檢索及維護所使用的標準語言,可以用來查詢數(shù)據(jù),操作數(shù)據(jù),定義數(shù)據(jù),控制數(shù)據(jù)

所有數(shù)據(jù)庫都使用相同或者相似的語言

SQL可分為:

    -數(shù)據(jù)定義語言(DDL):Data Definition Language

    -數(shù)據(jù)操作語言(DML):Data Manipulation Language

    -事務(wù)控制語言(TCL):Transaction Control Language

    -數(shù)據(jù)查詢語言(DQL):Data Query Language

    -數(shù)據(jù)控制語言(DCL):Data Control Language

1

2

3

4

5

6

7

8

9

3.2)DDL、DML、TCL、DQL、DCL

3.2.1)數(shù)據(jù)定義語言(DDL)

用于建議、修改、刪除數(shù)據(jù)庫對象,包括:

-CREATE:創(chuàng)建表或其他對象的結(jié)構(gòu)

-ALTER:修改表或其他對象的結(jié)構(gòu)

-DROP:刪除表或其他對象的結(jié)構(gòu)

-TRUNCATE:刪除表數(shù)據(jù),保留表結(jié)構(gòu)

1".創(chuàng)建表 CREATE語句

    CREATE TABLE table_name(

        column_name datatype DEFAULT exp,....);

2".DESC語句-查詢表的結(jié)構(gòu)

    DESC table_name;

3".DEFAULT語句--給列指定默認值

4".NOT NULL--非空約束,用于確保字段值不為空

5".修改表名RENAME

    在建表后若希望修改表名,使用RENAME語句

    RENAME old_table_name TO new_table_name;

6".增加列--ALTER TABLE的ADD子句實現(xiàn)

    ALTER TABLE table_name 

    ADD(column_name datatype,...);

    列只能增加在最后,不能插入到現(xiàn)有的列中

7".刪除列--ALTER TABLE的DROP子句刪除不需要的列

    ALTER TABLE table_name DROP(column_name);

8".修改列--ALTER TABLE的MODIFY子句

    建表后,可改變表中列的數(shù)據(jù)類型、長度和默認值,修改僅對以后插入的數(shù)據(jù)有效,將長度由大改小,有可能u成功

    ALTER TABLE table_name 

    MODIFY(column_name datatype,...);

補充Oracle數(shù)據(jù)類型:

NUMBER(P,S)數(shù)字類型,p數(shù)字的總位數(shù),s小數(shù)點后面的位數(shù)

CHAR(N)固定長度字符類型,n占用的字節(jié)數(shù),最大長度2000字節(jié)

VARCHAR(N) VARCHAR2(N)變長字符類型,n最多占用字節(jié)數(shù),最大長度4000字節(jié)

DATE日期時間的數(shù)據(jù),長度7個字節(jié),默認格式DD-MON-RR

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

3.2.2)數(shù)據(jù)操作語言(DML)

用于該表數(shù)據(jù)表中的數(shù)據(jù),和事務(wù)相關(guān),執(zhí)行完后需要經(jīng)過事務(wù)控制語句提交后才真正的將改變應(yīng)用到數(shù)據(jù)庫中,包括:

-INSERT:將數(shù)據(jù)插入到數(shù)據(jù)表中

-UPDATE:更新數(shù)據(jù)表中已存在的數(shù)據(jù)

-DELETE:刪除數(shù)據(jù)表中的數(shù)據(jù)


1".INSERT語句--給數(shù)據(jù)表增加記錄

    INSERT INTO table_name

    (column_name,column_name,...)

    VALUES(value,value,...);

若插入的列有日期字段,需考慮日期格式,默認格式:DD-MON-RR

可自定義日期格式,用TO_DATE函數(shù)轉(zhuǎn)換為日期類型的數(shù)據(jù)

    TO_DATE('2016-08-14','YYYY-MM-DD')

2".UPDATE語句--更新表中的記錄

    UPDATE table_name

    SET column_name = value,...

    [WHERE condition];

3".DELETE語句--刪除表中的記錄

    DELETE FROM table_name [WHERE condition];

    若沒有where子句,則全表的數(shù)據(jù)都會被刪除

4".TRUNCATE語句--刪除表中數(shù)據(jù)

    TRUNCATE TABLE table_name;

    與delete區(qū)別:

    1':delete可以有條件刪除,truncate將表數(shù)據(jù)全部刪除

    2':delete是DML語句,可以回退,truncate是DDL語句,立即生效,無法回退

    3':如果刪除全部表記錄且數(shù)據(jù)量較大,delete語句效率低于truncate語句

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

3.2.3)事務(wù)控制語言(TCL)

用于維護數(shù)據(jù)一致性的語句,包括:

-COMMIT:提交,確認已經(jīng)進行的數(shù)據(jù)改變

-ROLLBACK:回滾,取消已經(jīng)進行的數(shù)據(jù)改變

-SAVEPOINT:保存點,使當(dāng)前的事務(wù)可以回退到指定的保存點,便于取消部分改變。

1

2

3

4

3.2.4)數(shù)據(jù)查詢語言(DQL)

用來查詢所需要的數(shù)據(jù)

-SELECT語句

1

2

3.2.5)數(shù)據(jù)控制語言(DCL)

用于執(zhí)行權(quán)限的授予和收回操作,包括:

-GRANT:授予,用于給用戶或角色授予權(quán)限

-REVOKE:用于收回用戶或角色已有的權(quán)限

-CREATE USER:創(chuàng)建用戶

1

2

3

4

4.字符串操作

4.1)字符串類型

4.1.1)CHAR和VARCHAR2類型

    字符串?dāng)?shù)據(jù)類型,用來在表中存放字符串信息

    CHAR:存放定長字符,不滿補空格

    VARCHAR2:存邊長字符,存多少占用多少

    按字符的自然順序排序

4.1.2)LONG和CLOB類型

    LONG:存變長字符串,最多達2GB的字符串?dāng)?shù)據(jù)

    CLON:存定長或變長字符串,最多達4GB的字符串?dāng)?shù)據(jù)

1

2

3

4

5

6

7

8

4.2)字符串函數(shù)

4.2.1)CONCAT和"||"

    CONCAT(a1,a2)將a1和a2兩個字符串連接起來

    等價操作:連接操作符:"||"

    若a1和a2任何一個為NULL,相當(dāng)于連接了一個空格

    CONCAT(a,b) a||b

4.2.2)LENGHT(char)字符串的長度

4.2.3)UPPER,LOWER和INITCAP大小寫轉(zhuǎn)換函數(shù)轉(zhuǎn)換字符大小寫

    UPPER(char):將字符轉(zhuǎn)為大寫形式

    LOWER(char):將字符轉(zhuǎn)為小寫形式

    INITCAP(char):將字符串中每個單詞的首字符大寫,其他小寫,單詞之間用空格

4.2.4)TRIM,LTRIM,RTRIM:截去子串

    TRIM(a FROM b):將a從b前后中截去

    LTRIM(a,b):將a從b的左側(cè)截去

    RTRIM(a,b):將a從b的右側(cè)截去

4.2.5)LPAD,RPAD:補位函數(shù)

    LPAD(a,n,b):左補位,在a的左端用b補足n位

    RPAD(a,n,b):右補位,在a的右端用b補足n位

4.2.6)SUBSTR(char,m,n)獲取字符串的子串

    返回char中從m位開始取n個字符

    m=0,從首字符開始

    m為負數(shù),從尾部開始

    若沒有n,或n的長度超過char的長度,則取到字符串末尾為止

4.2.7)INSTR(a,b,n,m)返回字符串a(chǎn)中b的位置

    從n的位置開始檢索,沒有指定n則從第1個字符開始檢索

    m用于指定子串的第m次出現(xiàn)次數(shù),若不指定取值1

    若在a中沒有找到b,返回0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

5.數(shù)字操作

5.1)數(shù)字類型

NUMBER(P,S)

NUMBERIC(P,S)==>NUMBER(P,S)

DECIMAL(P,S)或DEC(P,S)==>NUMBER(P,S)

INTENGER或INT==>NUMBER(38)

SMALLINT==>NUMBER(38)

FLOAT(b)==>NUMBER

DOUBLE PRECISION==>NUMBER

REAL==>NUMBER

1

2

3

4

5

6

7

8

5.2)數(shù)值函數(shù)

5.2.1)ROUND(n,m):用于四舍五入

    m必為整數(shù),m缺省,默認值為0

    m取正數(shù),則四舍五入到小數(shù)點后第m位

    m取0值,則四舍五入到整數(shù)位

    m取負數(shù),則四舍五入到小數(shù)點前第m位

5.2.2)TRUNC(n,m):用于截取

5.2.3)MOD(n,m):返回n除以m后的余數(shù),m為0直接返回n

5.2.4)CEIL和FLOOR:最小整數(shù),最大整數(shù)

    CEIL(n):天花板,求大于等于n的最小整數(shù)值

    FLOOR(n)地板,求小于等于n的最大整數(shù)值

1

2

3

4

5

6

7

8

9

10

6.日期操作

6.1)日期類型

DATE:7個字節(jié),世紀、年、月、日、時、分、秒

TIMESTAMP:7或11個字節(jié),世紀、年、月、日、時、分、秒、納秒

1

2

6.2)日期關(guān)鍵字

SYSDATE:當(dāng)前系統(tǒng)時間,精確到秒,DD-MON-RR

SYSTIMESTAMP:當(dāng)前系統(tǒng)日期和時間,精確到毫秒

1

2

6.3)日期轉(zhuǎn)換函數(shù)

TO_DATE(char,'YYYY-MM-DD HH24:MI:SS')

將字符串按照指定格式轉(zhuǎn)換為日期類型

TO_DATE(char,'YYYY-MM-DD HH12:MI:SS')


TO_CHAR(date,'YYYY"年"MM"月"DD"日"')

將日期按照指定格式轉(zhuǎn)換為字符串類型

TO_CHAR(char,'YYYY-MM-DD HH12:MI:SS')

1

2

3

4

5

6

7

6.4)日期常用函數(shù)

6.4.1)LAST_DAY(date)返回所在月的最后一天

6.4.2)ADD_MONTHS(date,i)返回date加上i個月后的日期值

        若i為小數(shù),將截去整數(shù)后在參與運算

        若i為負數(shù),則減去i個月后的日期值

6.4.3)MONTHS_BETWEEN(date1,date2)

        date1-date2日期值之間間隔了多少個月

6.4.4)NEXT_DAY(date,i)返回date日期數(shù)據(jù)的下一個周幾

        1-7:周日-周六

        eg:select next_day(sysdate,4) 

           as "next_wedn" from dual;

6.4.5)LEAST,GREATEST

    LEAST(a,b,c...)參數(shù)中的最小值

    GREATEST(a,b,c,...)參數(shù)中的最大值

6.4.6)EXTRACT(date FROM datetime):從參數(shù)datetime中提取參數(shù)date指定的數(shù)據(jù),比如提取年,月,日

1

2

3

4

5

6

7

8

9

10

11

12

13

14

7.空值NULL操作

7.1)NULL的操作

插入空值,insert into table_name values(1,null)

更新成空值,update emp 

         set gender=null where id = 100;

         更新空值,列沒有非空約束的情況下才可操作

NULL條件查詢 IS NULL ,IS NOT NULL

1

2

3

4

5

7.2)空值函數(shù)

NVL(a,b)將NULL轉(zhuǎn)變?yōu)榉荖ULL值

    若a為NULL,則取b

NVL2(a,b,c)將NULL轉(zhuǎn)變?yōu)榉荖ULL值

    判斷a是否為NULL,若不是NULL取b,若是NULL,取c

--------------------- 

作者:guwuyue 

來源:CSDN 

原文:https://blog.csdn.net/guwuyue/article/details/52205863 

版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!


分享:
評論:
你還沒有登錄,請先