SQL Server 数据操控,视图和索引
文章目录
- 前言
- 1.在student表中插入一行新记录,学号为,姓名为胡明月,性别为男,年龄为,系部为CS
- 2.在student表中插入一条新记录,学号为,姓名为李红,性别为女
- 3.将胡明月的年龄修改为19
- 4.所有系部为CS改为计算机系
- 5. 将student表中所有学生的年龄增加一岁
- 6.删除student表中胡明月的信息
- 7.删除student表中所有数据
- 8.在student表的sdept列上创建一个非聚集索引index1
- 9.为studnet表的ssex和sname列创建一个唯一索引index2,若student表已存在index2,则先删除之
- 10.查看student表的索引信息
- 11.删除student中的索引index2
- 12.在XSCJ数据库中,创建视图view_grade,查询张文宝同学的成绩信息
- 13.视图相当于一个虚表,可直接从视图查询
- 14.创建视图 view_sc_count,统计课程号为的课程的选修人数,并对视图文本加密
- 15.修改视图view_male,在student表中查询女同学的信息
- 16.删除视图view_male
- 17.查询年龄为岁的女学生信息
- 18.利用视图view_male 将学生张楠的系部改为MA
- 19.利用视图view_male 删除姓名为张楠的学生信息
- 20.知识点总结
- 总结
前言
1.在student表中插入一行新记录,学号为,姓名为胡明月,性别为男,年龄为,系部为CS
INSERT INTO student VALUES('0603140103','胡明月','男','20','CS')
2.在student表中插入一条新记录,学号为,姓名为李红,性别为女
INSERT INTO student(sno,sname,ssex) VALUES('95007','李红','女')
3.将胡明月的年龄修改为19
UPDATE student
set sage=19
WHERE sname='胡明月'
select * from student WHERE sname='胡明月'
4.所有系部为CS改为计算机系
UPDATE student
set sdept='计算机系'
where sdept='CS'
SELECT * FROM student
5. 将student表中所有学生的年龄增加一岁
UPDATE student
SET sage=sage+1
SELECT * from student
6.删除student表中胡明月的信息
DELETE FROM student where sname='胡明月'
7.删除student表中所有数据
delete from student
8.在student表的sdept列上创建一个非聚集索引index1
use XSCJ
create nonclustered INDEX index1 ON student(sdept)
9.为studnet表的ssex和sname列创建一个唯一索引index2,若student表已存在index2,则先删除之
use XSCJ
go
IF EXISTS(SELECT * FROM sys.indexes where name='index2')
drop index student.index2
go
create UNIQUE INDEX index2 ON student(ssex,sname)
10.查看student表的索引信息
EXEC sp_helpindex student
11.删除student中的索引index2
drop INDEX student.index2
12.在XSCJ数据库中,创建视图view_grade,查询张文宝同学的成绩信息
create view view_grade
as
select student.sname,sc.grade from student,sc
where student.sno=sc.sno and student.sname='张文宝'
select * from view_grade
13.视图相当于一个虚表,可直接从视图查询
use XSCJ
go
create view view_male
as
select * from student
where ssex='男'
14.创建视图 view_sc_count,统计课程号为的课程的选修人数,并对视图文本加密
create view view_sc_count(课程号,人数)
with encryption
as
select cno 课程号,count(cno) 选课人数 from sc
group by cno
having cno='2102'
exec sp_helptext view_sc_count
15.修改视图view_male,在student表中查询女同学的信息
alter view view_male
as select * from student
where ssex='女'
select * from view_male
16.删除视图view_male
drop VIEW view_male
17.查询年龄为岁的女学生信息
select * from view_male
where sage=19
此查询过程相当于:
select * from student
where sage=19 and ssex='女'
18.利用视图view_male 将学生张楠的系部改为MA
update view_male
SET sdept='MA'
WHERE sname='张楠'
select * from view_male where sname='张楠'
19.利用视图view_male 删除姓名为张楠的学生信息
delete from view_male
where sname='张楠'
select * from view_male where sname='张楠'
20.知识点总结
(1)理解索引的概念:
当表的数据量比较大时,查询操作会比较耗时。这时候建立索引是加快查询速度的有效手段,它能快速定位到需要查询的内容。用户可以根据需要在基本表上建立一个或多个索引,用来提供多种存取路径,加快查找速度。
(2)建立索引核心语句:
CREATE (UNIQUE) INDEX <索引名> ON 表名(列名 ASC/DESC,列名 ASC/DESC)
注意:ASC为升序,DESC为降序。默认为ASC升序。
修改索引核心语句:ALTER INDEX <old索引名> RENAME TO <new索引名>
删除索引核心代码:DROP INDEX <索引名>
(3)理解视图的概念:
视图是关系数据库系统为用户提供从不同角度观察和使用数据库中数据的一种机制。视图是一个虚表,在数据库中只存放视图的定义,而不存放对应数据。这些数据仍然存在在原来的表中,其变化可以通过视图而反应出来,我们可以对视图进行查询操作。
(4)建立视图核心语句为:
CREATE VIEW <视图名> (<列名>,<…>)
AS
SELECT<子查询>
(5)删除视图核心语句:DROP VIEW <视图名>
(6)SQL 语言的数据操纵语句DML主要包括插入数据,修改数据 和删除数据三种语句。
(7)插入数据记录:
INSERT INTO <表名> [(<列名 1> [,<列名 2>···])] VALUES (<值>)
其中:
<表名>是指要插入新纪录的表
<列名>是可选项,指定待添加数据的列,列出列名,则 VALUES 子句中值的排列顺序必须和列名名表中的列名排列顺序一致,个数相等,数据 类型一一对应;若省略列名,则 VALUES 子句中值的排列顺序必须和定义表时的列名顺序一致,个数相等,数据类型 一一对应。
VALUES 子句指定待添加数据的具体值。
(8)
在student表中插入一条学生记录:
INSERT INTO student VALUES (‘1’,‘小马’,‘女’,‘2002-06-18’,‘1102’,‘商务’)
插入部分值:
INSERT INTO sc (Sno, Cno) VALUES (‘14852345’,‘5876255’)
插入多行记录:
可以从一个表中抽取数据插入另一个表中,这通过子查询来实现。
INSERT INTO <表名> [(<列名>[,<列名2>···])]
子查询
建一张表 studentlist(Sno, Sname, Ssex),其中字段含义分别是学号,姓名,性别,并把学生表中的相关数据插入到点名表中。
CREATE TABLE studentlist
(Sno CHAR(10)),
Sname VARCHAR(20),
Ssex VARCHAR(10));
INSERT INTO studentlist (Sno, Sname, Ssex) SELECT Sno, Sname,Ssex FROM student;
(9)修改数据记录:
UPDATE <表名>
SET <列名>=<表达式> [,<列名>=<表达式>…]
[WHERE <条件>]
(10)
删除数据记录:
DELETE
FROM <表名>
[WHERE <条件>]
总结
今天的学习内容就分享到这里啦,如果对大家有帮助的话,记得点赞收藏博客,关注后续的SQL Server学习内容哦~😉😉