RDBMS:(relational database management system:关系型数据库管理系统)
数据库对象至少包含一组表对象。也包含一些其他对象如存储过程和视图。(称表为对象,一开始可能觉得和我们常见的对象有出入,因为常见的编程对象,有属性和方法,数据库里的对象从使用的角度来看,虽然同样是对象,但还是钥区分一下。)存储过程和试图是对保存在数据库表中的数据的特定分组。同一个物理服务器上可有多个SQL事例,并有单独的登陆和管理权限。?
(1).master 数据库 总体控制
(2).model 数据库。模型
(3).msdb 数据库 备份记录
(4).tmppdb 数据库 临时数据库 每次启动SQLServer 都要重新穿创建
日志:自然连续的,数据库的访问是随机的。每次先写日志后将改变加载到数据库文件
表类似Excel表格。域(列),实体数据(行组成),表是数据的载体。
表也包含列类型的描述信息(metadata,数据描述信息)
(1):索引 群集索引:目录查找 非群集索引:关键字目录。非群集之前必须得有群集索引
(2):触发器 表架构内对象 是在表操作时(如插入,更新,删除)所执行的一段代码。主要用于输入时复制数据,或更新时检查数据,确保数据满足响应标准。
(3):约束 顾名思义。限制表中数据满足某种条件
数据库所有的表和其他队形要存储在一个文件中。(日志文件除外)。该文件是一些主要文件组的成员。文件位于文件组中
数据库关系图是数据库设计的可视表示。包括表列名和表之间的关系。
试图是一种虚拟表。试图以查询的形式存储在数据库中。作用 控制所要显示的数据,创建索引视图。
1.对于引用了多个表的视图来说,索引视图可读性更好。因为他预先构造了表之间的链接。
2.聚合只要执行一次,(插入或更新时执行),然后就可以从索引信息中直接读取。
3.视图上的索引必须即时更新。插入和删除索引需要更多的系统开销。
存储过程是SQL Server 编程的基础,是组成一个逻辑单元的的T-SQL语句的有序集合。存储过程允许用变量和参数,选择 ,循环。与发送单条语句相比有以下几个优点:
1:不用长字符串 而用短存储过程名 可以减少 运行代码所需要的信息流量
2:预先优化 预编译 节省执行时间
3:封装 隐藏复杂性
4:可从其他存储过程调用,重用 。
和存储过程非常像。类似于标准编程语言的函数。
1.返回的数据包含大部分SQLServer数据类型。不包括text ,ntext,image,cursor,timestamp。
2.没有副作用。只能值传递,可以返回特殊的数据类型--表
用户等价于登陆名。用户依次属于一个或多个角色。SQL Server 可以直接赋予用户或角色执行某种权限。一个或多个用户属于同一角色。
规则和约束和相似。限制插入表中数据类型(很少用了)
默认值
用户自定义数据类型几乎可定义任意数据类型。
存储在数据库外部。
Bit Bigint Int SmallInt TinyInt Date Money Char VarChar Text NChar VarBinary Image Table ......
没有无符号的数据类型
select 'Today''s date is' + CONVERT(varchar(13), GETDATE(),101);
1:'Today''s date is':字符串,中间那个引号要用两个,转义。
2:CONVERT 转义,强转。没有这个 默认日期是不能转到字符串。
3:101 估计是编码,暂时不清楚
NULL数据.NULL值是未定义 和0并不一样
1:需要命名的对象
Stored procedurce(存储过程) Tables(表) Columns(列)Views(视图)Rules(规则)Constraints(约束)Logins(登录名)Files(文件) UserDefineType (用户自定义类型)。。。。
2:命名规则
(1):必须以Unicode 3.2 规范的任意字母开头。其他自负几乎可以是任意字符。
(2):正常对象的名称可以多达128个字符,临时对象的名称多达116个字符。
(3):与关键字相同必须使用双引号“”或方括号【】来引起来关键字(这种命名是自找麻烦)
RDBMS之所以强大,是因为数据库对象能将业务相关的功能和业务规则放到带有数据的数据库中。SQL Server 和你熟悉的编程差不多。只不过要转换下编程对应的数据类型。