您的位置:首页 > 数据库

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

2014-10-27 16:18 393 查看
理论背景

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.Orders
ADD CONSTRAINT DFT_Orders_orderts
DEFAULT(SYSDATETIME()) FOR orderts;


Create Default Check
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: