数据库系统概念学习笔记2
視圖 view
直接操作數據庫時,是在邏輯模型層操作的,即給定的集合中的關系都是實實在在存儲在數據庫中的
出于安全考慮,我們要隱藏特定的數據
在SQL中,允許定義虛關系,他在概念上包含查詢的結果,虛關系并不預先進行計算并存儲,而是使用虛關系的時候才通過執行查詢,被計算出來
不是邏輯模型的一部分,但作為虛關系對用戶可見的 關系稱為視圖
定義視圖
mysql> create view abc as #定義視圖-> select ID,name,dept_name-> from instructor; Query OK, 0 rows affected mysql> select * from abc; #SQL查詢中使用視圖事務
一、事務概念
事務是一種機制、是一種操作序列,它包含了一組數據庫操作命令,這組命令要么全部執行,要么全部不執行。因此事務是一個不可分割的工作邏輯單元。在數據庫系統上執行并發操作時事務是作為最小的控制單元來使用的。這特別適用于多用戶同時操作的數據通信系統。例如:訂票、銀行、保險公司以及證券交易系統等。
二、事務屬性
事務4大屬性:
1 原子性(Atomicity):事務是一個完整的操作。不可分割
2 一致性(Consistency):當事務完成時,數據必須處于一致狀態。
3 隔離性(Isolation):對數據進行修改的所有并發事務是彼此隔離的。
4 持久性(Durability):事務完成后,它對于系統的影響是永久性的。
三、創建事務
T-SQL中管理事務的語句:
1 開始事務: begin transaction
2 提交事務:commit transaction
3 回滾事務: rollback transaction
事務分類:
1 顯式事務:用begin transaction明確指定事務的開始。
2 隱性事務:打開隱性事務:set implicit_transactions on,當以隱性事務模式操作時,SQL Servler將在提交或回滾事務后自動啟動新事務。無法描述事務的開始,只需要提交或回滾事務。
3 自動提交事務:SQL Server的默認模式,它將每條單獨的T-SQL語句視為一個事務。如果成功執行,則自動提交,否則回滾。
完整性約束
防止對數據的意外破壞,通常被看作是數據庫模式設計過程的一部分
eg:表中 教師姓名不能為空 not null
* not nullname varchar(20) not null* unique* checkmysql> create table hehehe (id varchar(10),choice varchar(10),check (choice in ('a','b','c','d'))); Query OK, 0 rows affectedSQL的數據類型和模式
日期和時間類型
* date 年月日 * time 時分秒 * timestamp date和 time 的組合 date '2016-07-29' time '09:03:52' timestamp '2001-04-25 03:02:01'默認值
SQL允許屬性指定默認值
創建索引:
索引是一種數據結構,允許數據庫系統高效的找到關系中的那些在索引屬性上給定值的元祖
而不用掃描所有元祖
創建表的擴展:
create table stu1 like student; #創建一個模式相同的表create table stu2 as ( #將查詢結果新建為一個表select name,sexfrom student)授權:
GRANT語句的一般格式:
GRANT <權限>[,<權限>]…
[ON <對象類型> <對象名>]
TO <用戶>[,<用戶>]…
[WITH GRANT OPTION];
語義:將對指定操作對象的指定操作權限授予指定的用戶
收回權限用 revoke
與創建角色 結合
create role teacher;
角色可以像用戶那樣被授予權限
grant select on takes to teacher
觸發器 trigger
指定的事情發生,相應的條件滿足,執行觸發器
兩個要求
* 指明什么條件下執行觸發器 * 觸發器執行的動作觸發器不能執行數據庫以外的更新
觸發器可以用來復制或者備份數據庫
轉載于:https://www.cnblogs.com/tyzZ001/p/5754769.html
總結
以上是生活随笔為你收集整理的数据库系统概念学习笔记2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云直播PHP SDK如何使用
- 下一篇: 贪心分治