日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

【数据库】《SQL必知必会 4th》部分笔记

發布時間:2023/12/13 数据库 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数据库】《SQL必知必会 4th》部分笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

9.匯總數據

count(*) 包括空

count(name) 不包括空

?

10.分組數據

group by 分組

having 過濾分組

where 過濾行

11.子查詢

select .. from .. where in (select ...)

由內向外處理

A.子查詢過濾

作為子查詢的語句只能查詢單個列。

B.作為計算字段使用子查詢

select

cust_name,

cust_state,

(select count(*) from orders where orders.cust_id=customer.cust_id))as orders

from customers

order by cust_name;

12.聯結

A.cross join(叉連接)

沒有where的話,會返回笛卡爾積。

B.inner join(內連接)首選。

連接處理耗費資源,連接的表越多,性能下降越厲害。

但是,處理連接比處理子查詢快得多。

C.self join(自連接)

D.natural join(自然連接)

E.out join(外連接)

  left join

  right join

  full outer join

注意:1).一般使用內連接

   2).總是提供連接條件,否則笛卡爾積。

   3).采用不同的連接(inner left right)條件測試,排查故障方便。

14.組合查詢(UNION)

15.插入數據

A.插入檢索出的數據(到已有的表)

  INSERT INTO

B.從一個表復制到另一個表(新表)

  SELECT INTO  

  select * into custCopy from customers

16.更新與刪除數據

A.使用update、delete一定不要忘了where!!!

B.有的update、delete需要權限。

C.一定要使用update、delete之前,要先select看看!!!

17.創建和操縱表

create table student

(

id int not null, 

name varchar(20)

);

ALTER TABLE student add age int;

ALTER TABLE student drop column age;

DROP TABLE student;

18.視圖。

A.什么使用視圖?

  1).重用sql

  2).簡化sql操作

  3).使用表的一部分而不是整個表

  4).保護數據

  5).更改數據格式和表示。

  視圖可以返回與底層表的表示和格式不同的數據。

B.視圖規則與限制

C.創建視圖

CREATE VIEW studentView as (select ...)

  1)簡化復雜連接

  2)格式化檢索出的數據

  3)過濾不想要的數據

19.存儲過程。

A.簡介

  一些復雜的操作需要多條語句才能完成。

  可將其視為批文件,雖然他們的作用不僅限于批處理。

B.為什么?

  1)通過把處理封裝在一個易用的單元中,簡化復雜的操作。

  2)由于不要求反復建立一系列處理步驟,保證了數據的一致性。防止錯誤。步驟越多,出錯的可能性越大。

    如果所有開發人員都是用同一存儲過程,則所使用的代碼都是相同的。

  3)簡化對變動的管理。安全性。

  4)存儲過程通常以編譯過的形式存儲,提高性能。

  5)編寫更靈活的代碼

C.好處

  簡單、安全、高性能

D.缺陷

  1)不易移植

  2)編寫存儲過程比編寫基本sql復雜,需要更高的技能,更豐富的經驗。

?

E.執行存儲過程

  EXECUTE

F.創建存儲過程

  create procedure mailingListCount(ListCount out Integer)

  is v_rows Integer;

  begin?

    select count(*) into v_rows

    from customers

    where not cust_email is null;

    ListCount :=vrows;

  end;

var ReturnValue Number

exec?mailingListCount(:ReturnValue);

select?ReturnValue;?

20.管理事務處理

事務處理是一種機制,用來管理必須成批執行的sql操作,保證數據庫不包含不完整的操作結果。

A.事務處理

事務(transaction)

回退(rollback)

提交(commit)

保留點(savepoint)

B.控制事務處理

?

21.使用游標

22.高級sql特性

(22.1)約束

  A.主鍵約束

  B.外鍵約束

    1)外鍵是表中的一列,其值必須列在靈異表的主鍵中。

    2)外鍵是保證引用完整性的及其重要部分。

    3)定義

      alter table orders?

      add constraint foreign key(cust_id)

      references customers(cust_id)

    4)外鍵有助防止意外刪除

    5)級聯刪除

  C.唯一約束

  D.檢查約束

(22.2)索引

索引用來排序數據以加快搜索和排序操作的速度。想象一本書后的索引。

可以在一個或多個列上定義索引,使DBMS保存其內容的一個“排過序”的列表。

A.索引改善查詢select操作性能,降低insert、update、delete操作性能,在執行這些操作時,DBMS必須動態更新索引。

B.索引可能占用大量存儲空間。

C.并非所有數據都適合做索引。取值不多的數據不需要索引。

D.索引用于數據過濾和數據排序。經常排序數據適合索引。

E.索引可以定義多個列。

F.用法:

create index product_name_index

on products(product_name);

G.索引必須唯一命名

H.索引效率歲數據增加而變化,過去創建的某個理想的索引經過幾個月的數據處理后可能變得不再理想。

  最好定期檢查索引,并根據需要調整更新索引。

(22.3)觸發器

觸發器是特殊的存儲過程,他在特定的數據庫活動發生時自動執行。觸發器可以與特定表上的insert、update、delete操作相關聯。

A.觸發器可以在特定操作執行之前或之后執行。

B.用途:

  1)保證數據一致

  2)基于某個表的變動在其他表上執行活動。

    比如,更新或刪除一行時將跟蹤記錄寫入某個日記表。

  3)進行額外的驗證并根據需要回退數據。

  4)計算計算列的值或更新時間戳。

C.寫法

  create trigger customer_state

  on customers for insert,update

  as update customers set....

(22.4)數據庫安全

?

?

?

?

?

 

?

轉載于:https://www.cnblogs.com/CESC4/p/8481894.html

總結

以上是生活随笔為你收集整理的【数据库】《SQL必知必会 4th》部分笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。