1. 程式人生 > 其它 >Pytest 結合資料驅動-excel

Pytest 結合資料驅動-excel

放在開頭

一些英文

cascade:級聯
decimal:十進位制(帶小數)

1、記錄和欄位的區別

簡要:欄位是列,記錄是行
在關係型資料庫中,表就是一個數據的集合體,簡單地理解就是一個二維(行與列有簡單對應關係的)資料表格。
欄位是指表格中的列,即具有相同屬性的資料集合,每個欄位都必須有一個唯一的名稱,稱為欄位名。例如,在表格中,如果用一列存放“性別”,“性別”就是一個欄位名。
記錄是指表格中的行,它由若干個欄位值構成。例如,用於記錄每個成員的表中,可以有暱稱、年齡、性別、電子郵件等欄位,新增進表中的每一個成員,都包含有暱稱、年齡、性別、電子郵件這些資料,每個成員的這些資料構成一條記錄。

2、SQL資料集的基本功能

(1)資料查詢語言:通過選擇、投影和等值連線運算完成的
(2)資料操縱語言:
主要包括以下3個方面。
(1)向表中新增新的記錄INSERT。
(2)對錶中已有資料進行修改UPDATE。
(3)刪除表中的記錄DELETE
對資料庫其中的物件和資料執行訪問(可以理解為對錶中元素進行操作)
(3)資料定義語言:通過資料定義語言實現,它用來定義資料的邏輯結構
包括定義基表,檢視,索引,基本的DDL包括三類,即定義,修改,刪除
分別對應create、alter、drop三條語句
(4)資料控制功能:資料庫的控制是指資料庫的安全性和完整性的控制
住:資料操縱語言是操作表中的資料,而是資料定義語言是操作表

3、SQL是一個非過程化的語言。

因為它一次處理一個記錄,對資料提供自動導航。
(1)這裡的非過程化指的並不是程式語言裡面的那個面向過程,而是資料庫的Data Manipulation Language(DML)這類語言的一個分類。
DML這類語言分為兩個大類,宣告式(Declarative DMLs)和過程式(Procedural DMLs)。
前者我們也稱為非過程式的DML(Non-procedural DMLs)。
兩者之間的區別是,宣告式的DML只需要宣告我們需要什麼樣的資料,像是SQL就是這樣的語言。
而過程式DML不僅需要宣告需要什麼樣的資料,而且需要給出如何得到資料的方法,類似的DML是relational algebra。
(2)SQL“非過程化”指的是在使用其進行資料操作中,SQL的操作過程由DBMS自動完成
使用者只需提出“做什麼”,而不必知道“怎麼做”,無需瞭解存取路徑等。所以稱其為非過程化語言。
(3)還有可以理解為越是接近硬體底層的越過程化,因為你要“教”機器怎麼做。
而sql語言。你可以不懂磁碟,不懂扇區,不懂二進位制檔案的存放情況。
只要告訴資料庫管理系統,你要取資料,就可以了
(4)大佬的個人理解:
非過程化其實就是:不需要你告訴資料庫管理系統(也就是常說的SQLServer、db2、Oracle、mysql那些),怎麼去做
你只要告訴它們:你要做這個東西了,它們就會自己內部處理
形象一點就是你在查資料的時候不需要告訴他們到哪個物理檔案,甚至哪個扇區的磁軌上讀資料。
這裡其實突出的是“高度”。而不僅僅是過程化。
一般的過程化更多的是像C++的指標那種。還要細化到堆疊等等。
如何迴圈讀每一條資料,讀出來還要幹什麼。不過我覺得真正的過程化語言可能就是機器語言或者彙編,

4、不能用比較運算子(>,<,!=,==)與NULL比較

因為NULL是空值 ,是一個不確定的。

5、檢視最終是定義在基本表之上的,對檢視的一切操作最終也要轉換為對基本表的操作。

檢視的好處:
l 檢視能夠簡化使用者的操作
l 檢視是使用者能以多種角度看待同一資料
l 檢視對重構資料庫提供了一定程度的邏輯獨立性
l 檢視能夠對機密資料提供安全保護

6、資料庫三級模式

