SQL Server2005常用概念(created by one friend)


数据库(database):为特定目的或操作而组织和表示的信息、表和其他对象的集合。
数据库管理系统(database management system):是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库
数据库系统(database systems):是由数据库及其管理软件组成的系统
数据库对象:数据库中的表、索引、触发器、视图、键、约束、默认值、规则、用户定义数据类型或存储过程及数据库本身等
数据库所有者:DBO
架构:单个用户所拥有的数据库对象的集合,这些对象形成单个命名空间。
Server.database.schema.object 即服务器.数据库.架构.数据库对象
OLTP数据库:联机事务处理(OnLine Transaction Processing),用于捕获高比率的数据更改和添加
OLAP数据库:联机分析处理(OnLine Analytical Processing),用于组织大量的稳定数据以便于分析和检索
数据库设计的步骤:需求分析、概念设计、逻辑设计、物理设计
数据库重命名:ALTER DATABASE database_name MODIFY NAME= new_database_name
SQL Server用于存储数据的基本单位是页,每页容量为8KBnumer
对于一个SQL Server实例,最多可以创建32767个用户数据库
每个数据库至少具有两个操作系统文件:一个主数据文件和一个日志文件。主数据文件.mdf;次要数据文件.ndf;事务日志文件.ldf
Numeric类似decimal
Numeric(6,2)表示精确度为6,小数位数为2,其中小数点算1位精确度,且进行四舍五入
比如115.01
添加列:ALTER TABLE STUDENT ADD column_class VARCHAR(20) NULL
删除列:ALTER TABLE STUDENT DROP COLUMN column_class
修改数据:UPDATE score SET final=87
WHERE studentno=’008’ AND courseno=’c001’

数据完整性的类型:
(1) 域(Domain)完整性:实现机制有默认值(Default)、检查(Check)、外键(Foreign Key)、数据类型(Data Type)和规则(Rule)
(2) 实体(Entity)完整性:实现机制有主键(Primary Key)、唯一码(Unique Key)、唯一索引(Unique Index)和标识列(Identity Column)
(3) 引用完整性:实现机制有外键(Foreign Key)、检查(Check)、触发器(Trigger)和存储过程(Stored Procedure)
(4) 用户定义完整性:实现机制有规则(Rule)、触发器(Trigger)和存储过程(Stored Procedure)及创建数据表时的所有约束(Constraint)
SQL SERVER 2005 支持的约束类型:1,NOT NULL约束 2,PRIMARY KEY约束 3,FOREIGN KEY约束 4,UNIQUE约束 5,CHECK约束
Transact-SQL语句分类:
1, 数据定义语言(Data Definition Language,DDL),包括数据库对象的创建(CREATE)、修改(ALTER)和删除(DROP)
2, 数据操纵语言(Data Manipulation Language,DML),包括数据的查询(SELECT)、添加(INSERT)、修改(UPDATE)和删除(DELETE)
3, 数据控制语言(DCL),用来设置或更改数据库用户或角色权限的语句,包括授予(GRANT)、拒绝(DENY)、撤销(REVOKE)等命令
4, 控制流语句,如BEGIN…END、IF…ELSE、WHILE、BREAK、GOTO、WAITFOR、RETURN等

对于Unicode字符串,其前面必须有一个大写字母N前缀,如N’中国’

局部变量:
DECLARE @myvar nchar(20)
set @myvar =’This is a test’
SELECT @myvar

包含C的数据显示出来:select * from product where productname like’%C%’
显示以en结尾的所有3个字母的字符串:like’_en’
%代表任意字符串,_代表任意单个字符

Transact-SQL中的常用数学函数:
ABS 返回表达式的绝对值
CEILING返回大于或等于指定数值表达式的最小整数
EXP 返回给定表达式为指数的e值,如exp(y)
FLOOR 返回小于或等于指定数值表达式的最大整数
LOG 返回给定表达式的自然对数
LOG10 返回给定表达式的以10为底的对数
PI 常量,圆周率
POWER 返回给定表达式的指定次方的值
ROUND 返回指定小数的位数的表达式的值,
如select round(13.45767,3)结果为13.45800
SQUARE 返回给定表达式的平方
SQRT 返回给定表达式的平方根
转换类型函数:convert(varchar(12),year(getdate()))
或者 cast(year(getdate()) as varchar(12))

字符串函数:
LEN 返回给定字符串表达式的字符个数,其中不包含尾随空格
LTRIM 删除起始空格后返回字符表达式
SUBSTRING 求子串函数

