SQL Server(整理)

一、SQL Server数据库

单词:Catalog 分类

1.数据库是什么?

数据库概述:数据库的构成-管理软件/(实例)/服务/文件,DBMS,品牌,SQL/SQLSERVER/MSSQLSER区别。

2.Catalog是什么?

Catalog(分类)(又叫数据库DataBase,表空间TableSpace,不同类的数据应该放到不同的数据库

(1)便于对各个Catalog进行个性化管理

(2)避免命名冲突

(3)安全性更高

3.什么是主键?

答:主键就是一个表中每个数据行的唯一标识。不会有重复值的列才能当主键。一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都是设定主键。

4.主键策略选择那种好?

主键有两种选用策略:业务主键和逻辑主键。业务主键是使用有业务意义的字段做主键,比如身份证号、银行帐号等;逻辑主键是使用没有任何意义的字段做主键,完全给程序看的,业务人员不会看的数据。因为很难保证业务主键不会重复(身份证号重复)、不会变化(帐号开位),因此推荐使用逻辑主键。

5.SQLSERVER数据库,分离和脱机?

答:分离和脱机都可以使数据库不能再被使用,但是分离后需要附加才能使用,而脱机后只需联机就可以用了。

6.还原数据库时,如果被还原数据库依然在,需要覆盖原来的数据库。

7.nvarcharvarcharchar的区别?

答:char固定长度的非Unicode数据,不管输入几个字符,都是指定的长度

Varchar 可变长度的非Unicode数据,可变的长度

Nvarchar 可变长度的 Unicode数据,如果有中文用这个

8.数据类型

分类            备注和说明             类型             说明

二进制数据类型 存储非字符和文本数据    Image           可用来储存图像

文本数据类型   字符数据包括任意字幕、符号或数字字符的组合 

 Char 固定长度的非UniCode字符数据

 Varchar 可变长度非Unicode数据

 Nchar 固定长度Unicode数据

 Nvarchar 可变长度Unicode数据

 Text 存储长文本信息(指针,2G

 Ntext 存储可变长度的长文本

日期和时间 日期和时间在单引号内输入  DataTime  日期和时间

数字类型 该数据包含数字,包括正数、负数以及分数  

 Int 

 smallInt        整数

 

 Float 

 Real           数字

货币数据类型 用于十进制货币值 Money

Bit数据类型  表示是/否的数据   Bit   储存布尔数据类型

9.什么时间用varchar或者nvarchar?

答:有中文的用nvarchar,如果是外国系统访问中国的数据库,不用nvarchar就会出现错误。

10.设置默认值,给DateTime设置当前时间时,数据库内置函数的getdate()函数获取时间。

11.复合主键一般不使用,尤其是在数据量大的时候。

12.Char Varchar是单字节长度,Nchar Nvarchar是双字节长度。

13.长的文章用Text,能储存2G的数据,它保存的是一个指针。可以用varchar(MAX)代替Text,但一般都用Text

14.Len()看字符数,datalength()看字节数。

15.数据类型后面的数字指的是该类型保存的字符数。

16.Datetime存在时区差时,怎么办(比如美国人登陆中国的服务器,保存了中国时间是不对的)?

答:一种:记录下时间并且记录下时区,再输出时进行转换。(推荐)二种:转换完后保存,但是这样只适用于两个地点,如果跑英国再访问,就会出现问题。

二、SQL语言

单词:Drop 放下、落下;Alter 改建、修改;Data 数据;Definition 定义;manipulate 操作;Globally 全局地;Unique 唯一的;Identifier 标识符、编号;

1.SQL语句和DBMS“交谈”专用的语句,不同DBMS都认SQL语法。

2.SQL语句中字符串用单引号。

3.SQL语句大小写不敏感,不敏感是指SQL关键字,字符串值还是大小写敏感的。

4.创建表、删除表不仅可以手工完成,还可以执行SQL语句完成,在自动化部署、数据导入中用的很多,CREATE TABLE T_Person(Id int NOT NULL,Name nvarchar(50),Age int NULL)Drop table T_Personl

5.SQL主要分DDL(数据定义语言)和DML(数据操作语言)两类。Create TalbeDrop Table

Alter Table属于DDLSelect InsertUpdateDelete等属于DML

6.主键选择&Globally Unique Identifier(全球唯一标识符)

                           SQLServer常用的两种数据类型

名称

Int(bigint)+表示列(又称自动增长字段)

Uniqueidentifier(又称GuidUUID)

介绍

用标识列实现字段增加可以自增可以避免并发等问题,不要开发人员控制自增。用标识列的字段在Insert的时候不用指定主键的值。将字段的“是标识列”设置为“是”,一个表只能有一个标识列。

Guid算法是一种可以生产唯一标识的高校算法,它使用网卡MAC、地址、纳秒级时间、芯片ID码等算出来的,这样保证每次生成的GUID永远不会重复,无论是同一个计算机上还是不同的计算机。在公元3400年以前生产的GUID与任何其他生产过的GUID都不相同。SQLServer中生成GUID的函数newid(),.NET中生成Guid的方法:Guid.NewGuid(),返回是Guid类型。

优点

缺点

占用内存小、无需开发人员干预、易读;

效率低;数据导入导出的时候很痛苦。

效率高、数据导入导出方便;

占用空间大、不易读。

倾向

 

业界倾向于使用Guid

7.Int自增字段缺点例子,比如把A服务器里的10000条数据导入到B服务器中,B中已经有10000条数据,ID号会发生冲突,需要将A服务器里10000条数据删除原ID后,添加到B服务器中。而Guid是唯一的,不需要替换。

8.除了标识列其余都需要给值,如果需要用数据库的默认值,用default

例如:insert into Category values(‘女生你好’,’男生你好’,default)

9.Insert语句可以省略表名后的列名,但不推荐

10.如果插入的行中有些字段的值不确定,那么Insert的时候不指定那些列即可。例如第8条中的语句可以写成insert into Category(text1,text2) values(‘女生你好’,’男生你好’),第三列字段也会用默认值。 

11.给可以给字段设置默认值,如果Guid类型主键的默认值设定为newid()救会自动生成,很少这么干。

12.项目上有困难一定要和项目负责人及时沟通,不要到距离项目还有一周了,再告诉完成不了,那就得被一巴掌扇死才行。

13.做一个有竞争的职业人,建议每天至少保证1个小时的课外阅读时间,不要看技术书,看什么?看历史书、管理书、销售书、杂志;运动:找一项大家都喜欢的运动,一周进行2-3次。

14.Person p = new Person();

这条语句做了什么事情:

Person p做了:

(1)在栈中定义一个p,指向堆中

new Person()

(1)在堆中开辟了内存空间

(2)生成一个类的对象

(3)根据构造函数初始化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值