zoukankan      html  css  js  c++  java
  • SQL Server之 (一) 数据库简介 SQL Server环境配置 数据库基础知识

         前言

          这个是我工作两年多后,再次从最基础的SQL入门开始,认真的学一遍SQL Server,捡漏和巩固都有;因为自己刚开始学的时候,总是心烦气躁,最近换工作,发现1到2年经验,问到基础性的东西还是很多,这个时候需要的是扎实的基础功夫,所以一系列打击+反省后,自己节假日在家从最基础重新认识一下SQL Server,继续沉淀一下.哪里有不对或需深入探讨,请直接留言或者小窗我;欢迎~

    自己学习笔记,转载请注明出处,谢谢!---酸菜

    (一) 数据库简介   SQL Server环境配置   数据库基础知识

    1.什么是数据库,数据库有哪些特点,为什么要用数据库?

        数据库是一种数据库管理软件,需要安装在电脑的操作系统上的;

        数据管理系统(DBMS):DataBaseManagementSystem

        数据库具有特点:

                           ① 海量存储数据;

                           ②查询速度快;

                           ③控制并发性访问;

                           ④安全性;

                           ⑤数据的完整性;

    2.不同的数据库,不同的特点

        mySql:功能简单,速度很快,数据不够严谨;

        MSSQL Server:只能运行在Windows平台上,与.net有很好的结合,比mySql功能多,但是对大数据量处理不是特别好;

        Oracle:

        SQLLite:

        Access:文件级数据库;

    3.数据库概念知识

        数据库(DataBase):不同类的数据放到不同的数据库中;便于对数据的类别个性化管理;安全性高;避免命名冲突;

        表(Table):关系型数据库的关系指的是表;

        列(Column)/字段(Field)/行(Row)元祖;

        主键(Primary Key):数据行中唯一标识,一个表中只能有一个主键;分为:逻辑主键和业务主键;

        逻辑主键:没有任何业务意义的字段,完全是给程序看的字段;

        业务主键:使用对业务有意义的字段,比如身份号/学号...;

        主键须有的特点: 

                                ①不允许空的列为主键;

                                ②没有重复数据的列;

                                ③没有实际业务逻辑的列;(逻辑主键)

                                ④稳定的列;(列中的数据不会经常变化的)

                                ⑤选择单列为主键;(当需要多列来共同唯一标识一个表中的一条记录时,可选择多列组成一个主键,此时可以称为:组合主键/复合主键/联合主键)一般 不推荐使用组合主键;

        数据冗余的问题:

        造成了存储空间的浪费;

        更新/删除 数据异常;

        为了处理数据冗余的问题,需要将这样的表拆分为两个或者多个表来储存,这个时候需要用主外键将几个表的数据联合起来.

        外键(Foreign Key),如何利用主外键将表中的数据联合起来?

        当数据拆分为两个表来储存的时候, 每张表有它自己的主键.其中一张表除了它的主键还有一个列,这个列用来引用另一张表中的主键,这一列就是这张表的"外键列",有外键列的表叫做"外键表",主键被引用的表叫做"主键表".

        因为外键列的数据引用的是另一张表的主键列数据,所以外键列的数据不可以随便填写,必须是另一张表的主键已经存在的数据.

    4.SQL Server的安装和环境配置

        安装过程网上有对应版本的图解教程,这里我就先不写了;

        安装完后,需要启动SQL Server服务:

        开始→运行→services.msc  然后找到对应的需要启动的服务;

        查看数据库版本语句:Print @@Version;

    5.SQL Server安装失败,如何干净的卸载掉;

        ①在程序卸载目录中,卸载掉所有带有SQL Server字样的程序;

        ②删除所有安装目录;

        ③删除注册表:开始→运行→regedit;在CURRENT_USER和LOCAL_MACHINE下的SoftWare下的微软项目中的带有SQL Server的都删除掉;

    6.通过设计器创建数据库和表;

        ①每个数据库都有且只有一个主数据文件(.mdf),日志文件(_log.ldf);任意多个次要数据文件(.ndf),多个事务日志文件;

        ②文件组:可将多个数据文件逻辑分到一组,方便日后管理维护(备份/将表建立在对应文件组上等);

        ③分离:对要分离的数据库,右击,分离,删除链接;

        ④附加:右击数据库,选择附加,找到目录下的数据库文件;

        ⑤脱机:暂时不用这个数据库,右击脱机,还在原来的目录,需要恢复,右击联机;

        ⑥生成兼容脚本移动数据库:右击数据库→任务→生成脚本,可选生成向下版本,可选项根据需求;

           注:<1>附加和分离是在数据库版本是一样的情况下进行的,不同版本是会出错;

               <2>报错:"不允许保存更改.您所做的更改要求删除并重新创建以下表.您对无法重新创建的表进行了更改或者启用了"阻止保存要求重新创建表的更改"选项";解决方法:工具→选项→Designer/设计→ 勾去  阻止保存要求重新创建表的更改;

               <3>报错:附加数据库时报错"..拒绝访问..";权限问题,设置数据库文件安全为:Everyone;

               <4>低版本向高版本是兼容的,高版本向低版本是不兼容的;

    7.数据库的数据类型;

        ①image:用来存储 byte[]类型;

        ②字符串类型:char,nchar,varchar,nvarchar,text,ntext,varchar(max),nvarchar(max)都属于字符串类型,下面是对应的区别;

            <1>带n和不带n的区别:

                   char: char(2),表示可以存储2个字节,比如:ab,12,赵;

                   nchar:nchar(2),表示可以存储两个字符,每个字符占用2个字节,比如:貂蝉,ab,12;

                   总结:

                   不带n:存储中文占用2个字节;存储数字/英文等占用1个字节;

                   带n:无论存储中文/英文/数字,每个字符都占用2个字节;

                   带n的数据类型最长4000,nchar(4000)/nvarchar(4000);

                   不带n的数据类型最长是8000,char(8000)/varchar(8000);

            <2>带var和不带var的区别:

                   char(10):  1                  ;

                                    1111111111;

                   varchar(10): 1;

                                       1111111111;

                   总结:

                   不带var:固定长度,存储1个字符,也要占用10个字节,会自动补9个空格,占满10个字节;

                   带var:可变长度,会根据实际存储的字符大小动态重新分配存储空间,相对节省存储空间;

                   10,表示存储最大10个字节,无论是固定长度还是可变长度,超过后都会报错;

            <3>大字符串存储时:

                   SQL 2005前用:text和ntext;

                   SQL 2005后用:varchar(max)/nvarchar(max);max表示4GB内存;

             注:①对于双字节字符,用nvarchar解决;

        ③bit类型:在程序中和查询语句中bit的类型的值都是1(true)和0(false),但是在设计器中必须输入true/false;

           注:详细的数据类型文档,在  帮助→索引中搜索"数据类型 [SQL Server]"都会有详细的解释文档;

    8.数据库的5个系统数据库

        ①master:记录SQL Server系统的所有系统级信息.例如:登录账户信息,链接服务器和系统配置设置,记录其他所有数据库的存在,数据文件的位置,SQL Server的初始化信息等,如果master不存在,无法启动SQL Server;

        ②msdb:用于SQL Server代理计划警报和作业,数据库定时执行某些操作,数据库邮件等;

        ③model:用作于SQL Server实例上创建的所有数据库的模板.对model数据库的修改(数据库大小/排序规则/恢复模式/其他数据库选项)将应用于以后创建的所有的数据库.在model中创建一张表,以后创建其他数据库都默认有一张同样的表;

        ④tempdb:一个工作空间,用于保存临时对象或中间集.一个全局资源,可供链接到SQL Server的所有实例用户使用.每次启动SQL Server时都会重新创建tempdb;

        ⑤Resource:一个只读数据库.包含SQL Server包括的系统对象.系统对象在物理上保留在Resource数据库中, 但在逻辑上显示在每个数据库的sys架构中.

        

        

                              

     

  • 相关阅读:
    MT【38】与砝码有关的两个题
    MT【37】二次函数与整系数有关的题
    MT【36】反函数有关的一道题
    MT【35】用复数得到的两组恒等式
    MT【34】正余弦的正整数幂次快速表示成正余弦的线性组合
    MT【33】证明琴生不等式
    MT【32】内外圆(Apollonius Circle)的几何证明
    MT【31】傅里叶级数为背景的三角求和
    MT【30】椭圆的第二定义解题
    MT【29】介绍向量的外积及应用举例
  • 原文地址:https://www.cnblogs.com/sauerkraut/p/6651154.html
Copyright © 2011-2022 走看看