SQLServer记录文本.docx
- 文档编号:26698535
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:25
- 大小:26.33KB
SQLServer记录文本.docx
《SQLServer记录文本.docx》由会员分享,可在线阅读,更多相关《SQLServer记录文本.docx(25页珍藏版)》请在冰豆网上搜索。
SQLServer记录文本
1.数据类型
类型
名称
取值范围
整数
bigint、
int、
smallint、
tinyint
(±922亿亿)8
(±21亿)4
(±32768)2
(0-255)1
位型
Bit
由0和1表示真、假。
货币型
money、smallmoney
(±922万亿)
(±21万),精确到万分之一。
十进制
Decimal、Numeric
±1038-1,最大位数38位
浮点数
float、
real
(±1.79E+308)(±3.40E+38)
日期
时间
Datetime、smalldatetime
1753.1.1-9999.12.31,精确到3.33毫秒
1900.1.1-2079.12.31,精确到分钟
单字节字符
char/varchar/text
定/变长单字节字符,最长8000;
Unicode字符
nchar/nvarchar/ntext
定/变长双字节字符,最长4000;
二进制数据
Binary/varbinary/image
定/变长二进制数据,最长8000;变长二进制数据
特殊
类型
timestamp
SQL活动的先后顺序。
uniqueidentifier
全局唯一标识
2.常量类型
类型
说明
例如
整型常量
没有小数点和指数E
60,25,-365
实型常量
decimal或numeric带小数点的常数,float或real带指数E的常数
15.63、-200.25
+123E-3、-12E5
字符串常量
单引号引起来
'学生','thisisdatabase'
双字节
字符串
前缀N必须是大写
单引号引起来
N'学生'
日期型常量
单引号(')引起来
'6/5/03','May122008','19491001'
货币型常量
精确数值型数据,前缀$
$380.2
二进制常量
前缀0x。
0xAE、0x12Ef、0x69048AEFDD010E
全局唯一
标识符
前缀0x
单引号(')引起来
0x6F9619FF8B86D011B42D00C04FC964FF
'6F9619FF-8B86-D011-B42D-00C04FC964FF'
3.SQL查询分析器常用快捷键
快捷键
功能
快捷键
功能
CTRL+A
全选
F3
重复查找
CTRL+C
复制
CTRL+H
替换
CTRL+V
粘贴
CTRL+SHIFT+L
使选定内容为小写
CTRL+X
剪切
CTRL+SHIFT+U
使选定内容为大写
CTRL+Z
撤消
CTRL+F5
分析查询并检查语法
TAB
增大缩进
F5
执行查询
SHIFT+TAB
减小缩进
ALT+BREAK
取消查询
CTRL+SHIFT+C
注释代码
F1
查询分析器帮助
CTRL+SHIFT+R
删除注释
SHIFT+F1
对所选SQL语句的帮助
CTRL+F
查找
F8
显示/隐藏对象浏览器
4.select无源查询,即在客户的屏幕上显示内容
SELECT常量|变量|函数|表达式[as别名][,…n]
5.变量是由用户定义并可赋值的实体。
变量有全局变量和局部变量两种。
局部变量用DECLARE语句声明,声明时它被初始化为NULL,并由SET语句或SELECT语句赋值,它只能用在声明该变量的过程实体中,即使用范围是定义它的批、存储过程和触发器等。
其名字由一个@符号开始。
定义:
DECLARE局部变量名数据类型[,…n]
赋值:
SET局部变量名=表达式[,…n]
如:
declare@整型变量int,@snvarchar(9)
set@整型变量=40
set@s='欢迎您到太原。
'
select@整型变量,@s
6.全局变量全局变量由SQLServer系统提供并赋值的变量,名字由@@符号开始。
用户不能建立全局变量,也不可能使用SET语句去修改全局变量的值。
通常应该将全局变量的值赋给在同一个批中的局部变量,以便保存和处理。
全局变量分为两类:
Ø与连接有关的全局变量,如:
@@rowcount影响的行数;
Ø与系统内部信息有关的全局变量。
如@@versionSQL的版本号。
SQL常用的全局变量
名称
说明
@@connections
返回当前到本服务器的连接的数目。
@@rowcount
返回上一条T-SQL语句影响的数据行数。
@@error
返回上一条T-SQL语句执行后的错误号。
@@procid
返回当前存储过程的ID号
@@remserver
返回登录记录中远程服务器的名字。
@@spid
返回当前服务器进程的ID标识。
@@version
返回当前SQLServer服务器的版本和处理器类型。
@@language
返回当前SQLServer服务器的语言。
7.函数可分系统定义函数和用户定义函数。
系统定义函数中最常用的是:
数学函数、字符串函数、日期时间函数、聚合函数、系统函数、系统统计函数。
数学函数:
函数
名称
ROUND(数字表达式,小数位数)
四舍五入
FLOOR(数字表达式)
整数函数(小于它的最大整数)
CEILING(数字表达式)
整数函数(大于它的最小整数)
RAND()
随机函数
字符串函数:
名称
函数
ASCII码
ASCII(字符表达式)
字符
CHAR(数字表达式)
统一代码
UNICODE(字符表达式)
字符
NCHAR(数字表达式)
小写
LOWER(字符表达式)
大写
UPPER(字符表达式)
长度
LEN(字符表达式)
空格
SPACE(数字表达式)
截取左字串
LEFT(字符表达式,整数)
截取右字串
RIGHT(字符表达式,整数)
截取中间字串
SUBSTRING(字符表达式,起始点,n)
求子串位置
CHARINDEX(字符表达式1,
字符表达式2,[开始位置])
剪去左空格
LTRIM(字符表达式)
剪去右空格
RTRIM(字符表达式)
重复字串
REPLICATE(字符表达式,n)
倒置字串
REVERSE(字符表达式)
数值转字串
STR(数字表达式)
日期时间函数
名称
函数
现在日期时间
GETDATE()
年
YEAR(日期型表达式)
月
MONTH(日期型表达式)
日
DAY(日期型表达式)
日期部分
DATEPART(格式串,日期型表达式)
日期加
DATEADD(格式串,数值,日期)
日期差
DATEDIFF(格式串,日期1,日期2)
聚合函数(除count外,其它的都忽略空值)
名称
最大
最小
求和
平均
计数
函数
MAX
MIN
SUM
AVG
COUNT
系统函数
函数
说明
APP_NAME
当前会话的应用程序名称
CURRENT_USER
当前的数据库用户。
USER_NAME
用户数据库用户名。
SESSION_USER
会话用户名
SYSTEM_USER
系统用户名
HOST_ID
工作站标识号。
HOST_NAME
工作站名称。
ISDATE
是否为有效的日期。
ISNULL
是否为NULL。
ISNUMERIC
是否为一个有效的数字类型。
@@ERROR
最后执行的T-SQL语句的错误代码。
@@TRANCOUNT
当前连接的活动事务数。
系统统计函数
函数
说明
@@CONNECTIONS
连接次数。
@@CPU_BUSY
CPU的工作时间
@@IDLE
闲置的时间
@@IO_BUSY
输入和输出的时间
@@TIMETICKS
返回一刻度的微秒
@@PACK_SENT
发送的数据包数
@@PACK_RECEIVED
接受的数据包数
@@PACKET_ERRORS
发生的数据包错误
@@TOTAL_WRITE
写入磁盘的次数
@@TOTAL_READ
读取磁盘的次数
@@TOTAL_ERRORS
磁盘读/写错误次数
8.逻辑运算
运算符
含义
AND
而且
OR
或者
NOT
否定
IN
在…之内
LIKE
匹配(像)
BETWEEN
在…之间。
EXISTS
存在
ALL
所有(都)
ANY
任一
SOME
有些
运算符优先级(从上到下,相同级从左到右)
类型
运算符
一元运算
+(正)、-(负)、~(按位NOT)
乘除模
*(乘)、/(除)、%(模)
加减串联
+(加)、(+串联)、-(减)
比较运算
=, >, <, >=, <=, <>
位运算
^(位异或)、&(位与)、|(位或)
逻辑非
NOT
逻辑与
AND
逻辑或等
ALL、ANY、BETWEEN、IN、LIKE、OR、SOME
赋值
=
9.批是一个SQL语句集,这些语句一起提交并作为一个组来执行。
批结束的符号是“GO”。
由于批中的多个语句是一起提交给SQLSERVER的,所以可以节省系统开销。
使用批限制:
ØCREATEDEFAULT、CREATEPROCEDURE、CREATERULE、CREATETRIGGER和CREATEVIEW语句不能在批处理中与其它语句组合使用。
批处理必须以CREATE语句开始,所有跟在CREATE后的其它语句将被解释为第一个CREATE语句定义的一部分。
Ø在同一个批中不能既绑定到列又被使用规则或默认。
Ø在同一个批中不能删除一个数据库对象又重建它。
Ø在同一个批中不能改变一个表再立即引用其新列。
10.1.RETURN
RETURN的作用是无条件返回所在的批、存储过程和触发器。
退出时,可以返回状态信息。
在RETURN语句后面的任何语句不被执行。
RETURN语句的语法形式:
RETURN[整型表达式]
2.PRINT和RAISERROR
PRINT语句的作用是在屏幕上显示用户信息。
其语法形式为:
PRINT{’字符串’|局部变量|全局变量}
RAISERROR语句的作用是将错误信息显示在屏幕上,同时也可以记录在NT日志中。
其语法形式为:
RAISERROR(错误号|错误信息,错误的严重级别,错误时的状态信息)。
3.复合语句(BEGIN...END)
其语法形式为:
BEGIN
执行的SQL语句
END
4.CASE表达式
根据测试/条件表达式的值的不同,取其相应的值。
CASE
{WHEN条件表达式0THEN结果表达式0}[,...n]
[ELSE结果表达式n]
END
如:
declare@分数decimal
declare@成绩级别nchar(3)
set@分数=88
set@成绩级别=
case
when@分数>=90and@分数<=100then'优秀'
when@分数>=80and@分数<90then'良好'
when@分数>=70and@分数<80then'中等'
when@分数>=60and@分数<70then'及格'
when@分数<60then'不及格'
end
print@成绩级别
或
CASE测试表达式
{WHEN简单表达式0THEN结果表达式0}[,...n]
[ELSE结果表达式n]
END
如:
declare@分数decimal
declare@成绩级别nchar(3)
set@分数=88
set@成绩级别=
casefloor(@分数/10)
when10then'优秀'
when9then'优秀'
when8then'良好'
when7then'中等'
when6then'及格'
else'不及格'
end
print@成绩级别
5.判断语句(IF...ELSE)
语法:
IF条件表达式
SQL语句1
[ELSE
SQL语句2]
6.循环语句(WHILE)
WHILE语句的作用是为重复执行某一语句或语句块设置条件。
其语法形式为:
WHILE条件表达式
SQL语句|复合语句
说明:
[BREAK]、[CONTINUE]位于复合语句内,为可选项。
BREAK跳出循环之后执行、CONTINUE转到循环开始之处执行。
如:
计算1到100之间偶数的个数和偶数的总和
declare@scoreintdeclare@sumintdeclare@countint
set@score=1set@count=0set@sum=0
while@score<=100
begin
if@score%2=0
begin//当在控制流中需要用begin…end来代替其他语言中的花括号.
set@sum=@sum+@score
set@count=@count+1
end
set@score=@score+1
end
select@sum,@count
7.注释
多行注释:
/*……*/
单行注释:
--
SQL杂汇
1.创建数据库
CREATEDATABASE数据库名
[ON(NAME='逻辑文件名',
FILENAME='物理文件名.mdf')]
[LOGON(NAME='逻辑文件名_log',
FILENAME='物理文件名_log.ldf')]
如:
createdatabase教学成绩管理数据库
on
(name=教学成绩管理数据库,
filename='e:
\sql\教学成绩管理数据库.mdf',
size=1,
filegrowth=10%)
logon
(name=教学成绩管理数据库_log,
filename=‘e:
\sql\教学成绩管理数据库.ldf',
size=5,
filegrowth=10%)
2.查看数据库,以下四种:
sp_helpdb[数据库名]//显示一个数据库的信息
sp_databases//显示系统内所有可用的数据库
sp_helpfile[数据库名]
sp_helpfilegroup[文件组名]
3.修改数据库
ALTERDATABASE命令中分别用下列选项:
ADDFILE增加数据文件
REMOVEFILE删除数据文件
MODIFYFILE修改数据文件
ADDLOGFILE增加日志文件
REMOVELOGFILE删除日志文件
MODIFYLOGFILE修改日志文件
如:
--【例5.12】设置[教学成绩管理数据库]自动收缩。
alterdatabase教学成绩管理数据库setauto_shrinkon
4.删除数据库
DROPDATABASE数据库名[,…]
5.表的管理
创建表:
CREATETABLE数据表名(列名数据类型|列名AS计算列表达式[,...n])
显示表的结构:
sp_help[数据库对象名]
列的管理:
1添加列ALTERTABLE表名ADD列名列的描述
2删除列ALTERTABLE表名DROPCOLUMN列名[,…]
3修改列ALTERTABLE表名ALTERCOLUMN列名列的描述
示例:
altertable学生信息表altercolumn姓名nchar(4)notnull
删除表:
DROPTABLE表名
6.数据的管理
1.插入数据:
INSERT[INTO]表名[(列名1,…)]Values(表达式1,…)
2.更新数据:
UPDATE表名SET列名=表达式[WHERE条件]
3.删除数据:
DELETE表名[WHERE条件]或TRUNCATETABLE表名
4.图像、文本数据的管理:
代研究。
1.sp_tableoption'表名','textinrow','值'
sp_tableoption'学生简历照片表','textinrow','on'不大于256字节。
sp_tableoption'学生简历照片表','textinrow','1000'不大于1000字节
sp_tableoption'学生简历照片表','textinrow','off'不在行中存储
2.写入数据:
WRITETEXT表名.列名指针变量数据(TEXTPTR函数获得有效的文本指针值)
3.修改数据:
UPDATETEXT表名.列名指针变量NULL|位置NULL|长度数据
4.读出数据:
READTEXT表名.列名指针位置长度
7.小结
功能
语句
语法格式
数据库
创建数据库*
CREATEDATABASE数据库名
[ON(NAME='逻辑文件名',
FILENAME='物理文件名.mdf')]
[LOGON(NAME='逻辑文件名_log',
FILENAME='物理文件名_log.ldf')]
删除数据库*
DROPDATABASE数据库名
数据表
创建表*
CREATETABLE数据表名
(列名数据类型|列名AS计算列表达式
[,...n]
)
数据表
修改表
添加列
ALTERTABLE表名ADD列名列的描述
修改列
ALTERTABLE表名
ALTERCOLUMN列名列的描述
删除列
ALTERTABLE表名
DROPCOLUMN列名,…
删除表*
DROPTABLE表名
数据操作
插入数据*
INSERT[INTO]表名[(列名1,…)]
Values(表达式1,…)
修改数据*
UPDATE表名
SET列名=表达式
[WHERE条件]
删除数据*
DELETE表名[WHERE条件]
数据查询
1.select基本语法:
SELECT字段列表
[INTO目标数据表]
FROM源数据表或视图[,...n]
[WHERE条件表达式]
[GROUPBY分组表达式[HAVING搜索表达式]]
[ORDERBY排序表达式[ASC]|[DESC]]
[COMPUTE行聚合函数名(表达式)[,...n]
[BY表达式[,...n]]]
2.聚合函数
函数名
功能
sum()
对数值型列或计算列求总和
avg()
对数值型列或计算列求平均值
min()
返回一个数值列或数值表达式的最小值
max()
返回一个数值列或数值表达式的最大值
count()
返回满足指定的条件的记录的个数
count(*)
返回找到的行数
3.连接查询(S1难点)
1).内连接(自然连接):
FROM表1[inner]JION表2ON条件表达式1(查询两张表都存在的)
2).外连接:
(1)左外连接:
FROM表1LEFT[OUTER]JOIN表2ON条件表达式(主表存在的,即紧跟from的表)
(2)右外连接:
FROM表1RIGHT[OUTER]JOIN表2ON条件表达式(从表存在的,即后面的表)
(3)全外连接:
FROM表1FULL[OUTER]JOIN表2ON条件表达式(两张表有一存在即可)
3).自连接:
在同一张表内进行自身连接(必须为表指定两个别名)
4).交叉连接:
非限制连接,将两个表不加任何约束地组合起来:
FROM表1CROSSJOIN表2或FROM表1,表2
4.合并结果集:
Union[ALL]
注意:
(1)联合查询是将两个表(结果集)顺序连接。
(2)UNION中的每一个查询所涉及的列必须具有相同的列数、相同位置的列数据类型要相同。
若长度不同,以最长的字段作为输出字段的长度。
(3)结果集中的列名来自第一个SELECT语句。
(4)最后一个SELECT查询可以带ORDERBY子句,对整个UNION操作结果集起作用。
且只能用第一个SELECT查询中的字段作排序列。
(5)系统自动删除结果集中重复的记录,除非使用ALL关键字。
5.COMPUTE行聚合函数名(统计表达式)[,...n][BY分类表达式[,...n]]
函数
描述
AVG
平均值
COUNT
行数
MAX
最高值
MIN
最低值
SUM
和
STDEV
统计标准偏差
STDEVP
填充统计标准偏差
VAR
统计方差
VARP
填充统计方差
注意:
(1)COMPUTE或COMPUTEBY子句中的表达式,必须出现在选择列表中,并且必须将其指定为与选择列表中的某个表达式完全一样,不能使用在选择列表中指定的列的别名。
(2)在COMPUTE或COMPUTEBY子句中,不能指定ntext、text和image数据类型。
(3)如果使用COMPUTEBY,则必须也使用ORDERBY子句。
表达式必须与在QRDERBY后列出的子句相同或是其子集,并且必须按相同的序列。
例如,如果ORDERBY子句是:
ORDERBYa,b,c则COMPUTE子句可以是下面的任意一个(或全部):
COMPUTEBYa,b,c或COMPUTEBYa,b或COMPUTEBYa
(4)在SELECTINTO语句中不能使用COMPUTE。
因而,任何由COMPUTE生成的计算结果不出现在用SELECTINTO语句创建的新表内。
数据视图
6.创建视图:
CREATEVIEW视图名[(列名1[,…n])]AS查询语句
注意:
(1)定义视图的用户必须对所参照的表或视图有查询权限,即可执行SELECT语句。
(2)不能使用COMPUTE或COMPUTEBY子句。
(3)不能使用ORDERBY子句。
(4)不能使用INTO子句。
(5)不能在临时表或表变量上创建视图。
修改视图:
ALTERVIEW视图名[(列名1[,…n])]AS查询语句
删除视图:
DROPVIEW视图名[,…n]
7.注意事项:
(1)只有在当前数据库中才能创建视图。
(2)视图的命名必须遵循标识符命名规则,不能与表同名,且对每个用户视图名必须是惟一的,即对不同用户,即使是定义相同的视图,也必须使用不同的名字。
(3)不能把规则、默认值或触发器与视图相关联。
(4)不能在视图上建立任何索引,包括全文索引。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLServer 记录 文本