模式對應基本表,外模式對應檢視,內模式用於儲存檔案

7、在檢視上不能完成的操作是( )?

A.更新檢視
B.查詢
C.在檢視上定義新的表
D.在檢視上定義新的檢視
解析:
檢視是由從資料庫的基本表中選取出來的資料組成的邏輯視窗,它不同於基本表,它是一個虛擬表,
其內容由查詢定義。
在資料庫中,存放的只是檢視的定義而已,而不存放資料,這些資料仍然存放在原來的基本表結構中。
只有在使用檢視的時候,才會執行檢視的定義,從基本表中查詢資料。可以更新檢視,也可以在檢視上定義新的檢視,但是不能在檢視上定義新的表。
所以,本題的答案為C。
熱評:
檢視是基於資料表的一種查詢視窗。怎麼可能在這種查詢視窗中再建資料表呢?
就像你可以在房子上開窗,但你不能在窗子上蓋個房子吧?

8.五個基本的關係代數運算

關係代數運算是以集合操作為基礎的運算,其五種基本運算是並、交、差、投影和選擇

9.資料模型

通常由 資料結構、資料操作和資料的完整性約束條件 三部分組成。

10.選擇、投影,複製

選擇是選出行的某一些;投影是選擇列的某一些;複製查詢出來的表僅僅是一個虛表,不存在的表。

11.模式

建立模式就相當於建立了資料庫的一個名稱空間
模式(schema) 是 資料庫體系結構中的一個節點, 是為使用者建立一個架構(名稱空間) 是用於 在一個 大專案中的 各個 小專案每個 小專案的表, 放在 各自的 模式(schema) 下面。這樣, 遇到 小專案裡面. 有 相同名字的 表的話, 不會發生衝突.

在學習SQL的過程中,會遇到一個讓你迷糊的Schema的概念。實際上,schema就是資料庫物件的集合,這個集合包含了各種物件如:表、檢視、儲存過程、索引等。為了區分不同的集合,就需要給不同的集合起不同的名字,預設情況下一個使用者對應一個集合,使用者的schema名等於使用者名稱,並作為該使用者預設schema。所以schema集合看上去像使用者名稱。

如果把database看作是一個倉庫,倉庫很多房間(schema),一個schema代表一個房間,table可以看作是每個房間中的儲物櫃,user是每個schema的主人,有操作資料庫中每個房間的權利,就是說每個資料庫對映的user有每個schema(房間)的鑰匙。

我們訪問一個表時,沒有指明該表屬於哪一個schema中的,系統就會自動給我們在表上加上預設的sheman名。在資料庫中一個物件的完整名稱為schema.object,而不屬user.object。

在MySQL中建立一個Schema和建立一個Database的效果好像是一樣的,但是在sqlserver和orcal資料庫中效果又是不同的。

在SQL Server 2000中,user和schema總有一層隱含的關係,讓我們很少意識到其實user和schema是兩種完全不同的概念,假如我們在某一資料庫中建立了使用者Bosco,那麼此時後臺也為我們預設的建立了schema【Bosco】,schema的名字和user的名字相同。

在SQL Server 2005中,為了向後相容,當用sp_adduser儲存過程建立一個使用者的時候,sqlserver2005同時也建立了一個和使用者名稱相同的schema,然而這個儲存過程是為了向後相容才保留的,當我們用create user建立資料庫使用者時,我們可以用該使用者指定一個已經存在的schema作為預設的schema,如果我們不指定,則該使用者所預設的schema即為dbo schema,dbo房間(schema)好比一個大的公共房間,在當前登入使用者沒有預設schema的前提下,如果你在大倉庫中進行一些操作,比如create table,如果沒有制定特定的房間(schema),那麼你的物品就只好放進公共的dbo房間(schema)了。但是如果當前登入使用者有預設的schema,那麼所做的一切操作都是在預設的schema上進行。

在Oracle資料庫中不能新建一個schema,要想建立一個schema,只能通過建立一個使用者的方法解決,在建立一個使用者的同時為這個使用者建立一個與使用者名稱同名的schem並作為該使用者的預設shcema。即schema的個數同user的個數相同,而且schema名字同user名字一一 對應並且相同。

12.