您的位置:首页 > 数据库

MSSql Server基础学习系列———基础讲解

2015-09-07 10:38 232 查看
最近打算从头再仔细学习一下微软的Sql Server数据库,根据学习进度在博客上同步学习笔记,中间的有些内容可能只是一点而过,具体内容随着学习的深入会继续完善,欢迎大家一起学习并指导。

MSSql Server数据库的知识

前面之所以加上MS,是因为这是微软的Sql Server,我们通常说的时候会把前面的MS给省略掉,推荐带上,这表示你对Sql Server的来由比较清楚。

各种数据库的比较

oracle数据库的性能是做好的,但是是收费的,而且用户体验不好,不容易操作

sql server数据库是针对于windows系统的数据库,不能跨平台

mysql 使用范围不是很广,可以跨平台,是一款开源的软件,适用于php java等语言

access数据库是微软的一个简单的稳健型数据库

Management studio 只是一个很好的用户界面(就像微软的UI界面),最终的操作还是要转换为sql脚本到数据库服务器上执行(最终还是转换为微软的底层操作命令去执行)

DBMS:数据库管理系统

实例与DBMS的关系

两者是相等的关系

每个实例就是一个数据库管理系统

在一个服务器上安装多个实例是为客户设置权限(与用户权限设置的区别)

主键:primary key 用来为唯一标示表中的一行 可以由多列组成表中的主键

主键的四种:

1:业务主键

有实际意义的列(如用身份中号码作为用户的主键,但是身份中号码是可能重复的)不推荐使用

2:逻辑主键(自动增长的列)推荐使用,当语句执行失败的时候仍然可能自增

3:单列主键:是业务之间和逻辑主键的结合体 推荐使用

4:组合主键

A、B 大学区分一个学生(不推荐使用)

如何选择主键

1、选择稳定的列(选择家庭住址的话 家庭住址可能会变化 而且地址的大小不是固定的 不好控制)

2、绝对不能重复的列

3、主键不能为空

4、尽量使用单列作为主键

5、尽量不要使用具有实际意义的列作为主键

主键id与guid的区别

如果采用id主键,可能造成不同表之间主键的重复,在表间操作时会造成混乱。而guid是根据我们的电脑的Mac地址等多种内容生成的,能保证全球的唯一。

外键

来由:避免数据存储的冗余

定义:另一个表格中定义的一个列是其中一个表中的主键

MSSql Server管理

Management studio 只是一个可视化的管理界面

1、启动服务(services.msc快速启动)

2、启动Management studio

3、选择何种登陆方式

(1)windows身份验证是还是sql server身份验证(需要用户名、密码)具有windows操作权限的账户都可以进行windows身份验证登陆(未分配sql server账户的可以进行添加 忘记用户名、密码的账户也可以进行修改)

数据库的建立以及表格的创建

1、char与varchar区别

简单点说就是一个是可变的,一个是不可变的。如果确定某个字段的大小建议使用char,如果不确定大小推荐使用varchar

2、nchar与nvarchar区别

数据库中,英文字符只需要一个字节存储就足够了,但汉字和其他众多非英文字符,则需要两个字节存储。如果英文与汉字同时存在,由于占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码。Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。而前缀n就表示Unicode字符,比如nchar,nvarcha。nchar是可变的,nvarchar是不可变的

3、修改表结构不能保存时修改工具->选项->designer->去掉组织保存创建表的修改

4、数据库的分离、附加、脱机

5、拒绝访问问题(添加权限(右击属性->添加一个新的用户或者为当前用户添加权限读写))

5、版本的兼容性问题

高版本附加到低版本中时,最好是先生成脚本语言

sql 脚本

执行sql语言的命令

sql 不区分大小写

sql字符串使用单引号

sql判断两个数据是否相等使用的是单等号

--创建数据库

create datebase testDB on primary

{

}

log on{

}

--创建表

use testDB

create table user

{

}

go命令:

只能适用于management studio 用于分段向sql server服务器发送命令

[]作用

1、数据库对象、表明、列明可以使用[]括起来,防止关键字的冲突。如int是系统关键字,[int]就可以避免与系统的关键字冲突

2、对象名之间有空格时,可以使用[]括起来

删除表、数据库

drop database 数据库名称

drop table 表名

修改表

alter table 表名

--删除表列

alter table Student

drop column Uname

--添加表列添加列的时候不需要再指定column

alter table Student

add Uname varchar(10) not null

--修改表结构的时候一定要注意到是否会影响到原来表中的数据

--修改列名

alter table Student

alter column Uname varchar(20) not null

--注意主键还有名字(主键名字就是主键的一个引用)

--添加主键(为某一列添加约束)

alter table dbo.[Student] add constraint

FK_Student_Uid primary key(Uid)

--把Uid列与主键关联起来

--删除主键(删除主键的引用就可以删除主键了)

alter table dbo.[Student]

drop constraint FK_Student_Uid

对数据库的任何操作都可以进行脚本预言的生成,通过脚本语言,可以了解具体的执行过程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: