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

歡迎訪問 生活随笔!

生活随笔

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

数据库

SQL老黄牛

發布時間:2023/12/16 数据库 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL老黄牛 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SQL進階

  • 事務 transaction
    • 特性ACID
    • 隔離級別
    • 事務處理
  • 約束 constaints
  • 表關聯 association
    • 表的關系分為四種
    • 創建表
    • 多表聯查 join
    • 笛卡爾積
    • join
      • 多表聯查案例
  • 子查詢(嵌套查詢)
    • 單行子查詢 =
    • 多行子查詢 in
  • 索引 index
    • 索引分類
    • 查看索引
    • 創建普通索引
    • 創建唯一索引
    • 創建復合索引
    • 刪除索引
    • 為何索引快
    • 優點
    • 缺點

事務 transaction

數據庫事務(Database Transaction) 是指作為單個邏輯工作單元執行的一系列操作,要么完全地執行,要么完全地不執行
簡單來說:
事務就是將一堆的SQL語句(通常是增刪改)綁定在一起執行,要么都執行成功,要么都執行失敗,即都執行成功才算成功,否則這些SQL語句就會恢復到執行之前的狀態。

特性ACID

  • 原子性 Atomicity
    一個事務中的所有操作,要么全部成功,要么全部不成功,不會結束在中間某個環節。
    事務在執行過程中如果發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。
  • 一致性 Consistency
    在事務開始之前和事務結束以后,數據庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設規則,這包含資料的精確度、串聯性以及后續數據庫可以自發性地完成預定的工作。
  • 隔離性 Isolation
    數據庫允許多個并發事務同時對其數據進行讀寫和修改的能力,隔離性可以防止多個事務并發執行時由于交叉執行導致數據的不一致。
  • 持久性 Durability
    事務處理結束后,對數據的修改就是永久的,即便系統故障也不會丟失。

隔離級別

  • 讀未提交 Read Uncommitted
    安全性最差,可能發生并發數據問題,性能最好
  • 讀提交 Read Committed
    Oracle默認的隔離級別
  • 可重復讀 Repeatable Read
    MySQL默認的隔離級別,安全性較好,性能一般
  • 串行化 Serializable
    表級鎖,讀寫都加鎖,效率低下,安全性高,不能并發在

事務處理

  • 在MySQL 中只有使用了 innodb 數據庫引擎的數據庫或表 才支持事務
  • 事務處理可以用來維護數據的完整性,保證成批的SQL 語句要么全部執行,要么全部不執行
  • 事務用來管理 insert、update、delete 語句,因為這些操作才會破壞數據,select 語句是不會的
  • MySQL 默認數據庫的事務是開啟的,執行SQL后自動提價
  • MySQL的事務也可以改成手動提交,那就有兩個步驟:
    先開啟,寫完SQL 后,再手動提價。

開啟事務

start transaction; begin;

結束事務

commit; -- 提交事務 rollback; -- 回滾事務

約束 constaints

  • 非空約束 not null
  • 唯一約束 unique
  • 主鍵約束 primary key
  • 外鍵約束 foreign key
  • 默認約束 default
  • 檢查約束 check

表關聯 association

表的關系分為四種

  • 一對一
    QQ和QQ郵箱,員工和員工編號
  • 一對多
    部門和員工,用戶和訂單
  • 多對一
    員工和部門,訂單和用戶
  • 多對多
    老師和學生,老師和課程

創建表

  • 表都以s結束,標識復數
  • 字段多以表的首字母作為開頭,在多表聯查時,方便標識出哪個表的字段

多表聯查 join

笛卡爾積

select * from dept,emp;

多表查詢都是先生成笛卡爾積,再進行數據的篩選過濾

join

  • 內連接 inner join
  • 左外連接 left join
  • 右外連接 right join

多表聯查案例

案例: 列出research 部門下的所有員工的信息

select * from emp where deptno=(select deptno from dept where dname="research");

使用 inner join 實現上面的案例

select d.dname,e.ename,e.job from emp e inner join dept d on e.deptno = d.deptno where d.dname = "research";

select d.dname,e.ename,e.job
from emp e inner join dept d
on e.deptno = d.deptno
where d.dname = “research”;

  • inner join 兩邊都對應有記錄的才展示,其他去掉
  • left join 左邊表中的數據都出現,右邊沒有數據以null填充
  • right join 右邊表中的數據都出現,左邊沒有數據以null填充

子查詢(嵌套查詢)

單行子查詢 =

select * from emp where deptno = (select deptno from emp where ename="tony"); --查詢tony所在的部門的所有人信息

多行子查詢 in

select * from emp where job in("經理","員工"); select * from emp where job in(select job from emp where ename="leo");除了leo誰還從事該工作 select * from emp where job in(select distinct job from emp);

索引 index

定義
索引是一種排好序的快速查找的數據結構,它幫助數據庫高效的進行數據的檢索。在數據之外,數據庫系統還維護著特定查找算法的數據結構(額外的存儲空間),這些數據結構以某種方式指向數據,這樣就可以在這些數據結構上實現高效的查找算法。這種數據結構就叫做索引。

