首页 > 代码库 > SQL Server 2012 T-SQL基础教程--T-SQL查询和编程的背景

SQL Server 2012 T-SQL基础教程--T-SQL查询和编程的背景

理论背景

1. SQL:Structured Query Language, 是RDBMS(Relational Database Management Systems)的查询和管理数据的标准语言。

2. 理解集合理论和谓词逻辑,RDBMS基于这两个数学分支。

3. SQL语句类别:

    Data Definition Language, DDL:数据定义语言,处理对象的定义,包括诸如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查询和编程的背景