内连接((INNER) JOIN)为默认连接
左外连接(LEFT (OUTER) JOIN),右外连接(RIGHT (OUTER) JOIN)
分别以左表和右表为基准,对于不匹配的行的所有列全部赋予NULL,即不输出该行。
完全外连接(FULL (OUTER) JOIN)则保留不匹配的行,只把不匹配的列赋予NULL。
交叉连接(CROSS JOIN)没有连接条件,也没有WHERE子句,直接产生两个表的笛卡尔积,结果集大小为二者行数之积。
利用子查询做表达式:
例1:查询学号为001的学生的入学成绩、所有学生的平均入学成绩、该学生成绩与所有学生的平均入学成绩的差
SELECT studentno,sname,point,
(SELECT AVG(point) FROM student)AS ‘平均成绩’,
point- (SELECT AVG(point) FROM student) AS ‘分数差值’
FROM student
WHERE studentno=’001’
例2:查询选修课程多于两门、且期末成绩均在85分以上的学生的学号、姓名和电话
SELECT studentno,sname,phone
FROM student
WHERE studentno IN (SELECT studentno FROM score WHERE final>85
GROUP BY studentno HAVING count(*)>2)
利用子查询关联数据 P164
利用子查询生成派生表
例:查询期末成绩高于85分、总评成绩高于90分的学生的学号、课程号和总评成绩
SELECT TT.studentno,TT.courseno,
TT.final*0.8+TT.usually*0.2 AS ’总评成绩’
FROM (SELECT * FROM score WHERE final >85) AS TT
WHERE TT.final*0.8+TT.usually*0.2>90
利用子查询修改表数据 P165
索引:只有表的所有者才能在表上创建索引
聚集索引:决定了数据库表中记录行的存储顺序。每个表中只能有一个聚集索引
非聚集索引:每个表最多可以创建249个。
唯一索引:聚集索引和非聚集索引都可以是唯一索引
视图:是从一个或几个基表(或视图)导出的表,它是一个虚拟表
填充因子(FILLFACTOR)
存储过程:是独立存在于表之外的数据库对象
1, 系统存储过程:带有sp_前缀。如sys.sp_helpdb
2, 用户定义的存储过程:Transact-SQL或CLR
3, 临时存储过程:以“#”或“##”为前缀
4, 扩展存储过程:以xp_为前缀,是SQL Server 2005 的实例可以动态加载和运行的DLL
触发器:是一种相应数据操作语言(DML)事件或数据定义语言(DDL)事件而执行的特殊类型的存储过程。只有表的所有者可以创建
DML触发器:分为AFTER触发器和INSTEAD OF触发器两种
DDL触发器
SQL Server为每个触发器创建和管理两个特殊的表
1, 插入表inserted表:与INSERT或UPDATE语句相关的被添加或被更新的记录
2, 删除表deleted表:与DELETE或UPDATE 语句相关的被删除的记录
对于它们,用户只有读取的权限,没有修改的权限
用户:一组匹配的帐户和密码
角色:管理权限相近的安全帐户的集合
服务器角色的最高权限为系统管理员(sysadmin),数据库角色的最高权限为数据库所有者(db_owner)
完整数据库备份:备份在备份过程中发生的所有活动和事务日志中的所有未提交事务的数据库备份
差异数据库备份:只备份自上一次完整数据库备份发生改变的内容和在差异备份过程中所发生的所有活动,及事务日志中所有未提交的部分的数据库备份
事务日志备份:在完整数据库备份的基础上,从上一次成功执行BACKUP LOG语句之后到当前事务日志结尾的这段事务日志的数据库备份
还原数据库时,首先要进行创建完整数据库备份操作。
SQL Server代理实际上是一种Windows服务,可以帮助管理员完成很多事先预设好的作业,在规定的时间内自动完成
作业是由一系列SQL Server代理顺序执行的指定操作
警报:是一种对事件等信息进行检测的机制
操作员:是在完成作业或出现警报时,可以接受电子通知的人员的别名
维护计划:用于创建所需的维护任务工作流,以确保数据库运行良好
创建发布:将要进行复制的源数据库对象进行发布处理
创建订阅;在发布服务器或订阅服务器中创建请求订阅
配置分发:在创建发布之前,如果尚未在服务器上配置分发,可以先配置“分发服务器”
系统性能监视器:在“运行”对话框中输入perfmon命令,即可启动。它可以创建图表、警报、日志和报表,以监视SQL Server实例

数据库(database):为特定目的或操作而组织和表示的信息、表和其他对象的集合。

数据库管理系统(database management system):是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库

数据库系统(database systems):是由数据库及其管理软件组成的系统

数据库对象:数据库中的表、索引、触发器、视图、键、约束、默认值、规则、用户定义数据类型或存储过程及数据库本身等

数据库所有者:DBO

架构:单个用户所拥有的数据库对象的集合,这些对象形成单个命名空间。

Server.database.schema.object
即服务器.数据库.架构.数据库对象

OLTP数据库:联机事务处理(OnLine Transaction Processing),用于捕获高比率的数据更改和添加

OLAP数据库:联机分析处理(OnLine Analytical Processing),用于组织大量的稳定数据以便于分析和检索

数据库设计的步骤:需求分析、概念设计、逻辑设计、物理设计

数据库重命名:ALTER DATABASE database_name  MODIFY NAME=
new_database_name

SQL Server用于存储数据的基本单位是页,每页容量为8KBnumer

对于一个SQL Server实例,最多可以创建32767个用户数据库

每个数据库至少具有两个操作系统文件:一个主数据文件和一个日志文件。主数据文件.mdf;次要数据文件.ndf;事务日志文件.ldf

Numeric类似decimal

Numeric(6,2)表示精确度为6,小数位数为2,其中小数点算1位精确度,且进行四舍五入

比如115.01

添加列:ALTER TABLE STUDENT ADD column_class VARCHAR(20) NULL

删除列:ALTER TABLE STUDENT DROP COLUMN column_class

修改数据:UPDATE score SET final=87

WHERE studentno=’008’ AND
courseno=’c001’

数据完整性的类型:

<!--[if !supportLists]-->(1)      
<!--[endif]-->域(Domain)完整性:实现机制有默认值(Default)、检查(Check)、外键(Foreign Key)、数据类型(Data Type)和规则(Rule)

<!--[if !supportLists]-->(2)      
<!--[endif]-->实体(Entity)完整性:实现机制有主键(Primary Key)、唯一码(Unique Key)、唯一索引(Unique Index)和标识列(Identity Column)

<!--[if !supportLists]-->(3)      
<!--[endif]-->引用完整性:实现机制有外键(Foreign Key)、检查(Check)、触发器(Trigger)和存储过程(Stored Procedure)

<!--[if !supportLists]-->(4)      
<!--[endif]-->用户定义完整性:实现机制有规则(Rule)、触发器(Trigger)和存储过程(Stored Procedure)及创建数据表时的所有约束(Constraint)

SQL SERVER 2005 支持的约束类型:1,NOT NULL约束  2,PRIMARY KEY约束  3,FOREIGN KEY约束  4,UNIQUE约束  5,CHECK约束

Transact-SQL语句分类:

<!--[if !supportLists]-->1, 
<!--[endif]-->数据定义语言(Data Definition Language,DDL),包括数据库对象的创建(CREATE)、修改(ALTER)和删除(DROP)

<!--[if !supportLists]-->2, 
<!--[endif]-->数据操纵语言(Data Manipulation Language,DML),包括数据的查询(SELECT)、添加(INSERT)、修改(UPDATE)和删除(DELETE)

<!--[if !supportLists]-->3, 
<!--[endif]-->数据控制语言(DCL),用来设置或更改数据库用户或角色权限的语句,包括授予(GRANT)、拒绝(DENY)、撤销(REVOKE)等命令

<!--[if !supportLists]-->4, 
<!--[endif]-->控制流语句,如BEGIN…END、IF…ELSE、WHILE、BREAK、GOTO、WAITFOR、RETURN等

对于Unicode字符串,其前面必须有一个大写字母N前缀,如N’中国’

局部变量:

DECLARE @myvar nchar(20)

set @myvar =’This is a test’

SELECT @myvar

包含C的数据显示出来:select * from product where productname like’%C%’

显示以en结尾的所有3个字母的字符串:like’_en’

%代表任意字符串,_代表任意单个字符

Transact-SQL中的常用数学函数:

ABS 返回表达式的绝对值

CEILING返回大于或等于指定数值表达式的最小整数

EXP 返回给定表达式为指数的e值,如exp(y)

FLOOR 返回小于或等于指定数值表达式的最大整数

LOG 返回给定表达式的自然对数

LOG10 返回给定表达式的以10为底的对数

PI 常量,圆周率

POWER 返回给定表达式的指定次方的值

ROUND 返回指定小数的位数的表达式的值,

如select round(13.45767,3)结果为13.45800

SQUARE 返回给定表达式的平方

SQRT 返回给定表达式的平方根

转换类型函数:convert(varchar(12),year(getdate()))

或者 cast(year(getdate()) as varchar(12))

