最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

观速讯丨T-SQL基础教程Day1

来源:博客园

1.1 理论背景SQL代表结构化查询语言(Structured Query Language),是一种在关系数据库系统(Relational Database Management Systems,RDBMS)中查询和管理数据的标准语言。RDBMS是基于关系模型的数据库管理系统,它基于两个数学分支:集合理论和谓词逻辑。

1.1.1 SQLSQL是一种基于关系模型的ANSI和ISO标准语言,用于查询和管理RDBMS中的数据。SQL语句包括数据定义语言Data Definition Language, DDL数据操作语言Data Manipulation Language, DML数据控制语言Data Control Language, DCL


(相关资料图)

1.1.2 集合理论集合,我们的意思是:任意集合体M使我们感知或想到的,能够确定的、互异对象m(称为M的元素)的整体。——Georg Cantor一个“集合”应将其视为单个实体。“互异”指集合中的每个元素必须是唯一的。“我们感知或想到的”意味着集合的定义是主观的。“对象”集合的定义不限于物理对象,更与抽血的对象相关。请注意,定义中没有提到集合元素间的任何顺序,集合元素的列出顺序并不重要。

1.1.3 谓词逻辑谓词是一个属性或是一个表示“持有”或“不持有”的表达式,换句话说,也就是“真”或“假”。关系模型就是依靠谓词来维护数据的逻辑完整性并定义其结构的。谓词用于实施完整性的一个例子就是:在一个名为Employees的表中定义了约束,仅允许工资(Salary)大于0的雇员存储在表中。谓词是“工资大于0”(T-SQL表达式:salary>0)。通过筛选数据来界定子集等操作时,也可以使用谓词。

1.1.4 关系模型关系模型的目标是确保数据的一致性表示,最小化或是没有冗余且不牺牲完整性,并将定义数据的完整性作为模型的一部分。1.关系普通的想法是,“关系”术语源于表之间的关系,这是不正确的。“关系”实际上是数学术语的关系。在集合理论中,关系是集合的表现形式。在关系模型中,关系是相关的信息的集合,与SQL中相对应的就是表——尽管不能完全对应。2. 缺失值三值谓词逻辑是指来自谓词结果的3中可能逻辑值——“真”、“假”、“未知”3. 约束数据完整性通过在数据模型中定义的约束规则实现,并由RDBMS实施。4. 规范化关系模型还定义了规范化规则,也称范式。1NF,2NF,3NF(具体上网查阅定义)

1.1.5 数据生命周期1 联机事务处理OLTP系统的重点是数据输入,而不是数据报告。2 数据仓库DW是一个以检索数据和报告为目的设计的环境。3 商业智能语义模型BISM是微软支持完整BI堆栈应用的最新模型,目的是提供丰富、灵活、高效、可扩展的分析和报告功能。4 数据挖掘数据挖掘模型可以替代用户在数据海洋中查找有用的信息。

1.2 SQL Server体系结构1.2.1 SQL Server的ABC特色A是应用(Appliance)“应用”特色背后的理念是提供包括硬件、软件和服务在内的完整解决方案,应用是在客户端本地托管的。B是盒子(Box)“盒子”是企业内部部署的SQL Server,这是传统的部署方式。C是云(Cloud)微软支持两种SQL Server云特色:私有云和公共云。

1.2.2 SQL Server实例可以在同一台计算机上安装基于企业内部部署的SQL Server的多个实例。每个实例完全独立于其他实例。默认实例和命名实例

1.2.3 数据库系统数据库介绍如下:master:存储实例范围的元数据信息、服务器配置、实例中的所有数据库信息和初始化信息。resource:Resource数据库是一个隐藏、制度数据库,存储所有系统对象的定义。当查询数据库中的系统对象时,似乎位于当前数据库的sys架构中,但实际上他们的定义位于Resource数据库中。model:用作创建新数据库的模板,创建的每个新数据库是有model的副本初始化创建的。tempdb:是SQL Server存储临时数据的地方,如工作表、排序空间、行版本控制信息等。msdb:是一个成为“SQL Server代理”的服务存储数据的地方。还存储其他SQL Server功能的相关信息,如Database Mail,Service Broker、备份等等。

1.3.1 创建表

-- Create table EmployeesUSE TSQL2012;IF OBJECT_ID( "dbo.Employees" ,  "U" )  IS NOT NULL  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);

1.3.2 定义数据完整性

---------------------------------------------------------- Data Integrity---------------------------------------------------------- Primary keyALTER TABLE dbo.Employees  ADD CONSTRAINT PK_Employees  PRIMARY KEY (empid);-- UniqueALTER TABLE dbo.Employees  ADD CONSTRAINT UNQ_Employees_ssn  UNIQUE (ssn);-- Table used in foreign key exampleIF 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 DATETIME2  NOT NULL ,  qty  INT NOT NULL ,  CONSTRAINT PK_Orders    PRIMARY KEY (orderid));-- Foreign keysALTER 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 dbo.Employees(empid);-- CheckALTER TABLE dbo.Employees  ADD CONSTRAINT CHK_Employees_salary  CHECK (salary > 0.00);-- DefaultALTER TABLE dbo.Orders  ADD CONSTRAINT DFT_Orders_orderts  DEFAULT (SYSDATETIME())  FOR orderts;

附第一章配套代码:  

----------------------------------------------------------------------- Microsoft SQL Server T-SQL Fundamentals-- Chapter 1 - Background to T-SQL Querying and Programming--2008 Itzik Ben-Gan -------------------------------------------------------------------------------------------------------------------------------------------- Creating Tables----------------------------------------------------------------------- Create a database called testdbIF DB_ID("testdb") IS NULL  CREATE DATABASE testdb;GO-- Create table EmployeesUSE testdb;IF OBJECT_ID("dbo.Employees", "U") IS NOT NULL  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);----------------------------------------------------------------------- Data Integrity----------------------------------------------------------------------- Primary keyALTER TABLE dbo.Employees  ADD CONSTRAINT PK_Employees  PRIMARY KEY(empid);  -- UniqueALTER TABLE dbo.Employees  ADD CONSTRAINT UNQ_Employees_ssn  UNIQUE(ssn);-- Foreign keyIF 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);-- CheckALTER TABLE dbo.Employees  ADD CONSTRAINT CHK_Employees_salary  CHECK(salary > 0);-- DefaultALTER TABLE dbo.Orders  ADD CONSTRAINT DFT_Orders_orderts  DEFAULT(CURRENT_TIMESTAMP) FOR orderts;

关键词: