1. SQL:結構化查詢語言的簡稱, 是關系數據庫的標准語言。SQL 是一種通用的、 功能極強的關系數據庫語言, 是對關系數據存取的標准接口, 也是不同數據庫系統之間互操作的基礎。集數據查詢、數據操作、數據定義、和數據控制功能於一體。
2. 數據定義:數據定義功能包括模式定義、表定義、視圖和索引的定義。
3. 嵌套查詢:指將一個查詢塊嵌套在另一個查詢塊的 WHERE 子句或 HAVING 短語的條件中的查詢。
4. SQL 數據定義語句的操作對象有:模式、表、視圖和索引。
5. 索引可以分為唯一索引、非唯一索引和聚簇索引三種類型。索引相關介紹可參考:【sql server】索引詳解
6. 觸發器: 觸發器是用戶定義在基本表上的一類由事件驅動的特殊過程。由服務器自動激活, 能執行更為復雜的檢查和操作,具有更精細和更強大的數據控制能力。使用 CREATE TRIGGER 命令建立觸發器。
7. 數據庫設計的6個基本步驟:需求分析,概念結構設計,邏輯結構設計,物理結構設計,數據庫實施,數據庫運行和維護。
8. 表相關
8.1 主鍵:關系型數據庫中的一條記錄中有若干個屬性,若其中某一個屬性組(注意是組)能唯一標識一條記錄,該屬性組就可以成為一個主鍵。若表中單獨一列無法成為唯一標識, 需要多個列共同標識,那么多個列的屬性組稱為這個表的主鍵。主鍵約束: 可以在建表的時候設置, 也可以對已存在的表設置:
USE WebShop GO create tablehuoying ( hy_id int not null primary key, hy_name varchar(30) notnull ); alter table huoying add constraint PK_hy_id primary key (hy_id);
8.2 外鍵:這個表中存在的其他表的主鍵,即為這個表的外鍵。外鍵約束: 在引用表(定義外鍵的表)與被引用表(外鍵引用的表)之間創建依賴關系,被引用列必須是主鍵或者唯一約束,主鍵和外鍵可以是同一列。和主鍵不同,每個表中的外鍵數目不限制唯一性,在每個表中可以有0~253個外鍵。唯一的限制是一個給定的列只能引用一個外鍵。然而,一個外鍵可以涉及多個列。一個給定的被外鍵引用的列也可以被很多表引用。
create tablerenhu ( r_id int not null primary key, r_name varchar(30) notnull, r_paibie varchar(30) notnull, h_id int not null foreign key references huoyin(h_id) ) alter tablerenwu add constraint FK_h_id foreign key (h_id)references huoyin(h_id)
8.3 約束:對表中的列進行約束, 目前支持的約束類型有:主鍵約束,外鍵約束, 唯一約束, 默認約束, 和檢查約束。主鍵約束和外鍵約束對應上面的8.1和8.2。唯一約束確保表中的一列數據沒有相同的值。與主鍵約束類似,唯一約束也強制唯一性,但唯一約束用於非主鍵的一列或者多列的組合,且一個表可以定義多個唯一約束。若在表中定義了默認值約束,用戶在插入新的數據行時,如果該行沒有指定數據,那么系統將默認值賦給該列,如果我們不設置默認值,系統默認為 NULL 。Check 約束通過邏輯表達式來判斷數據的有效性,用來限制輸入一列或多列的值的范圍。在列中更新數據時,所要輸入的內容必須滿足 Check 約束的條件,否則將無法正確輸入。比如只能輸入男或者女。
區別 | 主鍵 | 外鍵 | 索引 |
---|---|---|---|
定義 | 唯一標識一條記錄,不能有重復的,不允許為空 | 表的外鍵是另一表的主鍵, 外鍵可以有重復的, 可以是空值 | 該字段沒有重復值,但可以有一個空值 |
作用 | 用來保證數據完整性 | 用來和其他表建立聯系用的 | 是提高查詢排序的速度 |
個數 | 主鍵只能有一個 | 一個表可以有多個外鍵 | 一個表只允許有一個唯一聚集索引。 |
9. 基本SQL 語句
9.1 數據庫相關的操作
CREATE DATABASE [新建數據庫名] ON --數據文件 ( NAME='WebShop_data', --數據庫邏輯名稱 FILENAME='E:\data\WebShop_data.mdf', --數據庫物理名稱 SIZE=5, --初始大小,單位MB MAXSIZE=100, --增長上線,單位MB FILEGROWTH=2 --增長量,單位MB、% ) LOG ON --日志文件 ( NAME='WebShop_log', FILENAME='E:\data\WebShop_log.ldf', SIZE=2, MAXSIZE=500, FILEGROWTH=10% )
ALTER DATABASE [要修改的數據庫名(邏輯名稱)]
ADD LOG FILE --添加一個日志文件
(
NAME='WebShop_log1',
FILENAME='E:\data\WebShop_log1.ldf'
)
ALTER DATABASE [要修改的數據庫名]
MODIFY FILE --修改文件(數據文件、日志文件)
(
NAME='WebShop_data', --NAME='WebShop_log'
MAXSIZE=500 --修改上限
)
USE master
GO
DROP DATABASE WebShop
9.2 基礎運算符
LIKE(相似)運算符 IN(匹配)運算符 介於之間BETWEEN運算符 ORDER BY(排序規則) GROUP BY(聚合信息) 使用GROUP BY 子句時,必須要使用聚合函數 聚合函數: SUM, AVG等 COUNT(*) 查詢中返回的行數 HAVING 在group by 之前篩選用where,篩選的是分組前的數據;在group by 之后篩選用having,篩選的是分組后的數據 DISTINCT 去除重復行 TOP 查詢前*行的的數據 ISNULL 查詢,判斷如果是null值,則替換為其他 select isnull(name,'sdsdsdsds')from ren cast 查詢時將列的數據類型轉化成其他類型,可以和isnull一起使用 select ISNULL(CAST(gonghaoasvarchar(30)),'sdsd')from ren
9.3 數據庫分頁
9.4 Join
10. 視圖
create view vw_goods as select * from goods where g_Price>4000; alter viewv w_goods as select * from goods where g_Price<4000; drop view vw_goods
11. 存儲過程
11.1 sql server 存儲過程 procedure
11.2 特點: 有點類似與函數,速度相對比較快,因為是提前編譯好的,省去了編譯的步奏。
create proc spEmployees as select * from Employees
12. 觸發器
13. 備份