一般來說索引本身也很大,不可能全部存儲在內存中,因此往往以索引文件的形式存放在磁盤中。目前大多索引都采用BTree樹方式構建。

索引分類

  • 單值索引:
    一個索引只包括一個列,一個表可以有多個列
  • 唯一索引:
    索引列的值必須是唯一,但允許有空值;主鍵會自動創建唯一索引
  • 復合索引:
    一個索引同時包含多列

查看索引

主鍵會自動創建索引

show index from dept

創建普通索引

create index loc_index on dept(loc); alter table dept add index loc_index(loc);

創建唯一索引

create unique index loc_unique_index on dept(loc); alter table dept add unique index loc_unique_index(loc);

創建復合索引

create index emp_composite_index on emp(empno,ename); alter table emp add index emp_composite_index(empno,ename);

刪除索引

alter table dept drop index loc_index

為何索引快

首先,索引表是排序了,可以類似二分查找,非常有效的提高了查詢的速度。
先找到事先排序好的索引表中檢索查詢,找到其主鍵后,就直接定位到記錄所在位置,然后直接返回這條數據。

  • 排序、tree結構、類似二分查找
  • 索引表小

優點

  • 索引是數據庫優化
  • 表的主鍵會默認自動創建索引
  • 每個字段都可以被索引
  • 大量降低數據庫的IO磁盤讀寫成本,極大提高了檢索速度
  • 索引事先對數據庫進行了排序,大大提高了查詢效率

缺點

  • 索引本身也是一張表,該表保存了主鍵與索引字段,并指向實體表的記錄,所以索引列也要占用空間
  • 索引表中的內容,在業務表中都有,數據是重復的,空間是浪費的
  • 雖然索引大大提高了查詢的速度,但對數據的增、刪、改的操作需要更新索引表信息,如果數據量非常巨大,更新效率就很慢,因為更新表時,MySQL不僅要保存數據,也要保存一下索引文件
  • 隨著業務的不斷變化,之前建立的索引可能不能滿足查詢需求,需要消耗我們的時間去更新索引

總結

以上是生活随笔為你收集整理的SQL老黄牛的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲精选在线观看 | 日韩在线视频中文字幕 | a级在线观看 | 亚洲一二区视频 | 中文字幕一区二区三区四区免费看 | 日韩av专区片| 国产清纯白嫩初高中在线观看性色 | 精品一区二区在线视频 | 第一页综合 | www黄色网址 | 亚洲婷婷在线 | 久久有精品| 蜜臀99久久精品久久久久小说 | 国产精品色哟哟 | 黄瓜视频成人 | v天堂在线 | 久久久国产片 | 青青草成人影视 | 久久两性视频 | 中文字幕 国产精品 | 日韩理论片在线观看 | 国产精品高清在线 | 一区二区三区免费在线 | 国产高清视频一区 | 特大黑人巨交吊性xxxx视频 | 97人人在线 | 亚洲精品~无码抽插 | 色香av| 已满十八岁免费观看全集动漫 | 红桃视频国产 | 国产亚洲第一页 | 免费看一级黄色大片 | 免费国产在线视频 | av导航网站 | 亚洲AV无码国产精品国产剧情 | 日本欧美色 | 亚洲经典一区 | 国产精品xxx | 欧美精品第1页 | 午夜av免费看 | 99一区二区 | 免费在线播放毛片 | 未满十八18禁止免费无码网站 | 国产成人区 | 两性午夜视频 | 日韩欧美亚洲一区二区三区 | 成年人小视频 | 69精品无码成人久久久久久 | 久久中文字幕av | 大陆av在线 | 亚洲午夜精品视频 | 天天想夜夜操 | 91精品国产一区二区三竹菊影视 | 四季av中文字幕 | 国产黄在线免费观看 | youjizz亚洲女人| 国产一级免费大片 | 日韩av片在线看 | 风间由美在线观看 | www.久久久久久久久 | 男女av| 97超碰免费观看 | 中国女人真人一级毛片 | 手机看片1024日韩 | 精品在线小视频 | 九九视频在线免费观看 | 花房姑娘免费观看全集 | 精品一区三区 | 欧美老熟妇xb水多毛多 | 国产精品不卡一区二区三区 | 亚州av在线播放 | 91中文| 在线观看羞羞漫画 | 亚洲精品国产欧美在线观看 | 欧日韩不卡在线视频 | 中文字幕精品一区二区精品 | 一级视频在线播放 | 国产免费一区二区三区最新不卡 | 欧美视频在线观看一区二区三区 | 欧美亚洲精品在线观看 | av电影在线观看网址 | 日本一级片在线播放 | 中文字幕人妻丝袜二区 | 亚洲午夜伦理 | 秋霞欧美在线观看 | 视频在线日韩 | 国语对白做受欧美 | 女同性69囗交 | www国产精品内射熟女 | 国产精品美女久久久免费 | 黄色片免费观看 | 91呦呦 | 一本色道久久综合无码人妻 | 国产精品久久9 | 一个人看的www视频在线观看 | 欧美中文一区 | 人人澡超碰碰97碰碰碰 | 狠狠撸狠狠操 | 狠狠做深爱婷婷久久综合一区 |