字符串函数:

LEN 返回给定字符串表达式的字符个数,其中不包含尾随空格

LTRIM 删除起始空格后返回字符表达式

SUBSTRING 求子串函数

内连接((INNER) JOIN)为默认连接

左外连接(LEFT (OUTER) JOIN),右外连接(RIGHT (OUTER) JOIN)

分别以左表和右表为基准,对于不匹配的行的所有列全部赋予NULL,即不输出该行。

完全外连接(FULL (OUTER) JOIN)则保留不匹配的行,只把不匹配的列赋予NULL。

交叉连接(CROSS JOIN)没有连接条件,也没有WHERE子句,直接产生两个表的笛卡尔积,结果集大小为二者行数之积。

利用子查询做表达式:

例1:查询学号为001的学生的入学成绩、所有学生的平均入学成绩、该学生成绩与所有学生的平均入学成绩的差

SELECT studentno,sname,point,

(SELECT AVG(point) FROM student)AS
‘平均成绩’,

point- (SELECT AVG(point) FROM student)
AS ‘分数差值’

FROM student

WHERE studentno=’001’

例2:查询选修课程多于两门、且期末成绩均在85分以上的学生的学号、姓名和电话

SELECT studentno,sname,phone

FROM student

WHERE  studentno IN (SELECT
studentno FROM score WHERE final>85

GROUP BY studentno HAVING
count(*)>2)

利用子查询关联数据 
P164

利用子查询生成派生表

例:查询期末成绩高于85分、总评成绩高于90分的学生的学号、课程号和总评成绩

SELECT
TT.studentno,TT.courseno,

TT.final*0.8+TT.usually*0.2 AS
’总评成绩’

FROM (SELECT * FROM score WHERE final
>85) AS TT

WHERE
TT.final*0.8+TT.usually*0.2>90

利用子查询修改表数据 P165

索引:只有表的所有者才能在表上创建索引

聚集索引:决定了数据库表中记录行的存储顺序。每个表中只能有一个聚集索引

非聚集索引:每个表最多可以创建249个。

唯一索引:聚集索引和非聚集索引都可以是唯一索引

视图:是从一个或几个基表(或视图)导出的表,它是一个虚拟表

填充因子(FILLFACTOR)

存储过程:是独立存在于表之外的数据库对象

<!--[if !supportLists]-->1,             
<!--[endif]-->系统存储过程:带有sp_前缀。如sys.sp_helpdb

<!--[if !supportLists]-->2,             
<!--[endif]-->用户定义的存储过程:Transact-SQL或CLR

<!--[if !supportLists]-->3,             
<!--[endif]-->临时存储过程:以“#”或“##”为前缀

<!--[if !supportLists]-->4,             
<!--[endif]-->扩展存储过程:以xp_为前缀,是SQL Server 2005
的实例可以动态加载和运行的DLL

触发器:是一种相应数据操作语言(DML)事件或数据定义语言(DDL)事件而执行的特殊类型的存储过程。只有表的所有者可以创建

DML触发器:分为AFTER触发器和INSTEAD OF触发器两种

DDL触发器

SQL Server为每个触发器创建和管理两个特殊的表

<!--[if !supportLists]-->1,             
<!--[endif]-->插入表inserted表:与INSERT或UPDATE语句相关的被添加或被更新的记录

<!--[if !supportLists]-->2,             
<!--[endif]-->删除表deleted表:与DELETE或UPDATE 语句相关的被删除的记录

对于它们,用户只有读取的权限,没有修改的权限

用户:一组匹配的帐户和密码

角色:管理权限相近的安全帐户的集合

服务器角色的最高权限为系统管理员(sysadmin),数据库角色的最高权限为数据库所有者(db_owner)

完整数据库备份:备份在备份过程中发生的所有活动和事务日志中的所有未提交事务的数据库备份

差异数据库备份:只备份自上一次完整数据库备份发生改变的内容和在差异备份过程中所发生的所有活动,及事务日志中所有未提交的部分的数据库备份

事务日志备份:在完整数据库备份的基础上,从上一次成功执行BACKUP LOG语句之后到当前事务日志结尾的这段事务日志的数据库备份

还原数据库时,首先要进行创建完整数据库备份操作。

SQL Server代理实际上是一种Windows服务,可以帮助管理员完成很多事先预设好的作业,在规定的时间内自动完成

作业是由一系列SQL
Server代理顺序执行的指定操作

警报:是一种对事件等信息进行检测的机制

操作员:是在完成作业或出现警报时,可以接受电子通知的人员的别名

