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

时间: 2024-08-03 14:01:43

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

SQL Server 2012笔记分享-4:理解SQL server实例

每个单独的SQL server实例都有一个windows进程:sqlservr.exe,一个windows下能安装多个实例,多个实例会有多个sqlservr.exe进程. 一个SQL实例在后台对应一个服务,如果多个应用程序放在一个实例里,如果某个应用开发的程序有问题,比如死循环,会导致服务停止,从而导致所有数据库无法工作.可以采用多实例分开方式. 一个服务器上可以装多个实例,标准版(16个)和企业版(50个)支持的实例数量不同. SQL server实例的类型 (一)默认实例和命名实例 1.服务

SQL Server调优系列基础篇(子查询运算总结)

原文:SQL Server调优系列基础篇(子查询运算总结) 前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴趣的童鞋可以点击查看. 本篇我们介绍关于子查询语句的一系列内容,子查询一般是我们形成复杂查询的一些基础性操作,所以关于子查询的应用方式就非常重要. 废话少说,开始本篇的正题. 技术准备 数据库版本为SQL Server2008R2,利用微软

SQL Server 2012安装图文教程

解析SQL Server 2012安装中心 当系统打开"SQL Server安装中心",则说明我们可以开始正常的安装SQL Server 2012了. SQL Server安装中心 在微软提供的"SQL Server安装中心"界面里,我们可以通过"计划"."安装"."维护"."工具"."资源"."高级"."选项"等进行系统安装.

SQL Server 2012 实现分页新语法

最近一直在看SQL Server的书,不过看的都是基础的查询流,查询在工作中用到的最多,所以能正确地查询出想要的数据也是很重要的嘛. 在书上看到在SQL Server 2012新增了一种实现分页的查询方法,感觉比原来的方便一点,因此记录一下,如能帮助到大家,也是非常开心的~ 以前分页的时候,我基本都是用ROW_NUMBER()函数,和在WHERE语句中用BETWEEN AND 来实现的:每次都得写子查询,感觉挺麻烦的,例: SELECT * FROM ( SELECT ID, ROW_NUMBE

SQL Server 2012 T-SQL 新特性

原文:SQL Server 2012 T-SQL 新特性 序列 Sequence SQL Server 现在将序列当成一个对象来实现,创建一个序列的例子语法如下: CREATE SEQUENCE DemoSequence START WITH 1 INCREMENT BY 1; 使用序列的方法如下所表达的: SELECT VALUE FOR DemoSequence 序列与以前的种子列(identity)的区别很明显,种子列只限于当前列,而序列是一个对象层面的实现,则可以在多个表之间共享.这一点

SQL Server 2012 Managed Service Account

原创地址:http://www.cnblogs.com/jfzhu/p/4007472.html 转载请注明出处 (一)Windows服务使用的登陆帐号 Windows服务只有登录到某一帐户的情况下才能访问操作系统中的资源和对象.服务一般不要更改默认的登录帐户,否则可能导致服务失败.如果选定帐户没有足够的权限,Microsoft 管理控制台(MMC)的服务管理单元将自动为该帐户授予登录所管理计算机中服务的用户权限.Windows Server 的服务可以用域帐户或者三个内置的本地帐户作为各系统服

SQL Server 2012笔记分享-2:主要服务器组件

SQL server 2012主要包括如下的五大组件 SQL Server数据库引擎 SQL Server 数据库引擎包括数据库引擎(用于存储.处理和保护数据的核心服务).复制.全文搜索.用于管理关系数据和 XML 数据的工具以及 Data Quality Services (DQS) 服务器. 分析服务 Analysis Services 包括用于创建和管理联机分析处理 (OLAP) 以及数据挖掘应用程序的工具. 报表服务 Reporting Services 包括用于创建.管理和部署表格报表

SQL Server 2008 R2升级到SQL Server 2012 SP1

1.建议对生产环境对的数据库升级之前做好备份,以防不测. 2.从SQL Server 2008 R2 升级到SQL Server 2012 SP1,需要先安装SQL Server 2008 R2 的SP1 或SP2 补丁包,在此运行安装已经下载好的SP2 补丁包,如图 3. SQL Server 2008 R2 更新运行检查,如图 4. 接受许可条款,如图 5. 选择功能,如图 6. 检查正在使用的文件,如图 7. 已准备好更新,选择"更新",如图 8. 更新完成,选择"关闭

SQL Server 2012 Express LocalDB

微软最新推出的 SQL Server 2012 Express LocalDB 是一种 SQL Server Express 的运行模式,特别适合用在开发环境使用,也内置在 Visual Studio 2012 之中. 关于 SQL Server 2012 Express LocalDB 的运作方式 在安装 LocalDB 时会复制一个 SQL Server Express 实例所需的最少文件,基本上 LocalDB 几乎等同于完整的 SQL Server Express 数据库引擎,且 Loc

SQL Server 2012不支持从SQL Server 2000的备份进行还原

错误: dbbackup failed: Unable to restore database 'ppt'Not valid backupThe database was backed up on a server running version 8.00.2039. That version is incompatible with this server, which is running version 11.00.3000. Either restore the database on