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条的数据
分页Demo
--连接查询(join)
交叉连接:(两种语法cross join 和 ,)
内连接:(inner join),多表内连接。
无论几张表连接,每次执行都是两张表进行连接。
外连接:
左外联(left outer join)
右外联(right outer join)
连接查询的基本执行步骤:
1>笛卡尔积(第一张表的所有数据和第二张表一一连接)
2>应用on筛选器
3>添加外部行,到此from执行完毕
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执行完毕
相关文章推荐
- redis实现访问频次限制的几种方式
- 12C ORA-错误汇总18 ORA-57000 to ORA-65535 EXP-00000 to EXP-00114 IMP-00000 to IMP-00402 SQL*Loader-0010
- 从零开始搭建Node.js, Express, Ejs, Mongodb服务器
- MySQL 全文检索初窥
- Hibernate学习笔记
- MySQL 中实现数据的批量修改
- PL/SQL 学习
- Flask Sqlalchemy数据库操作例程
- redis 持久化与备份策略
- sqlplus的登录设置(glogin.sql)
- MySQL 忘记密码:skip-grant-tables
- oracle数据库的导出exp与导入imp
- MySQL 慢查询日志
- SQL读书笔记(三)
- 6.redis集群
- 从Oracle数据库中查询前几个月数据时需要注意的一些问题
- sql查询所有表以及表名的模糊查询
- 数据库基本概念(二)
- SQL读书笔记(二)
- SQL学习基础知识:创造字符段