SQL Server 2012 T-SQL基礎教程--T-SQL查詢和編程的背景

來源:互聯網
上載者:User

標籤:style   blog   http   io   color   os   ar   使用   for   

理論背景

1. SQL:Structured Query Language, 是RDBMS(Relational Database Management Systems)的查詢和管理資料的標準語言。

2. 理解集合理論和謂詞邏輯,RDBMS基於這兩個數學分支。

3. SQL語句類別:

    Data Definition Language, DDL:資料定義語言 (Data Definition Language),處理對象的定義,包括諸如create、alter和drop等語句。

    Data Manipulation Language,DML:資料操作語言,用於查詢和修改資料,包括諸如select、insert、update、delete、truncate和merge等語句。

    Data Control Language,DCL:資料控制語言,用於定義許可權,包括諸如grant和revoke等語句。

4. 關聯式模式需要理解命題、謂詞、關係、元組和屬性等概念。

    範式: 1NF:關係(表)中的元組(行)必須是唯一的,並且屬性石原子化的。

              2NF:需滿足1NF,每個非鍵屬性必須是對整個候選索引鍵的完全函數依賴。

              3NF:需滿足2NF,所有的非鍵屬性必須依賴於非傳遞的候選索引鍵(所有非鍵屬性必須相互獨立)。

5. SQL Server體繫結構

   A:應用Application,並行資料倉儲(Parallel Data Warehouse, PDW)等

   B:盒子Box,企業內部部署的SQL Server

   C:雲Cloud,私人雲端和公用雲。Windows Azure SQL Database公用雲

6. SQL Server執行個體

    一個已經安裝的SQL Server資料庫引擎或服務。

7. 資料庫

   使用者資料庫和系統資料庫: 一個對象容器,如表、視圖、預存程序和其他對象。

   系統資料庫:master: 儲存執行個體範圍的中繼資料資訊、伺服器配置、執行個體中的所有資料庫資訊和初始化資訊。

                    resource:一個隱藏、唯讀資料庫,存數所有系統對象的定義。

                    model:用作建立新資料庫的模板,建立的每個新資料庫是由model的副本初始化建立的。希望某些對象(如資料結構)出現在新的資料庫中,則需要在model資料庫中建立這些對象或是配置(隻影響之後新穿件的資料庫)。

                   tempdb:sql server儲存臨時資料的地方,如工作表、排序空間、資料列版本設定資訊等。

                   msdb:一個稱為“SQL Server代理”的服務儲存資料的地方,sql server代理負責自動操作,包括作業、計劃和警報。還儲存database mail、service broker、備份等等

8.  建立表   

    OBJECT_ID函數用來檢查Employees表是有已經存在,接受一個對象名稱和類型作為輸入,U代表使用者表。

USE TSQL2012;IF OBJECT_ID(‘dbo.Employees‘,‘U‘) IS NOT NULL    DROP TABLE dbo.Employees;CREATE TABLE dbo.Employess(   empid             INT                     NOT NULL,   firstname       VARCHAR(30)      NOT NULL,   lastname        VARCHAR(30)      NOT NULL,   hiredate          DATE                   NOT NULL,   mgrid              INT                      NOT NULL,   ssn                  VARCHAR(20)      NOT NULL,   salary              MONEY                NOT NULL);
Create Table

9. 定義資料完整性

    主鍵約束:強制行的唯一性,每個表只能有一個主鍵,且主鍵是不允許為NULL。

ALTER TABLE dbo.Employees     ADD CONSTRANT PK_Employees     PRIMARY KEY(empid);
建立主鍵約束

    唯一約束:強制行的唯一性,允許在自己的資料庫中實現關聯式模式的備用鍵概念。同一個表內允許多個唯一約束,對欄位是否允許為空白無要求,但是sql server拒絕重複null標記。

ALTER TABLE dbo.Employees   ADD CONSTRAINT UNQ_Employees_ssn   UNIQUE(ssn);
Create Unique

    外鍵約束:用於強制參考完整性。刪除或更新被參考資料表中的行時,需要級聯cascade參考資料表,否則會操作失敗。

IF OBJECT_ID(‘dbo.Orders‘, ‘U‘) IS NOT NULL    DROP TABLE dbo.Orders;CREATE TABLE dbo.Orders(  orderid    INT   NOT NULL,  empid     INT  NOT NULL,  custid     VARCHAR(10)  NOT NULL,  qty         INT         NOT NULL,  CONSTRAINT PK_Orders     PRIMARY KEY(orderid));
Create Orders Table
ALTER TABLE dbo.Orders   ADD  CONSTRAINT FK_Orders_Employees   FOREIGN KEY(empid)   REFERENCES dbo.Employees(empid);
Create References

     Check約束:如下的約束,若嘗試更新或是插入salary的行時,會操作失敗。

ALTER TABLE dbo.Employees    ADD CONSTRAINT CHK_Employees_salary    CHECK(salary >0.00);
Create Check

     預設約束:如果插入一個行的時,沒有為行指定一個顯式值,將使用預設值。

 ALTER TABLE dbo.Orders     ADD CONSTRAINT DFT_Orders_orderts     DEFAULT(SYSDATETIME()) FOR orderts;
Create Default Check

 

SQL Server 2012 T-SQL基礎教程--T-SQL查詢和編程的背景

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.