笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-01 T-SQL查询和编程基础

理论

SQL有几种不同类型的语句,包括数据定义语言(DDL,Data Definition Language)、数据处理语言(DML,Data Manipulation Language),以及数据控制语言(DCL,Data Control Language)。DDL用于处理数据对象的定义,包括的语句有CREATE、ALTER,以及DROP。DML用于查询和修改数据,包括的语句有SELECT、INSERT、UPDATE、DELETE,以及MERGE。DCL用于处理权限管理,包括的语句有GRANT和REVOKE。

第一范式:第一范式要求表中的行必须是唯一的,属性是原子的。
第二范式:第二范式包括两条规则,首先数据必须满足第一范式,其次要求非键属性和候选键属性之间必须满足一定的条件。
第三范式:首先,数据必须满足第二范式,其次,所有非键属性必须非传递依赖于候选键。

 

代码

 

--创建数据库

IF DB_ID('testdb') IS NULL 

    CREATE DATABASE testdb;

GO



--创建表

USE testdb;



IF OBJECT_ID('dbo.Employees', 'U') IS NOT NULL    --类型'U'代表用户表

    DROP TABLE dbo.Employees;



CREATE TABLE dbo.Employees

    (

      empid INT NOT NULL ,

      firstname VARCHAR(30) NOT NULL ,

      lastname VARCHAR(30) NOT NULL ,

      hiredate DATE NOT NULL ,

      mgrid INT NULL ,

      ssn VARCHAR(20) NOT NULL ,

      salary MONEY NOT NULL

    );



-- 主键约束Primary key

ALTER TABLE dbo.Employees

ADD CONSTRAINT PK_Employees

PRIMARY KEY(empid);



-- 唯一约束Unique

ALTER TABLE dbo.Employees

  ADD CONSTRAINT UNQ_Employees_ssn

  UNIQUE(ssn);

  

  -- 外键约束Foreign key

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,

  orderts   DATETIME    NOT NULL,

  qty       INT         NOT NULL,

  CONSTRAINT PK_Orders

    PRIMARY KEY(OrderID)

);



ALTER TABLE dbo.Orders

  ADD CONSTRAINT FK_Orders_Employees

  FOREIGN KEY(empid)

  REFERENCES dbo.Employees(empid);



ALTER TABLE dbo.Employees

  ADD CONSTRAINT FK_Employees_Employees

  FOREIGN KEY(mgrid)

  REFERENCES Employees(empid);

 

你可能感兴趣的:(SQL Server 2008)