數據庫學習-基礎-個人手稿版-詳情參見附件

      網友投稿 750 2022-05-29

      第一章 數據庫簡介................ 10

      一.文件存儲.................. 10

      文件存儲的發展歷程:.......................... 10

      文件存儲方式保存數據的弊端:.......... 10

      二. 數據庫簡介............ 10

      數據庫(DB)和數據庫管理系統(DMG)................................. 10

      關系數據庫......... 10

      主流關系型數據庫................................. 10

      三. SQL(結構化查詢語言)簡介................................. 10

      SQL簡述............... 10

      SOL的劃分........... 10

      數據定義語言(DDL):Data Definition Language........... 11

      數據操縱語言(DML):Data Manipulation Language........... 11

      事務控制語言(TCL):Transaction Control Language.......................... 11

      數據查詢語言(DQL):Data Query Language........... 11

      數據控制語言(DCL):Data Control Language........... 11

      第二章 Qracle數據庫............. 12

      一. Oracle數據類型..... 12

      NUMBER類型 :. 12

      CHAR 類型:....... 12

      VARCHAR2 類型:................................. 12

      DATE 類型:........ 12

      二. 創建表,操作表..... 12

      1.數據定義語言(DDL)----創建表.................... 12

      1)創建一個employee表...... 12

      2)查看表結構. 12

      3)給表中數據設置默認值? DEFFAULT語句.. 13

      4) 非空約束條件? NOT NULL.......... 13

      2.數據定義語言(DDL)----修改表.................... 13

      1) 修改表名? RENAME old_name TO new_name... 13

      2) 修改表結構 ALTER TABLE 語句.......................... 13

      (1)向表中添加新字段(增加新的一列)........... 13

      (2) 刪除表中字段....... 13

      (3) 修改表中的字段(修改列)....... 13

      3.數據操縱語言(DML)................................. 14

      1) INSERT語句 給數據表增加記錄.......................... 14

      (1)指定字段插入....... 14

      (2)全列插入.............. 14

      2) commit(事務控制語句)....... 14

      3) 插入日期字段.......................... 14

      (1)插入默認日期格式.................. 14

      (2)插入自定義日期格式 to_date().... 14

      4) UPDATE語句 :更新表中的數據.......................... 14

      --更新tttt表中名字為lisi的員工薪水更新為5999.. 14

      5) DELETE 語句 刪除表中記錄... 14

      (1) 刪除工作崗位為null的員工....... 14

      6) DELETE和TRUNCATE的區別.......................... 14

      第三章 Oracle數據庫基礎..... 15

      --創建職員表 emp........... 15

      --創建部門表 dept........... 15

      --補充:dual:oracle中的偽表,此表不存在.................. 16

      一. Oacle字符串操作.. 16

      字符串類型......... 16

      1) CHAR 和 VARCHAR2 類型 16

      2) LONG H和 CLOB 類型........ 16

      字符串函數......... 16

      1) 字符串鏈接函數concat和||... 16

      2)length(char):查詢的是字符串的字符個數.............. 16

      3)大小寫轉換函數...................... 16

      --eg:輸入一個員工的名字,不管大小寫,查詢該員工的信息.............. 17

      4)截去字符串 TRIM ,LTRIM ,RTRIM.......................... 17

      --eg:除空格..... 17

      5)補位函數PAD:LPAD/RPAD........ 17

      6)獲取字符串的子串 SUBSTR(char,m,n).......................... 17

      7)查找字符串在另一個中的位置 instr(char1,char2,n,m).......................... 17

      二. Oracle數值操作..... 18

      數據值類型......... 18

      數值函數............. 18

      1)四舍五入 ROUND(n,m)...... 18

      2) TRUNC(n,m) 截取數字........... 18

      3)求余數 Mod(m,n).......... 18

      4)ceil(n)和floor(n).......................... 18

      三. Oracle日期操作......... 18

      日期類型............. 18

      1) DATE類型.. 18

      2) TIMESTAMP類型...................... 18

      日期關鍵字......... 18

      1)SYSDATE....... 18

      2) SYSTIMESTAMP? 時間戳.............. 19

      3) 日期類型可以比較大小........... 19

      eg:算1987-10-17到當前過了多少天.................. 19

      日期轉換函數...... 19

      1) to_date() 把字符串轉換成日期類型...................... 19

      eg:查看1981年后入職的員工... 19

      eg:查看每個員工到今天為止,入職了多少天....... 19

      2) to_char() 函數.......................... 19

      eg:將emp表中的每個員工的入職時間轉換成yyyy年mm月dd天 19

      eg:將1998-02-19時間轉換為1998年2月19日.......................... 19

      日期常用函數...... 19

      1)last_day(date) 返回date所在月份的最后一天... 19

      2)add_months(date,i)? 返回日期date加上i個月后的日期值...................... 19

      eg:計算周年慶日期... 20

      3)month_between(date1,date2)? 返回的是兩個日期相差的月數? date1-date2....... 20

      eg:計算每個員工工做了幾個月.......................... 20

      4)next_day(date,i) 返回的給定日期的最近的,還沒過的周幾的日期....... 20

      5) least greatest比較函數........... 20

      6)extract()函數? 可以提取一個日期中指定的時間分量對應的值........... 20

      四. 空值操作................ 20

      NULL的含義......... 20

      NULL的操作......... 20

      1) 插入NULL值 20

      2) 更新成NULL值.......................... 20

      3) NULL 值條件查詢.................. 20

      4) 非空約束... 20

      空值函數 NVL NVL2................................. 21

      1) NVL(a1,a2) 將一個null值轉化為一個非null值... 21

      eg:求員工工資.......................... 21

      2) NVL2(a1,a2,a3)? 將NULL轉化為實際值........... 21

      eg:查看每個員工的獎金,如果有將建輸出有獎金,如果沒獎金,返回沒獎金.............. 21

      第四章 SQL(基礎查詢)............ 22

      一. 基本查詢語句........ 22

      FROM字句........... 22

      使用別名............. 22

      WHERE字句......... 22

      SELECT字句.......... 22

      二. 查詢條件................ 22

      使用< , > , <=? , >= ,? !=? ,? <> ,? =................................ 22

      使用AND ,OR關鍵字.............................. 22

      --查看工資高于1000的CLERK于SALESMAN的員工信息... 22

      模糊查詢:LIKE... 22

      4.IN/NOT IN? 判斷等于列表中的任何一項即可.......................... 23

      BETWEEN...AND.. 用來查詢符合某個范圍的數據.................. 23

      eg:查詢工資在1500-3000之間的支援信息........... 23

      使用IS NULL 和 IS NOT NULL................. 23

      使用ANY 和 ALL........ 23

      8.使用表達式和函數 23

      9.使用distinct:除去重復行.......................... 23

      三. 排序 ORDER BY 字句......................................... 23

      四. 聚合函數................ 24

      聚合函數 又名分組函數,多行函數.......................... 24

      1.MAX()/MIN() 求最大值 最小值................ 24

      2.AVG()/SUM():求平均值,求和.................. 24

      --需求:求公司員工的平均獎金,獎金總和(涉及null值轉換)... 24

      3.COUNT()? 計數..... 24

      --需求:查詢公司有多少人?................ 24

      五. 分組GROUP BY 字句......................................... 24

      eg:列出同部門同職位的員工的最高于最低工資... 24

      eg:查看部門的平均工資高于2000的部門的平均工資.............. 24

      六. 查詢語句執行順序. 24

      第五章 SQL關聯查詢............. 26

      一. 關聯基礎................ 26

      關聯的概念......... 26

      笛卡兒積............. 26

      等值連接............. 26

      二. 關聯查詢................ 26

      內鏈接:返回所有滿足連接條件的記錄... 26

      外連接................. 26

      全外鏈接............. 27

      自連結................. 27

      eg:找king的下屬?... 27

      ---按經理的名字排序....... 27

      ---查看jones的下屬的平均工資........... 27

      ---每個經理下屬的平均工資.................. 27

      三. 子查詢.................... 28

      where子查詢:子查詢嵌套在where字句中................................. 28

      1)需求:查找和SCOTT同職位的員工信息.............. 28

      2)需求:和BLAKE同部門的員工... 28

      3)創建一個表emp10,保存所有10號部門的員工信息.................. 29

      4)將blake所在部門的所有員工的工資提高10%....... 29

      如果子查詢返回多行,在主查詢中要使用多行比較操作符.................. 29

      5)查詢MANAGER所在的部門? 多行單列.................. 29

      6) 查找薪水比整個機構平均薪水高的員工.............. 30

      7) 查看 與salesman同部門的其他員工........... 30

      8)查看比所有salesman和clerk工資都高的員工.......................... 30

      9)exists 關鍵字?? 查看那些部門有員工?.................. 31

      2.having 子查詢....... 31

      1)查詢列出最低薪水高于部門30的最低薪水的部門信息?.............. 31

      2)查看平均薪水高于名叫clerk的平均薪水的職位.......................... 31

      3.FROM 子查詢....... 31

      1)查看那些員工比所在部門的平均薪水高.............. 31

      4.SELECT 子查詢...... 31

      四.分頁查詢.................. 32

      --截取6到10條數據....... 32

      --分頁查詢范圍的算法... 32

      五. DECODE函數.......... 33

      1.decode函數:可以實現類似于switch/case的功能...................... 33

      1)eg:查詢emp表,按職位計算獎勵金.......................... 33

      decode函數在分組查詢中的應用.......... 33

      1)計算職位的人數,MANAGER,ANALYDT屬于VIP,其他是OTHER... 33

      2) 自定義排序.......................... 33

      六.排序函數.................. 33

      1.row_number()函數:生成組內連續且唯一................................. 33

      eg:需求:查看每個部門的工資排名...................... 33

      rank函數:生成組內不連續也不唯一....... 34

      dense_rank() 函數:生成組內連續但不唯一.............................. 34

      select語句的執行順序.............................. 34

      第六章 數據庫基礎................ 35

      一. 視圖........................ 35

      創建視圖............. 35

      1) 視圖........... 35

      查詢視圖內容:........... 35

      修改視圖.................. 35

      對視圖進行DML操作.. 35

      簡單視圖:.................. 35

      2) 視圖的作用.......................... 35

      簡化復雜查詢.............. 35

      限制數據訪問.............. 35

      --數據的污染.................. 36

      創建具有約束的視圖.............................. 36

      1)with check ption.......................... 36

      2) WITH READ ONLY.................. 36

      通過查詢user_views獲取相關信息.............................. 37

      復雜視圖............. 37

      1) 創建一個視圖V_EMP_SALARY. 37

      2)查看哪些員工比所在部門平均工資高.................. 38

      使用子查詢.................. 38

      使用視圖.................. 38

      3)查看那些員工的工資的一半都比30號部門的平均工資高.............. 38

      刪除視圖:不影響基表.............................. 38

      二. 序列........................ 38

      創建序列............. 38

      2.使用序列............... 38

      刪除序列............. 39

      三. 索引(了解)........ 39

      四. 約束(掌握)........ 39

      約束的作用......... 39

      約束的類型......... 39

      1) 非空約束(NOT NULL)................. 39

      (1) 建表時添加非空約束.................. 39

      (2) 修改表時添加非空約束.............. 39

      (3) 取消非空約束....... 39

      2) 唯一性約束(Unique)............ 40

      3) 主鍵約束(Primary Key)..... 40

      (1)主鍵的意義........... 40

      (2) 主鍵的選取原則... 40

      (3) 添加主鍵約束....... 40

      4) 外鍵約束(Foreign Key)...... 41

      (1) 添加外鍵約束....... 41

      (2) 外鍵約束對一致性的維護........... 41

      (3) 外鍵約束對性能的降低.............. 41

      5) 檢查約束(Check).............. 41

      第二部分plsql語法................. 43

      PLSQL語法............................... 44

      一.基本語法.................. 44

      1.PLSQL的注釋........ 44

      2.PLSQL程序的構成模塊.............................. 44

      3.oracle中變量的標識符許滿足以下規范:................................. 44

      1)必須以字母開頭,不能有空格.......................... 44

      2)長度不能超過30個字符.......... 44

      3)不能使用保留字...................... 44

      4)常量/變量名稱不區分大小寫,在字母后可帶數字和特殊字符#(只能帶#).................... 44

      4.基表數據類型:.... 45

      常量..................... 45

      從鍵盤獲取值...... 45

      1)獲取數值類型.......................... 45

      2)獲取字符串. 45

      7.復合數據類型:.... 46

      1.)%TYPE?? 列 46

      2) %ROWTYPE 46

      3 )記錄型....... 46

      8.表達式:............... 47

      1)數值表達式: + - * / **(乘方).... 47

      2)字符運算符: ||..... 47

      3)關系表達式: < > <= >= != like in between..... 47

      4)邏輯表達式: not and or............... 47

      5)函數表達式: to_date? to_char? to_num...... 47

      二.流程控制.................. 47

      1.條件控制............... 47

      eg:輸入值,判斷如果大于100顯示是三位數,如果小于100大于10顯示兩位數否則顯示一位數.................. 48

      eg輸入員工編號,查看該員工是否有獎金,如果有輸出有獎金,如果沒有,輸出沒獎金....... 48

      2.循環....................... 48

      1)loop基礎循環.......................... 48

      eg:循環輸出10個數字.................. 48

      2)while循環...... 49

      eg:循環輸出10個數字.................. 49

      eg:向dept表中插入50,60,70,80,90,100部門編號........... 49

      3)for循環.......... 49

      eg:循環輸出10個數字.................. 49

      三. 異常處理................ 50

      預定義異常......... 50

      eg:預定義異常案例... 50

      --輸入一個員工編號,輸出該員工的工資.................. 50

      --員工工資小于1500,加200,該員工以更新,大于的輸出超過規定值........... 50

      非預定義異常...... 51

      eg:輸入一個員工編號,刪除該部門的員工.............. 51

      3.用戶自定義異常.... 51

      1)根據員工編號,上調員工的工資,加200............... 51

      四. 函數和存儲過程..... 52

      函數..................... 52

      eg:由員工的編號查找員工的姓名... 53

      如何調用函數.......................... 53

      eg:由部門編號,輸出這個部門的人數,返回部門的工資總和....... 53

      1) 位置表示法傳遞參數.............. 53

      案例....... 53

      2) 名稱表示法傳遞參數.............. 54

      案例....... 54

      3) 混合表示法傳遞參數.............. 54

      案例....... 54

      參數默認值... 54

      刪除函數 使用drop................... 55

      存儲過程............. 55

      程序塊........... 55

      1)不帶參數的存儲過程.............. 55

      (1)調用過程的方法... 55

      eg:輸出員工7788的姓名.............. 56

      2) 帶參數的存儲過程.................. 56

      (1) in 向過程中傳遞參數.................. 56

      輸出指定員工編號的員工姓名........... 56

      根據員工的編號刪除該員工,使用自定義異常....... 56

      (2) out 調用過程有返回值.............. 57

      輸入員工編號,返回員工姓名........... 57

      (3) in out 既傳入又傳出.................. 57

      輸入數字然后輸出....... 57

      需求:根據員工編號,上調工資50%,如果上調成功,返回1,輸出成功,否則返回0,輸出失敗.............. 58

      五. 游標........................ 58

      官方定義:... 58

      老師定義:... 58

      游標的定義及使用................................. 58

      1)聲明游標..... 59

      2) 打開游標... 59

      3)提取數據..... 59

      4)關閉游標..... 59

      案例....... 59

      --eg:輸出前10條姓名和工資........... 59

      --eg:輸出工資大于1500的員工的姓名和工資....... 60

      --參數化游標.... 60

      游標的屬性......... 60

      1) %isopen..... 61

      2) %found...... 61

      3) %notfound..... 61

      4) %rowcount.... 61

      5) sql%notfound 61

      6) sql%rowcount 61

      案例....... 61

      --查詢emp表中共有多少條記錄,用游標.................. 62

      --把emp表中的書放入myemp表中,刪除myemp表中emp=7788的員工,如果找到輸出,找到這個值刪除他,并輸出刪除列幾行如果找不到,輸出為找到.............. 62

      數據庫學習-基礎-個人手稿版-詳情參見附件

      游標的for循環... 62

      1)無參數的游標for循環............. 63

      eg:查詢員工的編號,姓名,工資然后輸出........... 63

      eg:查詢部門號為20的員工的工資,工種........... 63

      2)帶默認參數的游標for循環.... 63

      eg:查詢工資在2000(默認值)以上的員工的姓名,也可以指定其他值........... 64

      六. 包............................ 64

      1.一個包是由兩個分開的部分組成:.......... 64

      1)包定義的語法:.......................... 64

      2)包體定義的部分:.................. 64

      案例....... 65

      2.包的調用............... 66

      3.刪除包................... 66

      4.數據字典:........... 66

      1)查詢包......... 66

      2)usre_source 保存包的代碼....... 66

      七. 觸發器.................... 66

      創建觸發器.......... 66

      什么時候使用觸發器:(記)................ 67

      用觸發器的優點:................................. 67

      案例:........... 67

      第三部分:Jdbc...................... 69

      一. Jdbc的簡介............ 70

      1.jdbc定義............... 70

      1)jdbc中的常見接口:.................. 70

      jdbc基礎案例....... 70

      1)java數據庫的鏈接.................. 70

      2)查看每個員工的名字,職位,工資,部門名稱,工作所在地........... 72

      3)使用jdbc創建表...................... 73

      4)使用jdbc創建序列.................. 74

      5) 將序列作為一個值,向表中插入數據.................. 75

      6) 注冊.......... 75

      7) 登陸.......... 76

      8) 使用jdbc進行分頁查詢....... 77

      10)輸入id刪除用戶.................. 81

      11) 轉賬操作. 82

      知識點總結........ 84

      1) java鏈接數據庫的步驟:....... 84

      2)事物操縱語言控制...................... 85

      二. jdbc方法封裝....... 85

      數據庫連接,關閉的封裝...................... 85

      1) 封裝類....... 85

      2) 測試類....... 86

      從文件導入連接信息.............................. 87

      1) 創建資源文件.......................... 87

      2) 封裝類....... 87

      使用連接池使多個用戶同時訪問數據庫................................. 88

      1)創建資源文件.......................... 88

      2)封裝類........ 88

      3)預處理操作. 90

      (1) 使用預處理向userinfo表中插入100條信息........... 91

      (2)通過ps查詢用戶余額,通過用戶名和密碼........... 92

      (3)用預處理進行分頁操作.............. 93

      SQL 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:詳細講解mysql 主從復制原理
      下一篇:⑥?全網首發??數據有道之數據庫技術??干貨大全【持續更新】???
      相關文章
      亚洲人成电影在线观看青青| 亚洲午夜未满十八勿入| 亚洲男人的天堂在线| 久久久久久亚洲av成人无码国产| 久久亚洲国产精品123区| 国产亚洲男人的天堂在线观看| 亚洲真人无码永久在线观看| 777亚洲精品乱码久久久久久| 亚洲国产日韩一区高清在线| 亚洲精品在线观看视频| 亚洲好看的理论片电影| 亚洲人成网站在线播放影院在线| 亚洲av鲁丝一区二区三区| 亚洲国产精品久久66| 91精品国产亚洲爽啪在线观看| 亚洲永久永久永久永久永久精品| 久久青青草原亚洲av无码app| 91在线亚洲精品专区| 亚洲国产精品成人综合久久久| 亚洲国产成人91精品| 日韩亚洲产在线观看| 亚洲精品无码久久久久YW| 亚洲heyzo专区无码综合| 国产精品日本亚洲777| 亚洲偷自拍拍综合网| 亚洲人成网站在线观看播放| 亚洲国产精品国自产拍AV| 亚洲激情中文字幕| 亚洲成av人片不卡无码| 亚洲人成77777在线观看网| 亚洲av成人无码网站…| 亚洲精品成人在线| 亚洲精品无码av人在线观看 | 理论亚洲区美一区二区三区| 国产亚洲精品美女2020久久| 久久国产成人亚洲精品影院| 亚洲成亚洲乱码一二三四区软件| 91嫩草私人成人亚洲影院| 成人区精品一区二区不卡亚洲| 亚洲AV香蕉一区区二区三区| 亚洲国产主播精品极品网红|