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架构中.

时间: 2024-10-12 08:05:20

SQL Server之 (一) 数据库简介 SQL Server环境配置 数据库基础知识的相关文章

C连接MySQL数据库开发之Windows环境配置及测试

一.开发环境 Win8.1 64位.VS2013.MySQL5.5.3764位 MySQL安装目录为:C:\Program Files\MySQL\MySQL Server 5.5 二.配置工程环境 首先创建一个控制台空项目,打开VS2013,文件--> 新建项目 --> 常规 --> 选择"空项目" 因为我们要使用MySQL数据库的API接口编程,所以需要将工程的附加头文件搜索目录和附件库文件搜索目录,指向MySQL安装目录对应的位置,下面是我机子上mysql库和头

Java环境配置 数据库 缓存Redis Nosql MongoDB 安装

系统选择 centos 7.0 1.java安装篇 rpm -qa |grep java 检测是否java yum remove java-1.7.0-openjdk 使用命令删除java 到oracle官方下载java安装包 rpm -ivh jdk-7u60-linux-x64.rpm ->安装jdk 2.Tomcat 安装篇 在apache官方下载tomcat wget http://apache.fayea.com/apache-mirror/tomcat/tomcat-7/v7.0.5

C连接MySQL数据库开发之Xcode环境配置及测试

一.开发环境 Mac OS X 10.9.2 64位.Xcode5.1.MySQL5.5.37 64位 MySQL安装目录为:/usr/local/mysql 二.配置xcode连接mysql的编译选项 1> 将mysql头文件目录添加到xcode头文件搜索路径中 项目属性--> Build Settings --> Search Paths --> Header Search Paths,添加/usr/local/mysql/include 2> 将mysql库文件目录添加

oracle数据库安装前的环境配置

系统版本redhat5.6一 安装前环境配置查看内存grep MemTotal /proc/meminfogrep SwapTotal /proc/meminfo(或者free -m同时查看内存和swap空间,一般需要内存2G,swap空间2G即可)修改用户的SHELL限制,修改/etc/security/limits.conf文件oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024oracle hard n

I学霸官方免费教程二:Java简介和开发环境配置

一.     Java简介 至于Java的历史,网上很多,有兴趣的同学自行了解即可,这里起步阶段只做简单介绍,后面有用到的地方在详细讲解,如有疑问,可以联系我们,个人资料中有联系方式. 编译方面 Java语言既使用了编译,也使用解释 源文件:源代码(开发人员编写产生):存储在源文件(xxx.java文件)中 编译器:字节码文件(编译产生):存储在字节码文件(xxx.class文件)中 解释器:解释执行字节码文件 这样做的好处是,在编译阶段检查了错误,对代码进行了优化,在解释执行时就无需再查错,速

二、MongoDB的基础知识简介

1.文档.集合和数据库 a).文档:因为MongoDB是面向文档的数据库,那么可想而知文档是它的基本单元,相当于关系型数据库中的行! Ⅰ.它是由键值对组成的一个有序集:注:键不能为空且是字符串类型的. Ⅱ.它不仅区分大小写,而且还区分数据类型: Ⅲ..和$符号具有特殊意义,需要在特定环境中使用: b).集合:同样的,多个文档汇聚在一起就是一个集合,但是这些文档可以是不同的结构模式,组合在一起就相当于关系型数据库中的表! Ⅰ.同样命名不能为空,不能以system开头,且不能使用保留字符$: Ⅱ.动

SQL Server 数据库简介

使用数据库可以高效且条理分明地存储数据,使人们能够更加迅速,方便地管理数据.数据库具有以下特点: 1.可以结构化存储大量的数据信息,方便用户进行有效的检索和访问. 2.可以有效地保持数据信息的一致性.完整性,降低数据冗余. 3.可以满足应用的共享和安全方面的要求. 数据库的基本概念: 1.数据:描述事物的符号记录成为数据(Data)包括数字.文字.图形.图像.声音.档案记录等都是数据.数据以"记录"形式按统一的格式进行存储的. 2.数据库和数据库表:表是用来存储具体数据的,数据库就是表

SQL server数据库的在server 2008R2上的安装及基本管理

         SQL server数据库的在server 2008R2上的安装及基本管理(一) 选择SQL的数据库的镜像文件 双击setup.ext 执行安装程序 这里选择安装项,并选择全新安装 安装的环境监测全部通过 因为这里是使用的破解版的镜像,所以会自动生成密钥 再一次检测安装环境 这里选择第一项 这里选择全部的功能 这里选择默认的实例名 这里将系统的内置账户添加到服务中,NT 这里选择混合式身份 验证,并输入sa的密码.并添加本地的管理员 这里添加本地的管理员账户 选择第一项 开始安

Sql Server之使用T_SQL创建,修改,查看数据库信息

一.使用Transact_SQL创建数据库 Transact_SQL语法如下:  create database database_name   [ on     [primary]  [<filespec> [,...n] ]   ]   [ log on    [<filespec>[,...n]]   ];   <filespec>::=    (      name=logical_file_name      [  ,  newname = new_login