zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    ExtJS4学习笔记二--表单控件相关
    Js中replace()的用法
    浅析轮询(Polling)和推送(LongPolling)服务
    ExtJS4学习笔记五--面板使用
    ExtJS4学习笔记四--图片上传
    spring MVC
    ExtJS4学习笔记三--远程访问数据源示例
    Struts 2
    ExtJs4学习笔记一--基础知识
    URL编码规则
  • 原文地址:https://www.cnblogs.com/aaronday/p/4054489.html
Copyright © 2011-2022 走看看