您的位置:首页 > 数据库

MSSQL 基础知识002

2016-03-02 22:04 218 查看
---启用sa账号

1. 先使用一个windows账号登陆。

2.在数据库实例上面右键,属性,安全性,登录名,sa.

右键,属性。

常规,修改sa的密码。

状态,启用sa账号。

主键的作用:

1.唯一标识表中的一条记录。

选择什么样的列作为主键:

1.没有重复的列。

2.不能为空(null)的列。

3.选择比较稳定的列。(列不经常发生变化的),主键中的值一般不修改。

4.选择那些比较“小”的列。(列的数据类型所占用的字节数小)。

5.尽量选择那些没有实际意义的列作为主键(逻辑主键

不建议选择那些在业务中具有实际意义的列作为主键(具有实际意义的列作为主键,叫做,业务主键。)

6.尽量选择单列作为主键,不要选择多列作为主键(组合主键、复合主键)[一个主键是由多列组成的]

一个表中可以有多个主键吗?不可以,因为表中数据的实际存储顺序只能有一种。

主键不是必须的,但是建议每张表都应该有主键。

数据类型介绍

image 用来存储二进制字节。byte[] 可以存储图片,文件,电影等。什么类型都可以存储。只要能转换为byte[]就可以使用image数据类型存储

---下面的这几种数据类型都是表示字符串类型---

char/nchar/varchar/nvarchar/varchar(max)/nvarchar(max)/text/ntext

char()/nchar()

char(5) 最大可以写char(8000)

五个字符 //不带n的,存储的时候是用ascii模式来存储,中文字符占用两个字节,英文字符、数字字符等占用一个字节

nchar(5) 最大可以写nchar(4000)

//凡是带n的都表示在存储的时候使用unicode方式来存储,那么无论是中文还是英文都是每个字符占用2个字节

---数据前面不加var,表示这个数据类型是一个固定长度的数据类型。

如果设置了长度为10,那么

 1>最多能存储10个。多了则报错

 2>如果只存储了3个,那么后面也会自动补齐7个空格。

---如果加了var,那么表示的是可变长度。

---比如varchar(10)

 1>最多能存储10个,多了则报错

 2>如果存储的少于10个,则实际存储的长度就是,实际用户输入的字符串的个数,不会自动补齐。

varchar()/nvarchar()

带var的优点:节省空间。缺点:每次都会动态计算用户实际保存的数据的长度,重新设置数据类型长度。

text 等价于varchar(max)

ntext等价于nvrcahr(max)

SQL Server一共有5个系统数据库:

master:记录SQL Server系统的所有系统级信息,例如:登陆账户信息、链接服务器和系统配置设置、记录其他所有数据库的存在、数据文件的位置、SQL Server的初始化信息等。

如果master数据库不可用,则无法启动SQL Server。

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

model:用作SQL Server实例上创建的所有数据库的模板。对model 数据库进行的修改(如数据库大小、排序规则、恢复模式和其他数据库选项)将应用于以后创建的所有数据库。在model数据库中创建一张表,则以后每次创建数据库的时候都会有默认的一张同样的表。

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

SQL语句入门:

SQL全名结构化查询语言(Structured Query Language),是关系数据库管理系统的标准语言

Sybase与Microsoft对标准SQL做了扩展,称为:T-SQL(Transact-SQL)

SQL主要分为DDL(数据库定义语言)、DML(数据操作语言) 、DCL(数据库控制语言)

truncate table student 的作用与delete from student一样,都是删除student表中的全部数据,区别在于:

1.truncate语句非常高效。由于truncate操作采用按最小方式来记录日志,所以效率非常高。对于数百万条数据使用truncate删除只要几秒钟,而使用delete则可能耗费几小时。

2.truncate语句会把表中的自动编号重置为默认值。

3.truncate语句不触发delete触发器。

约束-保证数据完整性 参考链接:http://www.cnblogs.com/DrHao/p/5193567.html

非空约束

主键约束(PK) primary key constraint 唯一且不为空

唯一约束(UQ) unique constraint 唯一,允许为空,但只能出现一次

默认约束(DF) default constraint 默认值

检查约束(CK) check constraint 范围以及格式限制

外键约束(FK) foreign key constraint 表关系(在外键表中建立外键约束)

 增加外键约束时,设置【级联更新、级联删除】:来保证,当主键表中的记录发生改变时候,对应的外键表中的数据也发生相应的改变。

[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]

top和distinct

top获取查询出的结果集中的前n条

order by 进行排序。所以,一般使用top的时候,必须配合排序一起使用才有意义。

--row_number() (MSSQL Server2005之后新增) 数据库取底4条到第8条的数据

SELECT TOP 4
  *
FROM UserInfo

WHERE Id NOT IN

( SELECT TOP (4 * 2) Id FROM UserInfo)

-------------------------------------
SELECT
  *
FROM

(SELECT ROW_NUMBER() OVER (ORDER BY id ASC) AS num,* FROM UserInfo) AS U

WHERE U.num BETWEEN (4 * 2)+ 1 AND (4 * 3)


分页Demo
--连接查询(join)

交叉连接:(两种语法cross join 和 ,)

内连接:(inner join),多表内连接。

  无论几张表连接,每次执行都是两张表进行连接。

外连接:

  左外联(left outer join)

  右外联(right outer join)

连接查询的基本执行步骤:

1>笛卡尔积(第一张表的所有数据和第二张表一一连接)

2>应用on筛选器

3>添加外部行,到此from执行完毕
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: