SQL Server 数据操控,视图和索引

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: SQL Server 数据操控,视图和索引

前言

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学习内容哦~😉😉

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
14天前
|
SQL 存储 缓存
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
|
1月前
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
|
30天前
|
SQL 移动开发 Oracle
SQL语句实现查询连续六天数据的方法与技巧
在数据库查询中,有时需要筛选出符合特定时间连续性条件的数据记录
|
1月前
|
SQL 关系型数据库 MySQL
如何确认SQL用了索引:详细技巧与方法
在数据库管理中,索引是提高SQL查询性能的重要手段
|
1月前
|
SQL 存储 关系型数据库
添加数据到数据库的SQL语句详解与实践技巧
在数据库管理中,添加数据是一个基本操作,它涉及到向表中插入新的记录
|
1月前
|
SQL 存储 关系型数据库
SQL默认索引是什么:深入解析与技巧
在SQL数据库中,索引是一种用于提高查询性能的重要数据结构
|
1月前
|
SQL 存储 关系型数据库
SQL默认索引是什么
在SQL数据库中,索引是一种用于提高查询性能的数据结构
|
1月前
|
SQL 关系型数据库 MySQL
如何确认SQL用了索引
在数据库管理和优化过程中,确认SQL查询是否使用了索引是一个至关重要的步骤
|
1月前
|
SQL 存储 数据库
实验4:SQL视图操作与技巧
在SQL数据库管理中,视图(View)是一种虚拟表,它基于SQL查询的结果集创建,并不存储实际数据,而是存储查询定义
|
1月前
|
SQL 存储 数据库
实验4:SQL视图操作技巧与方法
在数据库管理系统中,视图(View)是一种虚拟表,它基于SQL查询的结果集创建,并不实际存储数据