四级数据库工程师考试中涉及的语句
- 格式:docx
- 大小:34.32 KB
- 文档页数:11
1、创建数据库CREATE DATABASE 数据库名[ON[<文件格式>[,………n] ]][LOG ON | <文件格式>[,……n] |]<文件格式>::=([name=逻辑文件名,]FILENAME=’操作系统下的文件的五路路径和文件名’ [,size=文件初始大小][,MAXSIZE=文件最大大小|UNLIMITED][,FILEGROWTH=增量值] )[,………n]上述语法的含义如下:(1)ON 关键字表示数据库是根据后面的参数来创建的。
(2)N是一个占位符,表明可为新数据库制定多个文件。
(3)LOG ON 子句用于指定该数据库的事务日志文件。
(4)NAME 用于指定数据文件的逻辑文件名。
(5)FILENAME用于指定数据文件的存储位置及物理文件名。
(6)SIZE用于指定数据文件的初始大小,可以加上MB或KB,默认为MB。
(7)MAXSIZE用于指定数据文件的最大大小,可以加上MB或KB,默认为MB,省略此项表示数据库文件的最大大小无限制。
(8)FILEGROWTH用于指定数据文件的增加值,可以加上MB、KB或%,默认为MB。
省略此项表示文件大小按10%自动增长。
此项的值应该是一个正整数,不要包含小数位,而且此项的值不能超过MAXSIZE的值。
FILEGROWTH=0表示不自动增长。
2、删除数据库DROP DATABASE 数据库名[,… n]注意,不能删除当前正在使用的数据库。
3、变量声明与赋值局部变量必须先声明,然后才能使用。
声明变量的语句格式为:DECLARE @ 局部变量名数据类型变量名最多可以包含128个字符,局部变量的数据类型可以是系统提供的数据类型,也可以是用户自己定义的数据类型,但不能把局部变量指定为text或image类型。
使用DECLARE语句声明一个局部变量后,这个变量的值将被初始化为NULL。
变量赋值语句格式:Set @ 局部变量名=值|表达式除此之外,也可以使用SELECT语句对局部变量赋值,格式为:SELECT @ 局部变量名=值|表达式4、流程控制语句(1)BEGIN……END 语句BEGIN语句1语句2END位于BEGIN和END之间的各个语句既可以是单个的Transact-SQL语句,也可以是一个语句块。
(2)、IF…ELSE 语句IF 布尔表达式语句块1[ ELSE语句块2]语句块1和2可以是单个的SQL语句,也可以是用BEGIN…END定义的语句块。
(3)、WHILE语句语法格式:WHILE 布尔表达式循环体语句块5、存储过程创建和执行存储过程创建存储过程的SQL语句为:CREATE PROCEDURE ,其语法格式为:CREATE PROCEDURE 存储过程名[ | @参数名数据类型| [=DEFALUT] [OUTPUT] ] [ , … n] AS SQL 语句[… n]其中:(1)、default:表示参数的默认值。
如果定义了默认值,则在执行存储过程时,可以不必指定该参数的值。
默认值必须是常见或NULL。
(2)OUTPUT:表明参数是输出参数。
该选项的值可以返回给存储过程的调用者。
执行存储过程的SQL语句EXECUTE,其语法格式为:[EXECUTE ] 存储过程名[实参[,OUTPUT] [,… n]]执行有多个输入参数的存储过程时,参数的传递方式有两种:按参数位置传递值和按参数名传递值。
6、用户自定义函数:标量函数、内嵌表值函数和多语句表值函数。
(1)、定义标量函数语法格式如下:CREATE FUNCTION [拥有者名.] 函数名([{@参数名[AS] 标量数据类型[=default]} | [,… n]])RETURN 返回值类型[WITH <function_option>[,…n]][AS]BEGIN函数体RETRUN标量表达式END标量函数是Sql中最简单的,例如,函数f(x)=x*x+2x+1,这是一个数学里的二次函数,现在通过标量函数来表示这个函数。
操作如下:例子:在查询分析器中输入如下的代码:/*创建一个名称为f()的函数*/use testgocreate function dbo.f(@x int)returns intasbeginreturn @x*@x+2*@x+1end;go(2)、创建内嵌表值函数CREATE FUNCTION [拥有者名.] 函数名([{@参数名[AS] 标量数据类型[=default]} | [,… n]])RETURN TABLE[AS]RETURN [(] select 语句[]];select_stmt是值得的一个select语句,从语法上看,这个函数返回的是一条查询结果。
例如要创建一个函数,在输入学生编号以后,输出学生、老师的姓名。
例子:在查询分析界面输入代码:/*在test数据库中创建带学生编号参数的函数*/USE testGOCREATE FUNCTION select_student(@id INT)RETURNS TABLEASRETURNSELECT AS'学生姓名', AS'老师姓名'FROM student s INNER JOIN teachers tON s.teacher_id=t.idWHERE s.id=@idGO调用select*from dbo.select_student(2006005)(3)创建多语句表值函数与使用语法如下:CREATE FUNCTION [拥有者名.] 函数名([{@参数名[AS] 标量数据类型[ =default]}[,…n]])RETURNS @返回变量Table<表定义>[WITH <function_option>[,…n]][AS]BEGIN函数体RETRUN scalar_expressionEND[;]例如创建一个函数,输入学生的编号,输出学生、老师、及家长的姓名,如下:例子:在查询分析界面输入代码:/*创建一个带学生编号参数的多语句表值函数*/USE testGOCREATE FUNCTION select_info(@id INT)RETURNS @information TABLE(学生姓名CHAR(20),老师姓名CHAR(20),父亲姓名CHAR(20),母亲姓名CHAR(20))ASBEGININSERT INTO @informationSELECT , ,p.father,p.motherFROM student s INNER JOIN teachers tON t.id=s.teacher_id INNER JOIN parents pON s.parents_id=p.id WHERE s.id=@idRETURNEND;GOSELECT * from dbo.select_info(2006005)GO注:自定义函数前面都要加上所有者(dbo)创建函数中的限制语句修改/重新命名/删除函数语法如下:ALTER FUNCTION function_name<NEW function content>重命名:使用sp_rename删除:DROP FUNCTION {[owner.]function_name}[,…n]7、触发器创建触发器的SQL语句为:CREATE TRIGGER,语法格式为:CREATE TRIGGER trigger_nameON { table | view }[ WITH ENCRYPTION ]{{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }[ WITH APPEND ][ NOT FOR REPLICATION ]AS[ { IF UPDATE ( column )[ { AND | OR } UPDATE ( column ) ][ ...n ]} ]sql_statement [ ...n ] } }【例】在数据库SCDB中设计一个触发器,该触发器的作用为:当在s表中删除某一个学生时,在sc表中有关该学生的选课信息也全部删除。
提示:在此例中,由于涉及到了对学生表删除操作,因而需要设计一个DELETE类型的触发器。
在查询分析器中运行如下命令:USE scdbGOCREATE TRIGGER del_student ON SAFTER DELETEASDELETE FROM sc WHERE sno IN (SELECT sno FROM DELETED)Print '删除表sc中的相关记录条数为'+str(@@rowcount)+'条'GO8、查看修改及删除对象(1)修改存储过程语句:ALTER procedure,其语法格式为:ALTER PROCEDURE 存储过程名[ | @参数名数据类型| [=default] [OUTPUT] ] [, … n]AS SQL 语句[,… n](2)、修改用户自定义函数SQL语句为:ALTER FUNCTION,其语法格式为:ALTER FUNCTION 函数名<新函数定义语句>(3)、修改触发器ALTER TRIGGER 触发器名称ON { 表名| 视图名}[ WITH ENCRYPTION ]FOR | AFTER | INSTEAD OF [DELETE] [,] [INSERT] [,] [UPDATE]ASSQL语句[ ...n ](4)删除触发器DROP TRIGGER语句的语法格式为:DROP TRIGGER 触发器名称[ ,...n ](5)使用Transact-SQL语句删除存储过程DROP PROCEDURE { procedureNmae} [ ,...n ](6)使用Transact-SQL语句删除自定义函数DROP FUNCTION { [拥有者名.] 函数名} [ ,...n ]9、建立登录账户(1)、建立SQL Server 身份验证的登录账户可以使用系统存储过程sp_addlogin 创建SQL Server 身份验证的登录账户,语法格式为:Sp_addlogin [@loginame=]’login’ [,[@ passwd=] ‘password’] [, [ @defdb=] ‘ database’]其中[@loginame=]’login’:登录账户名。
[@ passwd=] ‘password’]:密码[ @defdb=] ‘ database’]:默认连接的数据库。
(2)、建立windows 身份验证的登录账户SP_grantlogin [@ loginame=]’login’[@ loginame=]’login’为要添加的windows NT用户或组的名称。