SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),那么你对sqlserver了解多少呢?这次漂亮的小编为亲带来了8篇《SQLServer数据库操作总结(sql语法的使用) -电脑资料》,希望可以启发、帮助到大朋友、小朋友们。
.5 修改基本表 篇一
2.6.1 删除列注意:若列上有约束,所以应先删除该约束后,再删除该列。
语法: alter table 表名 drop column 列名
操作:
--先删除表中的约束Alter table student drop constraint df_xsqk_jg--再删除表中的列Alter table student drop column address,email,number2.6.2 删除行
语法: delete [from]表名
[ where 逻辑表达式 ]
操作:删除student表中姓名为zhangsan的数据记录
delete from student where name = 'zhangsan'2.6.3 重命名数据表
语法: exec sp_rename '表名','新表名'
操作:将student表重命名为rename_student
exec sp_rename ‘student’,'rename_student'2.6.4 删除数据表注意:如果要删除的表T1是其他表T2的参照表,即如果T2有外键约束,参照了T1的数据项,则不能删除。需要先取消T2表中的外键约束载删除T1,或者先删除T2表再删除T1表。
语法: drop table 表名[ ,……n ]
操作:已知sc表设置了外键约束,参照了表student和表course,现在要删除student表和course表。
Drop table sc goDrop table student ,course
.1 创建数据库 篇二
CREATE DATABASE DBON PRIMARY(NAME = DB_data,FILENAME = 'F:DB_data1.mdf', SIZE = 10MB,MAXSIZE = UNLIMTED),(NAME = DB_data2,FILENAME = 'F:DB_data2.ndf', SIZE = 11MB,MAXSIZE = 20MB, FILEGROWTH = 2MB)LOG ON(NAME = DB_log1,FILENAME = 'F:DB_log1.ldf', SIZE = 1MB,MAXSIZE = 30MB,FILEGROWTH = 10%)
.1 创建架构 篇三
CREATE SCHEMA T2 AUTHORIZATION User1CREATE TABLE Test(C1 INT PRIMATY KEY, C2 CHAR(4) )GRANT SELECT TO User2DENY DELETE TO User3;
.3 多表查询 篇四
5.1.1 视图的含义和作用
视图是基于某个查询结果的虚表。是用户查看和修改数据表中数据的一种方式。每个视图都有几个被定义的列和多个数据行。
5.1.2 视图与基本表
1.视图中的数据列和行来源于其所引用的基表。
2.视图所对应的数据并不实际存储在数据库中,而是仍存储在视图所引用的基表中。
3.数据库中只存储视图的定义。
5.1.3 使用视图的目的与好处
1.聚焦特定数据:使用户只能看到和操作与他们有关的数据,提高了数据的安全性。
2.简化数据操作:使用户不必写复杂的查询语句就可对数据进行操作。
3.定制用户数据:使不同水平的用户能以不同的方式看到不同的数据。
4.合并分离数据:视图可以从水平和垂直方向上分割数据,但原数据库的结构保持不变。
.2 创建视图 篇五
触发器就是是一种表或视图执行insert、 delete、update操作时,被系统自动执行的特殊的存储过程。
6.2.1 创建触发器语法:
create trigger 触发器名
on 表名| 视图名
for | after | instead of [ insert , update, delete ]
as SQL语句
注意:1个表上可有多个触发器。 每个触发器只能作用在一个表上。这是一个一对多的关系
6.2.1.1 创建insert触发器操作:在xscj库的xs_kc表上创建1个名为tr_insert_cj的触发器,当向xs_kc表进行插入操作时激发该触发器,并给出提示信息“有新成绩插入到xs_kc表中!”
create trigger tr_insert_cj on xs_kc after insert as print ‘有新成绩信息插入到xs_kc表! ’go执行下面这条语句后会触发insert触发器
insert into xs_kc values( '020105', '101', 87, null )6.2.1.2 创建update触发器
操作:在student表上创建名为tr_update_xsqk2的触发器,当对该表的“姓名”列修改时激发该触发器,使用户不能修改“姓名”列。
create trigger tr_update_xsqk2 on student after updateas if update(姓名) begin rollback transaction -- 撤消修改操作 raiserror(‘不能修改学生姓名!’ , 16 ,1) endgo执行下面这条语句后会触发update触发器
update student set 姓名=‘小花’ where 姓名=‘杨颖’6.2.1.3 创建delete触发器
操作:在xscj库的xsqk表上创建1个名为tr_delete_xsqk的触发器,当要删除指定学号的行时,激发该触发器,撤消删除操作,并给出提示信息“不能删除xsqk表中的信息
create trigger tr_delete_xsqk on xsqk after deleteas rollback transaction print ‘不能删除xsqk表中的信息!’go
执行下面这条语句会触发delete触发器
delete xsqk where 学号= '020101'6.2.2 更新触发器
语法:
alter trigger 触发器名
6.2.3 删除触发器语法:
drop trigger 触发器名[,…n]
on {database | all server}
参考资料《数据库原理及应用》 课件
总结不得不说,课件上有很多错误。起的名字还是拼音简写,⊙﹏⊙b汗!。改了一部分,还有部分没改。个人觉得课堂上学道的东西不会太多,还是自己多动手比较好。像我这样把课件给整理一遍,估计整个计算机系再也找不出来第二个这样的奇葩了~O(∩_∩)O哈哈~
.1 创建索引 篇六
语法:
create view 视图
[ (列名表) ]
[ with encryption ] --用于加密视图的定义,用户只能查看不能修改。
as
select查询语句
[ with check option ] --强制所有通过是同修改的数据,都要满足select语句中指定的条件
操作1:创建一个 名为“v1”的视图,用于查询计算机网络专业男生的学号、姓名、出生日期,并将视图的列名分别改为:学生学号、男生姓名、生日。
create view v1 (学生学号,男生姓名, 生日) as select 学号, 姓名, 出生日期 from xsqk where 专业名=‘计算机网络’ and 性别=1go使用视图
select * from v1
.1 视图介绍 篇七
5.5.1 使用视图插入数据
注意:
1.可通过视图向基表中插入数据,但插入的数据实际上存放在基表中,而不是存放在视图中。
2.如果视图引用了多个表,使用insert语句插入的列必须属于同一个表。
3.若创建视图时定义了“with check option”选项,则使用视图向基表中插入数据时,必须保证插入后的数据满足定义视图的限制条件。
操作1:向“V1”视图中添加两条记录。
insert into v1values(‘020106’,‘张三’,‘1981-04-22’,‘计算机网络’,‘计算机’)insert into v1values(‘020107’,‘张四’,‘1981-07-08’,‘信息安全’,‘计算机’)
5.5.2 使用视图删除数据
注意:
1.要删除的数据必须包含在视图的结果集中。
2.如果视图引用了多个表时,无法用delete命令删除数据。
语法:
delete from 视图名 [ where 条件]
操作:删除“V1”视图中学号为‘020108’的记录。
delete from V1 where sno = ‘020108’6.存储过程和触发器6.1 存储过程存储过程实际上就是数据库里的函数
6.1.2 创建并执行存储过程创建存储过程
语法:
CREATE PROC[EDURE] 存储过程名
[ { @参数名 数据类型 } [ = default ] [OUTPUT] ] [ , … n ]
AS SQL语句 [ … n ]
执行存储过程
语法:
[ EXEC [ UTE ] ] 存储过程名 [实参 [, OUTPUT] [, … n] ]
6.1.3 不带参数的存储过程操作:查询计算机系学生的考试情况,列出学生的姓名、课程名和考试成绩。
CREATE PROCEDURE p_StudentGrade1AS SELECT Sname, Cname, Grade FROM Student s INNER JOIN SC ON s.Sno = SC.Sno INNER JOIN Course cON c.Cno = WHERE Dept = '计算机系'执行:
EXEC p_StudentGrade16.1.4 使用输入参数语法:
create proc[edure] 存储过程名
@形参 数据类型 [=默认值] ,…n
as SQL语句
执行:
[execute] 存储过程名 [ @实参= ] 值 ,…n
注意:
执行存储过程时输入参数的传递方式由三种(让我想到了python ^_^)
1.按位置传递:直接给出参数的值,实参与形参一一对应
2.通过参数名传递:使用“参数名=参数值“的形式,参数可以任意顺序给出
3.如果在定义存储过程时为参数指定了默认值,则在执行存储过程时可以不为有默认值的参数提供值。
操作:创建并执行带输入参数的存储过程p_xsqk,查询指定学号(作为输入参数)的学生姓名、课程号、成绩。
create procedure p_xsqk @xh char(6) as select 姓名,课程号,成绩 from xsqk , xs_kc where xsqk.学号=xs_kc.学号 and xsqk.学号= @xhgo执行:
exec p_xsqk ‘020102‘ --(1)按位置传递参数exec p_xsqk @xh=‘020103‘ --(2)通过参数名传递参数注意:因输入参数没有默认值,所以不能用“exec p_xsqk”
6.1.5 使用输出参数
语法:
create proc[edure] 存储过程名
@形参 数据类型 output ,…n
as SQL语句
执行:
[execute] 存储过程名 @实参 output ,…n
说明:
1.输出实参和输出形参的名字可以相同,也可以不同。
2.使用时,要先声明输入和输出实参变量。
操作:创建1个带有输入参数和输出的存储过程p_kh,返回指定教师(作为输入参数)所授课程的课程号(作为输出参数)。
create procedure p_kh @teacher char(8) , @kch char(3) output as select @kch = 课程号 from kc where 授课教师= @teachergo执行:
declare @teacher varchar(8), @kch char(3)set @teacher='赵怡'exec p_kh @teacher, @kch outputprint @teacher + ‘教师所受课程的课程号为:’ + @kch6.1.6 使用返回值
语法:
return 整型表达式
作用:用于显示存储过程的执行情况
执行:
[execute] @状态值=存储过程名
操作:创建并执行存储过程p_find,用于查找指定的学生,如果找到,则返回数字1,否则返回0。
create procedure p_find @findname char(8) as if exists (select * from xsqk where 姓名=@findname) return 1 else return 0执行:
declare @result intexec @result=p_find ‘陈伟‘if @result =1 print ‘有这个人!‘ else print ‘ 没有这个人!6.1.7 删除存储过程语法:
drop proc[edure] 存储过程名
6.1.8 查看存储过程
语法:
sp_help 存储过程名 --显示存储过程的基本信息
sp_helptext 存储过程名 --显示存储过程的源代码
6.1.9 修改存储过程
语法:
alter proc[edure] 存储过程名
[@形参 数据类型 [=默认值] [output ],…n ]
as SQL语句
注意:
1.修改存储过程的定义后,原存储过程的权限设置仍有效
2.如果采用先删除存储过程再重建同名存储过程的方法,那么在原来存储过程上设置的权限将会全部丢失。
.1 基本查询语句结构 篇八
语法:
drop index {表名 . | 视图名 . } 索引名 [ , … n ]
注意:
SQL Server系统自动建立的索引不能用drop index删除,只能用alter table语句中的drop constraint子句来解除加在该字段上的主键约束或惟一性约束,这些约束一解除,相关的索引也就被删除了。
以上内容就是壶知道为您提供的8篇《SQLServer数据库操作总结(sql语法的使用) -电脑资料》,希望对您的写作有所帮助。