维护计划:用于创建所需的维护任务工作流,以确保数据库运行良好

创建发布:将要进行复制的源数据库对象进行发布处理

创建订阅;在发布服务器或订阅服务器中创建请求订阅

配置分发:在创建发布之前,如果尚未在服务器上配置分发,可以先配置“分发服务器”

系统性能监视器:在“运行”对话框中输入perfmon命令,即可启动。它可以创建图表、警报、日志和报表,以监视SQL Server实例

时间: 2024-08-11 07:47:39

SQL Server2005常用概念(created by one friend)的相关文章

SQL Server2005基础知识(created by one friend)

1 -- 创建表book的Transact-SQL语句: 2 create database test01 3 create table test01.dbo.book( 4 book_id nchar(6) not null, 5 book_name nchar(30) null, 6 price numeric(10,2) null, 7 constraint PK_book primary key clustered(book_id asc)--建立主键 8 )on [primary] 9

sql server2005 常用语句

本人初学者时用 创建一个库为study create database study 创建一个学生信息表 create table 学生信息表 (姓名 char(10) not null, 学号 char(12) not null, 年龄 int not null, 性别 char(4), 电话号码 char(11) ) http://www.xp933.com/tech/300.html  无损调整c盘大小 创建一个学生信息表一个主键 create table 学生信息表一个主键 (姓名 cha

DBA_Oracle DBA常用SQL汇总(概念)

2014-06-20 BaoXinjian DBA常用的SQL汇总 1.监控索引是否使用 alter index &index_name monitoring usage; alter index &index_name nomonitoring usage; select * from v$object_usage where index_name = &index_name; 2.求数据文件的I/O分布 select df.name,phyrds,phywrts,phyblkr

SQL Server2005索引碎片分析和解决方法

SQL Server2005索引碎片分析和解决方法 本文作者(郑贤娴),请您在阅读本文时尊重作者版权. 摘要: SQL Server,为了反应数据的更新,需要维护表上的索引,因而这些索引会形成碎片.根据工作量的特征,这些碎片会影响对应的工作性能.此文帮助决定是否需要整理碎片以改善性能的信息.SQL Serve提供一些命令来实现索引的碎片整理.这里比较其中两个命令:DBCC DBREINDEX 和 DBCC INDEXDEFRAG. 关键词: SQL Server;索引碎片;数据库优化毫无疑问,给

sql server 常用的函数小汇

摘录些许sqlserver 常用到的一些函数,便于日常学习使用 一.字符转换函数1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错.2.CHAR()将ASCII 码转换为字符.如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL .3.LOWER()和UPPER()LOWER()将字符串全部转为小写:UPPER()将字符串全部转为大写.4.STR()把

sql server2005主从数据库同步配置

网站规模到了一定程度之后,该分的也分了,该优化的也做了优化,但是还是不能满足业务上对性能的要求:这时候我们可以考虑使用主从库.主从库是两台服务器上的两个数据库,主库以最快的速度做增删改操作+最新数据的查询操作;从库负责查询较旧数据,做一些对实效性要求较小的分析,报表生成的工作.这样做将数据库的压力分担到两台服务器上从而保证整个系统响应的及时性.如果还无法满足业务需求,我们就要考虑创建服务器群,这里我们不做考虑! 1. 打开sql server企业管理器,在对象资源管理器里面选择复制à本地发布,右

SQL 语句常用函数

一.字符转换函数 1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用''括起来,但含其它字符的字符串必须用''括起来使用,否则会出错. 2.CHAR()将ASCII 码转换为字符.如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL . 3.LOWER()和UPPER()LOWER()将字符串全部转为小写:UPPER()将字符串全部转为大写. 4.STR()把数值型数据转换为字符型数据.STR (<float_ex

SQL之常用函数

表8-2 中的SOUNDEX 需要做进一步的解释.SOUNDEX 是一个将任何文本串转换为描述其语音表示的字母数字模式的算法.SOUNDEX 考虑了类似的发音字符和音节,使得能对字符串进行发音比较而不是字母比较.虽然SOUNDEX 不是SQL 概念,但多数DBMS 都提供对SOUNDEX的支持. 说明:SOUNDEX 支持Microsoft Access 和PostgreSQL 不支持SOUNDEX() SQL之常用函数 原文地址:https://www.cnblogs.com/zero-vic

Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败 及sql2008外围服务器

转载:Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败 错误原因如下: Exception in thread "main" org.hibernate.exception.JDBCConnectionException: Cannot open connection at org.hibernate.exception.SQLStateConverter.convert(SQLStateConver