數據庫基本知識點梳理


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

    sql的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. 備份

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM