SQL Server 2012 案例教程(贾祥素)——学习笔记

Posted 小小濛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server 2012 案例教程(贾祥素)——学习笔记相关的知识,希望对你有一定的参考价值。

第2章 SQL Server 2012概述

1SQLStructed Query Language),结构化查询语言。

2SSMSSQL Server Mangement Studio),SQL Server 2012的操作环境。

3、连接SQL Server之前应先启动SQL Server服务,即SQL ServerMSSQLSERVER):

   方法开始--所有程序--Microsoft SQL Server 2012--配置工具--SQL Server配置管理器。

   方法控制面板--系统和安全--管理工具--服务。【 √ 】

4、登录账户:

   (1) 创建:“Windows身份验证登录--对象资源管理器--安全性--右击登录名--新建登录名

   (2) 修改密码:“Windows身份验证登录--对象资源管理器--安全性--打开登录名--双击自定义的登录名

   (3) 赋予权限:双击自定义的登录名--属性--服务器角色 用户映射

   (4) 删除:右击自定义的登录名--删除

第3章 数据库的创建与管理

1、数据库按照用途分类:系统数据库和用户数据库。

   系统数据库:

     (1) master:核心,用户不能直接修改,损坏则SQL Server服务器不能工作,需定期备份。

     (2) model:模板,用模板中的默认值创建新的空白数据库。修改model将影响所有使用模板创建的数据库。

     (3) msdb:代理服务数据库,供SQL Server代理程序调度警报、作业及记录操作。

     (4) tempdb:临时数据库,所有建立的临时表和临时存储过程,启动时重建,关闭时清空。

   用户数据库:由用户自行创建的数据库。

2、文件

   (1) 数据库文件:存放数据库数据和数据库对象,可有多个数据库文件。

       类型:a. 主数据文件:“. mdf ”,有且只有一个,存储数据库启动信息数据,是数据库的起点。

             b. 次要数据库:“. ndf ”,可以有0或多个,除主数据文件外其余的都是次要数据文件。

   (2) 事务日志文件:“. ldf ”,至少有一个,记录数据库增删改及故障记录,可分析故障原因并恢复数据。

3、创建数据库 «

CREATE DATABASE 数据库名

[ ON [ PRIMARY ]

[ <数据文件参数>[ , ... n ]

[ , <文件组参数>[ , ... n ]

]

[ LOG ON { <日志文件参数>[ , ... n ] } ]

 

<文件参数> :: =

    (

        [ NAME = 逻辑文件名, ]

        FILENAME = 物理文件名

        [

            , SIZE = 大小

            [ , MAXSIZE = { 最大容量 | UNLIMITED }]

            [ , FILEGROWTH = 增长量 [ KB|MB|GB|TB|% ]

        ]

    ) 

    [ , ... n ] 

}

<文件组参数> :: =

{

 FILEGROUP 文件组名 [ DEFAULT ]

    <文件参数>[ , ... n ]

}

CREATE DATABASE mytest ON PRIMARY

(NAME = ‘ mytest_data1 ’,

FILENAME = ‘ d : \\ db \\ mytest_data1 . mdf ’,

SIZE = 6MB ,

MAXSIZE = 30MB ,

FILEGROWTH = 15 %

) ,

(NAME = ‘ mytest_data2 ’,

FILENAME = ‘ d : \\ db \\ mytest_data2 . mdf ’,

SIZE = 4MB ,

MAXSIZE = 30MB ,

FILEGROWTH = 15 %

LOG ON

(NAME = ‘ mytest_log1 ’,

FILENAME = ‘ d : \\ db \\ mytest_log1 . ldf ’,

SIZE = 1MB ,

MAXSIZE = 20MB ,

FILEGROWTH = 5 %

) ,

(NAME = ‘ mytest_log2 ’,

FILENAME = ‘ d : \\ db \\ mytest_log2 . ldf ’,

SIZE = 1MB ,

MAXSIZE = 20MB ,

FILEGROWTH = 5 %

GO

● ON:指定用来存储数据库中数据部分的磁盘文件——数据文件。

● PRIMARY:指定关联数据文件的主文件组。若未指定PRIMARY,则CREATE的第一个文件为主数据文件。

● LOG ON:指定用来存储数据库中日志部分的磁盘文件——日志文件。如果没有LOG ON系统将自己创建。

● 文件参数:定义文件属性。

  NAME:指定文件逻辑名称,是数据库在SQL Server中的标识符。

  FILENAME:指定数据库所在文件的操作系统文件名称和路径,要确保路径已经存在。

  SIZE:指定文件初始大小,应不小于model数据库的主数据文件的大小。若未指定则使用model数据库主数据文件的大小。

         次要数据文件未指定大小,则以1MB作为该文件的大小。

  MAXSIZE:指定操作系统文件可增长到的最大尺寸。若未指定则无限大(UNLIMITED),直到磁盘被占满。

  FILEGROWTH:指定文件的自动增量。MB或者%,若为0则不允许文件增长。

● 文件组参数:控制文件组属性。

  FILEGROUP:文件组逻辑名称,须唯一且符合标识符规则。

  DEFAULT:指定该文件组为数据库中默认的文家组。

4、数据库管理

   (1) 查看及修改:右键--属性

   (2) 更名:方法使用SSMS图形界面

             方法使用T-SQL语句:ALTER DATABASE mytest

                                     MODIFY NAME = db_mytest

   (3) 删除:方法使用SSMS图形界面

             方法使用T-SQL语句:DROP DATABASE mytest

5、数据库的分离,即只将用户数据库从SSMS中删除,对应的物理文件.mdf.ldf不删除。

   (1) 分离:用户数据库--右键--任务--分离

   (2) 附加:数据库--右键--附加--添加

   (3) 移动:分离--剪切.mdf.ldf--附加

   (4) 复制:(用户数据库--右键--任务--脱机)--复制.mdl.ldf --(右键--联机)

第4章 数据表的创建与管理

1、数据表的创建

   (2) 使用T-SQL语句创建数据表

 CREATE TABLE 表名

 (

 列名数据类型 列的特征,

 列名数据类型 列的特征,

 ... ...

 列名数据类型 列的特征

 )

USE TestStudentdb                        ——说明对哪一个数据库进行操作

GO

CREATE TABLE TestScore

(

testsco_id INT IDENTITY(1 , 1) ,          ——标识列(int),从1开始递增

testsco_stuno VARCHAR(10) NOT NULL ,  ——非空

testsco_overall FLOAT                     ——未说明,可为空

)

GO                                        ——怎么设置主键?

CREAT TABLE [ DataBaseName.[ SchemaName ].] TableName

             /*创建表的数据库名*/ /*创建表的架构名*/  /*创建表的名称*/

(column_name data_type [NOT NULL]|[DEFAULT[expression]]|{PRIMARY KEY|UNIQUE}[CLUSTERED|NONCLUSTERED][ASC|DESC])[, ...n]

  /*各列名称*//*数据类型*//*列值非空*/ /*  指定列的默认值 */   /*   主码   */ /*标识列*//*聚集索引*/ /*  非聚集索  *//*默认*//**/ 

2、数据表的管理

   (1) 使用SSMS图形界面管理数据表

   (2) 使用T-SQL管理数据表:(单击新建查询打开空白.sql--输入T-SQL语句--单击V检查--单击!执行--检查表中数据)

      a. 添加字段:

SSMS

数据表--右键--设计                                                              表右键

语法

ALTER TABLE 表名

ADD 字段名 字段类型 列的特征

        修改字段类型:

SSMS

数据表--右键--设计                                                              表右键

语法

ALTER TABLE 表名

ALTER COLUMN 字段名 字段类型 列的特征

        删除字段:

SSMS

数据表--右键--设计                                                              表右键

语法

ALTER TABLE 表名

DROP COLUMN 字段名

      b. 添加约束CONSTRAINT: ALTER TABLE 表名

                                         ADD CONSTRAINT 约束名 约束类型 具体的约束说明

         主键约束 PRIMARY KEY:

SSMS

设计--列名--右键--设置主键                                                   列名右键

举例

ALTER TABLE StudentTest       /*   表级约束只要这部分  */

ADD CONSTRAINT PK_stutestno PRIMARY KEY (stutest_no)

GO                  <约束名>                         <列名>    [, ... n]

 

注:每个表只能有一个主键约束,且其约束的列值不能重复或空。

         外键约束FOREIGN KEY(关系):

 

设计右击空白--关系--添加--常规·表达式--选择对应                                                   空白右键

举例

ALTER TABLE ScoreTest             /*  表级约束不省略这部分   */

ADD CONSTRAINT FK_scoteststuno FOREIGN KEY(scotest_stuno) REFERENCES StudentTest (stutest_no)

GO               <约束名>                        <列名>                     <外表名>   <列名>                         

 

注:外键所引用的列必须是主键约束的列或标识列; 用户数据库--数据库关系图--新建--全选--添加--保存--刷新。

         唯一约束UNIQUE(标识列)

SSMS

设计--列属性--(是标识)--“                                                    列属性

举例

ALTER TABLE StudentTest

ADD CONSTRAINT UQ_stutestname UNIQUE (stutest_name)

 

注:可在一表中定义多个UNIQUE,也可在多个列上定义一个UNIQUE,其组合不重复即可。

    表设计--右击空白--索引/--查看唯一键。

         默认约束DEFAULT:

SSMS

设计--列属性--默认值或绑定--输入内容                                            列属性

举例

ALTER TABLE StudentTest

ADD CONSTRAINT DF_stutestnative DEFAULT(‘吉林’) FOR stutest_native

         检查约束CHECK:

SSMS

设计右击空白--CHECK--添加--常规·表达式--输入                                空白右键

举例

ALTER TABLE StudentTest

ADD CONSTRAINT CK_stutestemail CHECK(stutest_email like ‘%@%.%’)

 

例:stu_email like ‘%@%.%’   (注:%表示任意多个字符)

         删除约束: ALTER TABLE 表名

                       DROP CONSTRAINT 约束名(如CK_stutestemail

3、数据表的删除  

    (1) 使用SSMS图形界面删除数据表

    (2) 使用T-SQL删除数据表:DROP TABLE 表名

第5章 数据管理(增、删、改、导入导出)

1、使用SSMS图形管理界面

   (1) 添加数据:右击表--编辑前200--增加字段的值

   (2) 修改数据:右击表--编辑前200--修改字段的值

   (3) 删除数据:右击表--编辑前200--右击选中一条记录--删除

2、使用T-SQL

  (单击新建查询打开空白.sql--输入T-SQL语句--单击V检查--单击!执行--检查表中数据)

   (1) 插入单行数据:

      语法:INSERT [ INTO ] <表名> [列名列表] VALUES <值列表>

             INTO“[]”表示可选部分,增强可读性。

             表名:指定向哪个表插入数据。

             列名:若有多列可用逗号隔开,若省略列名则按数据表定义的顺序依次插入数据。

             值列表:插入各列对应的数值,逗号隔开,值与列对应,字符串用单引号。

         注:不要向标识列中插入数据值。                                                      (注:红色为常见易错处)

             在插入数据时注意不要违反CHECK约束

             若字段不允许为空,且未设置默认值,则必须给该字段设置数据值。

             可以使用关键字DEFAULT代替插入的数值,这样可以改具有默认值的列插入数据。     

   (2) 插入多行数据:

     ● 从一个表中查询出来部分信息,将这些信息插入到另外一个表中:

            INSERT INTO Contact (con_name, con_email, con_phone)

            SELECT stu_name, stu_email, stu_phone

            FROM Student

     ● 通过Union关键字合并数据进行插入:

            INSERT INTO Contact (con_name, con_email, con_phone)

            SELECT ‘黄飞’, ‘huangfei@163.com’, ‘15720613345’ UNION

            SELECT ‘徐强’, ‘xuqiang@163.com’, ‘15720613346’ UNION

            SELECT ‘段悦’, ‘duanyue@163.com’, ‘15720613347’

            注:UNION关键字将两个不同的数据或查询结果组合成一个新的结果集,注意个数、顺序、类型。

     ● 通过INSERT...VALUE方式一次插入多条记录:

            INSERT INTO Contact (con_name, con_email, con_phone)

            VALUES (‘胡康’, ‘hukang@163.com’, ‘15720613265’) ,

                    (‘周星’, ‘zhouxing@163.com’, ‘15720613266’) ,

                    (‘李刚’, ‘ligang@163.com’, ‘15720613267’) 

   (3) 更新数据:UPDATE <表名> SET <列名=更新值> [WHERE<条件>]

                  SET指定更新的列和值,多个列名=更新值用逗号隔开,最后一个列名=更新值不加逗号

                     WHERE子句是可选的,若省略则对表中所有记录进行更新。

        ● 更新单行:UPDATE Contact SET con_email = ‘ww@163.com’, con_phone = ‘15788889999’ 

                    WHERE con_id=1

        ● 更新多行:UPDATE Contact SET con_email = ‘zjff@163.com’ WHERE con_email = NULL

        ● 更新所有:UPDATE Contact SET con_phone = ‘13388887777 ’

   (4) 删除数据:DELETE FROM <表名> [WHERE<条件>]

       ● 删除单行:DELETE FROM Contact WHERE con_id = 0

                注:在删除主表中某条数据信息时,若该信息在子表中以外键形式存在,则禁止删除主表中该信息。 

                    办法是将主表中要删除的信息先在子表中全部删除。简便的方法是触发器。

        ● 删除多行:DELETE FROM Contact WHERE con_class = ‘12自动化

        ● 删除所有:DELETE FROM Contact

              扩展:TRUNCATE TABLE <表名>

                    TRUNCATE TABLE用来删除表中所有行,但表的结构、列、约束、索引等不会被改动,

                    比DELETE执行速度快,且占用资源和日志少,该操作不能用于有外键约束引用的表。

3、导入/导出数据

   (1) 文本文件·导入·数据库数据

      右击数据库--任务--导入数据--打开“SQL Server导入导出向导窗口--下一步

       打开选择数据源窗口--“数据源平面文件源”--单击浏览选择导入的文件路径--取消在第一个数据中显示列名称”

       下一步--下一步--选择要导入的数据库--下一步--选择要导入的数据表

       下一步--保持默认--下一步--选中立即运行复选框--下一步--完成--单击关闭按钮即可查看导入的数据。

   (2) 表格文件·导入·数据库数据

      右击数据库--任务--导入数据--打开“SQL Server导入导出向导窗口--下一步

       “选择数据源窗口--“数据源Microsoft Excel”--单击浏览选择导入的Excel路径--取消首行包含列名称”复选框

       下一步--选择要导入的数据库--下一步--选中复制一个或多个表或视图的数据单选按钮

       下一步--选中Sheet$选项--在目标处选择要导入的数据表

       下一步--保持默认--下一步--选中立即运行复选框--下一步--完成--单击关闭按钮即可查看导入的数据。

   (3) 数据库数据·导出·文本文件

      右击数据库--任务--导出数据--打开“SQL Server导入导出向导窗口

      下一步--打开选择数据资源窗口--选择要导出的数据库

      下一步SQL Server 2012安装图文教程

SQL Server 2012 Express安装教程

卸载SQL Server 2012图文教程

sql2012怎么安装

Sql server 2012 企业中文版安装图文教程(附下载链接)

试图通过SSIS教程。为SQL Server 2012创建一个简单的ETL包。