SQL练习2-INDEX / INSERT / SELECT

INDEX
【例3.13】新建索引
在SQL语句中,建立索引使用CREATE INDEX语句,格式一般为:
CREATE [UNIQUE] INDEX <索引名> ON <表名>(<列名>[<次序>]);
CREATE [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>]);
次序可以用于指定索引值的排列次序,ASC为升序,DESC为降序,ASC为默认值。

CREATE UNIQUE INDEX Stusno ON Student(Sno);
CREATE UNIQUE INDEX Coucno ON Course(Cno);
CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);

【例3.14】修改索引
对于已经建立的索引,如果需要对其重新命名,可以使用ALTER INDEX语句。
格式为:
ALTER INDEX <旧索引名> RENAME TO <新索引名>

ALTER INDEX SCno RENAME TO SCSno;

但是此时程序报错,提示“在“RENAME”附近有语法错误”,在SQL Server中,ALTER不能改变表名和索引名,如果需要改变索引名就需要调用存储过程。
【例3.15】删除索引
语法一般为:
DROP INDEX <索引名>;

DROP INDEX Stusname

但是此时程序报错
在这里插入图片描述
根据提示可知道应该改为:
DROP INDEX <表名>.<索引名>

DROP INDEX Student.Stusname;

INSERT
【例3.69】插入元组
语法为:
INSERT
INTO<表面>[(<属性列1>[,<属性2>]…)]
VALUES(<常量1>[,<常量2>]…);

INSERT INTO Student(Sno,Sname,Ssex,Sdept,Sage)
VALUES('201215128','陈东','男','IS',18);
SELECT * FROM Student

此时报错,提示为:“违反了 PRIMARY KEY 约束“PK__Student__CA1FE464CD209441”。不能在对象“dbo.Student”中插入重复键。重复键值为 (201215128)。”
按照提示可知,是由于学号重复了,所以只需要更换一个学号即可。
【例3.70】插入元组

INSERT INTO Student
VALUES('201215126','张成民','男',18,'CS');
SELECT * FROM Student

在这里插入图片描述
【例3.71】插入元组

INSERT INTO SC
VALUES('201215128','1',NULL);
SELECT * FROM SC

此时如果直接插入那么就会报错,提示为:“INSERT 语句与 FOREIGN KEY 约束"FK__SC__Cno__403A8C7D"冲突。该冲突发生于数据库"SCHOOL",表"dbo.Course", column ‘Cno’。”
那是因为在数据库“SCHOOL”的“dbo.Course”中没有数据。所以在运行以上代码之前,我们需要先写入以下程序:

INSERT INTO Course
VALUES('1','数据库',NULL,4);
SELECT * FROM Course

在这里插入图片描述
最后就可以插入想插入的元组
结果为:
在这里插入图片描述
SELECT
进行单表查询之前,应该要建立表。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
【例3.16】查询指定列
语法一般为:
SELECT <目标列表达式>

SELECT Sno,Sname
FROM Student;

在这里插入图片描述
【例3.17】

SELECT Sname,Sno,Sdept
FROM Student;

在这里插入图片描述
【例3.18】
查询全部列,两种方法,一种是在SELECT关键字后列出所有名,或者直接将<目标列表达式>指定为*。

SELECT *
FROM Student;
SELECT Sno,Sname,Ssex,Sage,Sdept
FROM Student;

在这里插入图片描述
【例3.19】查询经过计算的值
SELECT<目标表达式>,目标表达式不仅是算术表达式,还可以是字符串常量、函数等。

SELECT Sname,2014-Sage
FROM Student;

在这里插入图片描述
【例3.20】

SELECT Sname,'Year of Birth:',2014-Sage,LOWER(Sdept)
FROM Student;

在这里插入图片描述

SELECT Sname NAME,'Year of Birth:' BIRTH,2014-Sage BIRTHDAY,LOWER(Sdept) DEPARTMENT
FROM Student;

在这里插入图片描述
【例3.21】

SELECT  Sno
FROM SC;

SELECT DISTINCT Sno
FROM SC;

在这里插入图片描述
【例3.22】查询满足条件的元组

SELECT  Sname
FROM Student
WHERE Sdept='CS';

在这里插入图片描述
【例3.23】

SELECT  Sname,Sage
FROM Student
WHERE Sage<20;

在这里插入图片描述
【例3.24】

SELECT  DISTINCT Sno
FROM SC
WHERE Grade<90;

在这里插入图片描述
【例3.25】

SELECT  Sname,Sdept,Sage
FROM Student
WHERE Sage BETWEEN 20 AND 23;

在这里插入图片描述
【例3.26】

SELECT  Sname,Sdept,Sage
FROM Student
WHERE Sage NOT BETWEEN 20 AND 23;

在这里插入图片描述
【例3.27】

SELECT  Sname,Ssex
FROM Student
WHERE Sdept IN('CS','MA','IS');

在这里插入图片描述
【例3.28】

SELECT  Sname,Ssex
FROM Student
WHERE Sdept NOT IN('CS','MA','IS');

在这里插入图片描述

发布了61 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44652687/article/details/104774416