搜档网
当前位置:搜档网 › 实验二--通过SQL语句创建与管理数据表word版本

实验二--通过SQL语句创建与管理数据表word版本

实验二--通过SQL语句创建与管理数据表word版本
实验二--通过SQL语句创建与管理数据表word版本

实验二

一、实验目的

(1)掌握查询分析器的使用。

(2)掌握通过SQL语句创建表的方法。

(3)掌握通过SQL语句修改表结构的方法。

(4)掌握通过SQL语句添加、修改、删除表数据的方法。

二、实验内容

1、通过SQL语句删除表

用SQL语句在数据库Student_info中删除实验一创建的Student表、Course表、SC表。

1、选择Student_info数据库,在该数据库环境中“新建查询”,然后完成删除操作

2、分别填写如下SQL语言

①、drop table Student

②、drop table Course

③、drop table SC

3、删除操作完成

2、通过SQL语句创建表

用SQL语句在数据库Student_info中创建实验一中的Student表、Course表、SC表,结构如实验一中表2、表3、表4(即创建出空表即可)所示

①、创建Student表

create table Student(

Sno char(8)primary key,

Sname varchar(8)not null,

Sex char(2)not null,

Birth smalldatetime not null,

Classno char(3)not null,

Entrance_date smalldatetime not null,

Home_addr varchar(40)

)

②、创建Course表

create table Course(

Cno char(3)primary key,

Cname varchar(20)not null,

Total_perior smallint check(Total_perior>0),

Credit tinyint check(Credit<=6 and credit>0)

)

③、创建SC表

create table SC(

Sno char(8)not null,

Cno char(3)not null,

Grade tinyint check(Grade>=0 and Grade<=100),

primary key(Sno,Cno),

foreign key(Sno)references Student(Sno),

foreign key(Cno)references Course(Cno)

3、通过SQL语句管理表结构

(1)添加和删除列

a. 给Student表增加身高(以米单位)Stature列,类型为numeric(4,2),允许为空

值,且身高值需小于3.0米。

alter table Student

add Stature numeric(4,2)

check(Stature<=3.0 and Stature>=0)

b. 给Student表增加所在系Sdept列,字符型,长度2,不允许为空值。

alter table Student

add Sdept char(2)not null

c. 给Student表增加邮政篇码Postcode列,字符型,长度为6,可以为空,若不为空时,则要求其值只能出现数字,不能是其它字符。

alter table Student

add Postcode char(6)

check(Postcode Like'[1-9][0-9][0-9][0-9][0-9][0-9]')

d.删除Student表中身高Stature列。

①、添加Stature列时就已知该列存在约束条件,若要删除该列,必须先删除约束条件,则

首先必须先找出约束条件的约束名称。以下有两种方法:

1、写入SQL语句找出

alter table Student

drop column Stature

2、运用企业管理器找出

a、打开Student表

b、选择Stature行,单击右键,选择“CHECK约束”

c、约束名称显而易见

②、其次删除Stature约束

alter table Student

drop constraint CK__Student__Stature__1A14E395

③、最后删除Stature列,完成

alter table Student

drop column Stature

(2)添加和删除约束

a.在Student表添加约束:入学时间必须在出生年月之后alter table Student

add constraint birth1

check(Birth

b.给SC表的成绩Grade列增加默认值约束,默认值为0 alter table SC

add constraint grade1

default('0')for grade

c.删除Grade列的默认值约束

锁定Grade列的约束名即可

alter table SC

drop constraint grade1

(grade1 为约束名)

4、通过SQL语句添加、修改、删除表中数据

(1)插入数据

a. Student表、Course表、SC表的记录见实验一的表5、表6、表7,其它数据可自行添加。要求Student表和SC表中数据包括了每位同学自己的学号。

①、向Student表中添加数据

insert into Student values('20110001','张虹','男

','1992-09-01','051','2011-09-01','南京','CS','200413');

insert into Student values('20110002','林红','女

','1991-11-12','051','2011-09-01','北京','CS','100010');

insert into Student values('20110103','赵青','男','1993-05-11','061','2011-09-01','上海','MS','200013');

注意:Sdept的类型为char(2),添加数据是不能写“计算机系”和“软件工程”,应改为“CS”和“MS”

②、向Course表中添加数据

insert into Course values('001','高数','96','6');

insert into Course values('002','C语言程序设计','80','5');

insert into Course values('003','JAVA语言程序设计','48','3');

insert into Course values('004','Visual Basic','48','4');

③、向SC表中添加数据

insert into SC values('20050001','001',89);

insert into SC values('20110001','001',89);

insert into SC values('20110001','002',78);

insert into SC values('20110001','003',89);

insert into SC values('20110002','002',60);

insert into SC values('20110103','001',80);

上面截图所示的外键约束可不予考虑

b.执行如下语句:insert into Student(Sno, Sname, Sex) values(‘20101101’,’赵青’,’男’),该语句能成功执行吗?为什么?

答:不能成功执行,因为不能将值NULL 插入列'Sdept'中

c. 执行如下语句:insert into sc values(‘20110103’,’005’,80),该语句能成功执行吗?为什么?

答:不能成功执行,因为SC表中的学号“005”的同学在Course表中不存在。而SC表中的Cno 是作为Course表的外键存在的,所以不能成功执行。

(2)修改数据

a.使用T-SQL语句,将Course表中的课程号为’002’的学分改为4,总学时改为64。

update Course

set Credit=4

where Cno='002'

update Course

set Total_perior=64

where Cno='002'

结果:

b.使用T-SQL语句,将SC表中的选修了‘002’课程的同学的成绩*80%。update SC

set Grade=Grade*0.8

where Cno='002'

结果:

(3)删除数据

a. 使用T-SQL语句,删除选修了“C语言程序设计”的学生的选课记录。

删除时,发现存在外键约束,且约束名为FK__SC__Cno__1920BF5C,则先删除约束

删除约束:

alter table SC

drop constraint FK__SC__Cno__1920BF5C

删除记录:

delete from Course

where Cno in

(select Cno from Course

where Cname='c语言程序设计')

结果:

b. 使用T-SQL语句,删除所有的学生选课记录。

delete from SC

结果:

说明:删除后,请重新插入SC表中的记录。

同第4题③所示步骤相同,

insert into SC values('20050001','001',89); insert into SC values('20110001','001',89); insert into SC values('20110001','002',78); insert into SC values('20110001','003',89); insert into SC values('20110002','002',60); insert into SC values('20110103','001',80);

结果:

SQL数据库数据的查询,汇总,统计和分析

8.数据的查询、汇总、统计和分析 本章将深入剖析SELECT命令。

8.1.SELECT命令 SELECT是一个用来从一个或多个表中获取数据的SQL命令。 8.2.简单的SELECT查询 如: SELECT命令至少包含: ?要出现在查询结果中的字段列表,如:身份证号码,姓名,电话号码 ?字段来自哪些表,如:FROM飞狐工作室 ?字段列表也可以是由字段、常量和函数组成的表达式 ?要列出所有字段,只须用* 号 8.3.设置查询结果的字段名 查询需求 请从数据库pubs的authors表,查询出所有作者的代号、姓名、电话号码及住址,而且请使用中文文字作为查询结果的各字段名。 解答

SELECT 作者代号= au_id, 姓名= au_fname+au_lname, 电话号码= phone, 住址= address FROM authors 或(看看你更喜欢哪一种格式?) /* 脚本文件名: Demo92.sql */ USE pubs SELECT au_id AS 作者代号, au_fname+au_lname AS 姓名, phone AS 电话号码, address AS 住址 FROM authors 注意: ?如果您设置的的字段名包含空格,则须加上单引号 SELECT au_fname+au_lname AS‘Name of Author’ FROM authors 任务:查询teacher表的姓名、性别和生日,列名用中文表示;查询class表的所有班级

信息;查询teacher表的教师姓名和年龄。 8.4.关键字ALL和DISTINCT的使用 1.查询需求 请列出“飞狐工作室”表中所有员工的雇用日期,但是日期相同者只列出一次即可。USE NorthwindSQL SELECT DISTINCT雇用日期FROM飞狐工作室 2.查询需求 请列出“飞狐工作室”表中有哪些部门。 USE NorthwindSQL SELECT DISTINCT部门FROM飞狐工作室 ALL为默认项,显示所有查询到的记录,包括重复项。 DISTINCT,对指定字段的内容相同的,仅显示一项。每个SELECT表达式只能有一个DISTINCT关键字。这意味着,DISTINCT是限制整条数据记录都重复者,只显示其中一条,而不是针对单一字段来处理。 任务:请列出“章立民工作室”表中有哪些部门。列出teacher表中的教师职称。

VFP实验5 SQL语言的应用-参考答案

实验5 SQL语言的应用 【实验目的】 1.掌握SQL的基本语句的使用 2.掌握SELECT命令的基本用法 3. 掌握对查询的结果进行处理 4.掌握用查询设计器建立查询的方法 【实验内容与操作步骤】 说明:红色字体为答案 设置VFP的默认工作目录为D:\EX7,并完成以下各操作,将操作结果存入D:\EX5文件夹中。 1、使用SQL语句实现下列功能: ( creat table 学生成绩(学号C(7),姓名C(8),入学成绩N(5,1)) (2)使用ALTER TABLE命令,增加一个字段:性别C(2),并将“学号”的字段长度改为8。 alter table 学生成绩add 性别C(2) alter table 学生成绩alter 学号C(8) ( insert into 学生成绩values("0503102","李丽",680,"女") insert into 学生成绩values("0603101","王庆",600,"男") 或者是: Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0503101”,”张海”,660,”男”) Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0503102”,”李丽”,680,”女”) Insert into 学生成绩(学号,姓名,入学成绩,性别) values(“0603101”,”王庆”,600,”男”)

庆”,600,”男”) (4)使用DELETE 删除“王庆”的记录。 dele from 学生成绩where 姓名="王庆" (5)使用UPDATE命令将所有人的“入学成绩”置为0。 update 学生成绩set 入学成绩=0 2、使用SQL语句中的SELECT命令来实现下列查询: (1)查询“学生.dbf”表中全部记录,输出“学号”、“姓名”、“性别”、“出生日期”和“入学成绩”这5个字段的内容; select 学号,姓名,性别,出生日期,入学成绩from 学生 (2)查询“学生.dbf”表中的性别为男的所有内容,并按“学号”的降序排列; select * from 学生where 性别=”男” order by 学号 (3)查询“学生.dbf”表中的全部学生中的入学最高分; select max(入学成绩) from 学生 (4)查询“学生.dbf”表中的数学专业和英语专业的学生的学号,姓名和专业; select 学号,姓名,专业from 学生where 专业=”数学” or 专业=”英语” (5)查询“学生.dbf”表中的入学成绩在550到650之间的学生的学号,姓名和入学成绩,并按“入学成绩”的降序排序; select 学号,姓名,入学成绩from 学生where 入学成绩>=550 and 入学成绩<=650 order by 入学成绩 (6)利用学生表中的数据创建一个查询,其结果包含学号、姓名、性别、出生日期、专业和入学成绩6个字段,查询结果按入学成绩由高分到低分排序,并将查询结果保存到一个“学生情况表.DBF”文件中; select 学号,姓名,性别,出生日期,专业,入学成绩from 学生order by 入学成绩desc into table 学生情况表 【思考题】 请参考教材6.4.3 嵌套查询、6.4.4 多表联接查询、6.4.5查询结果输出处理做如下练习。写出相应的SQL命令并上机运行。 (1)查询“学生.dbf”和“学生其它情况.dbf”表中的所有姓“李”的学生的学号、姓名和身份证; (2)查询“成绩.dbf”和“课程.dbf”表中的选修“计算机基础”的所有学生的学号和成绩,按“学号”的升序进行排序,并输出到TEST文件中; (3)查询“学生.dbf”、“成绩.dbf”和“课程.dbf”表中的选修“电脑文秘应用”的所有学生的学号,姓名,课名和总评(总评=(平时+期中+期末)/3);

实验一 SQL语言单表查询

实验一SQL语言单表查询 一、实验目的 熟悉SQLServer2008建立数据库和表的方法;掌握SQL语言单表查询方法二.实验内容 1、建立数据库Student 2、建立该数据库的三张表:stu_info,course_info,stu_grade,三张表分别存放学生的学生信息、课程信息和学生选课信息 3、请写出实现如下功能的SQL语句,并在SQLServer2008中进行测试 (1)查询所有同学的姓名和年龄信息,要求使用别名(姓名和年龄),结果如下: (2)查询所有的院系信息,要求取消重复的行,结果如下: (3)查询前5位同学的学号、姓名和成绩信息。查询结果如下: (4)查询所有的男同学学号、姓名、生日和性别信息。查询结果如下:

(5)查询所有总分大于550的男同学信息。查询结果如下: (6)查询所有信息学院和会计学院并且总分大于550分的同学信息。查询结果如下: (7)查询所有籍贯为空的同学信息。查询结果如下: (8)查询总分在530—560之间的同学信息。 查询结果如下:

(9)查询所有在信息学院或会计学院就读的同学信息。查询结果如下: (10)查询所有姓“张”的同学信息。查询结果如下: (11)查询所有姓“张”,而且姓名是两个字的同学信息。查询结果如下: (12)查询所有不姓“张”也不姓“王”的同学信息。查询结果如下: (13)查询所有同学课程编号701的课程成绩,并按由大到小的顺序输出,如果成绩相同,则按学号由小到大排序。查询结果如下:

(14)统计学生成绩表中每个同学的最高分、最低分、平均分和总分。查询结果如下: (15)统计学生成绩表中每个同学的最高分、最低分、平均分和总分,80分以下的成绩不参与统计。 Select stu_id,MAX(grade),MIN(grade),AVG(grade),SUM(grade) From stu_grade Where grade>=80 Group by stu_id 查询结果如下: (16)统计学生成绩表中每个同学的最高分、最低分、平均分和总分,并输出平均分大于87分的信息。查询结果如下: (17)明细汇总: 使用group by子句对查询数据进行分组汇总,为每一组产生一个汇总结果,每个组只返回一行,无法看到详细信息。使用compute和compute by子句既能够看到统计经营部的结果又能够浏览详细数据。 使用compute子句对所有学生的人数进行明细汇总。查询结果如下:

数据库-SQL语言的实验

北华航天工业学院《数据库原理与应用》 实验报告 报告题目:SQL语言 作者所在系部:计算机系 作者所在专业:网络工程 作者学号:20114052233 作者姓名: 张旭刚 指导教师姓名:李建义 完成时间:20134.24 北华航天工业学院教务处制

SQL语言 一、实验目的 1、理解数据库以及数据表的设计; 2、熟悉SQLServer2005中的数据类型; 3、熟悉使用SQL语句创建和删除模式和索引; 4、掌握使用SQL语句创建、修改和删除数据表; 5、掌握使用SQL语句查询表中的数据; 6、掌握使用SQL语句插入、修改和删除数据表中的数据; 7、掌握使用SQL语句创建、删除、查询和更新视图。 二、实验内容 (一)创建数据库和模式 1、通过SQL语句创建图书信息管理数据库,命名为“db_Library”,数据文件和日志文件放在D盘下以自己学号和姓名命名的文件夹中,数据文件的逻辑名为db_Library_data,数据文件的操作系统名为db_Library_data.mdf,文件初始大小为10MB,最大可增加至300MB,增幅为10%;日志文件的逻辑名为db_Library_log,日志文件的操作系统名为db_Library_data.ldf,文件初始大小为5MB,最大可增加至200MB,增幅为2MB。 2、通过SQL语句在该数据库中创建模式L-C。 (二)创建和管理数据表 要求为各数据表的字段选择合适的数据类型及名称;为各数据表设置相应的完整性约束条件。 1、通过SQL语句将以下数据表创建在L-C模式下: 课程信息表(tb_course)——课程编号、课程名、先修课、学分 2、通过SQL语句将以下数据表创建在该数据库的默认模式dbo下: 图书类别信息表(tb_booktype)——类别编号、类别名称 图书信息表(tb_book)——图书编号、类别编号、书名、作者、出版社、定价、库存数 读者信息表(tb_reader)——读者编号、姓名、性别、学号、班级、系部 借阅信息表(tb_borrow)——图书编号、读者编号、借阅日期、归还日期 3、通过SQL语句对读者信息表进行修改:删除系部字段、添加所在系字段。 4、通过SQL语句对图书信息表进行修改:将定价的数据类型改为REAL。 5、通过SQL语句删除课程信息表。 (三)创建和删除索引 1、使用SQL语句在图书信息表上创建一个非聚簇索引IX_S_QUANTITY,要求按照该表中库存数字段的降序创建。 2、使用SQL语句在读者信息表上创建一个唯一的非聚簇索引IX_S_NAME,要求按照该表中的姓名字段的升序创建。 3、使用SQL语句删除之前创建的两个索引。 (四)数据库及数据表设计 根据周围的实际应用情况,自选一个小型的数据库应用项目进行研究,完成该系统的设计。要求2人一组,通过需求分析,列出系统的主要功能,并完成该系统数据库的逻辑结构设计。例如可选择学籍管理系统、企业进销存管理系统、人事管理系统或在线考试系统等。

SQL语句从大到小排序

根据下面三个关系模式完成下面习题:答案已设为白色需要就全选设为黑色学生表student 第一章课件:编写基本的sql语句。 1.查询所有学生情况。 3.查询所有学生的姓名,性别以及年龄。 5.查询所有学生10年后的年龄。 7.查询所有课程(列名用中文显示)。 9.查看竟有那些学生选课(重复学号显示一次)。 11.显示课程表的边结构。第二章课件:约束和排序数据。 01.查询计算机系的所有学生的姓名和年龄。 02.查询体育课的学分。 03.查询年龄小于18的学生。 04.查询年龄大于20的学生。 05.查询年龄介于18和20之间的学生(包括18和20)。 06.查询年龄不在18和20之间的学生。 07.查询年龄为18,20,22的学生。 08.查询年龄不是18,20,22的学生。 09.查询所有姓张的学生。 10.查询所有没有先行课的课程。 11.查询有先行课的课程。 12.在计算机系中找,姓张的男生。 13.在计算机系中找,姓张的或者姓李的男生并且按照年龄从大到小排序。 14.查询所有学生信息,显示结果先按系从大到小排序,再按年龄排序。 第三章课件:多表查询 1.查询每个学生(学号)选了哪门课(课程)得了多少分 2.查询每个学生(姓名)选了哪门课(课程号)得了多少分 3.查询每个学生(姓名)选了哪门课(课程名)得了多少分 4.查询一下王林选可哪门课得了多少分。 5.查询每个学生的成绩类别(优、良还是及格)。 6.查询哪个学生没有选课(用外查询)。 7.查询哪门课没有人选(用外查询)。 第四章课件:组函数

1.查询一下所有课程的平均分,最高分,最低分和总分数。 2.查询一下有多少个学生参加选课。 3.查询一下计算机系有多少人过20岁。 4.统计一下计算机系的男生多少人。 5.查询一下每个学生考试的最高分和最低分。 6.查询每门课(课程号)的最高分和最底分。 7.查询每门课(课程名)的最高分和最底分。 8.查询计算机系中男生多少人,女生多少人。 9,查询人数在三百人以上的系。 10.查询选修人数在三人(包括三人)的课程(课程名)。 11.查询各科考试成绩最低的同学。 12.查询考试成绩小于所选课程平均分的人。(有能力的同学选做) 第五章课件:子查询 1.查询所有比王林大的同学信息。 2.查询和王林同在一个系的所有学生信息。 3.查询一下谁的成绩(所有成绩)最低。 4.查询一下每门课成绩最底的同学(要姓名,和成绩)。 5.查询一下哪个学生没有选课(用子查询)。 6.查询一下哪门课没有人选(用子查询)。 7.查询一下和王林一个系,但是比他年龄大的同学。 第六章课件:ddl语句 1.创建以上四个表,要求每个表必须有主键,表和表之间必须有外间关联。 3.写出insert语句,给表添加以上数据。 5.提交所有操作。 7.将王林的年龄设置为空。 9.将张大民调到计算机系。 11.将体育课的学分设置成和管理学学分一样(update 中带有子查询)。 13.回滚所有操作。 9.某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题:卡里面的“o和0”(哦和零)“i和1”(哎和一),用户反映说看不清楚,公司决定,把存储在数据

sql实验5(一)

实验报告专用纸 实验5 索引和视图 三、实验内容 1.分别使用企业管理器和Transact-SQL语句为studentsdb数据库的student_info和curriculum创建主键索引。 ①、使用企业管理器为studentsdb数据库的student_info创建主键索引。 ②使用企业管理器为studentsdb数据库的curriculum创建主键索引。(将课程表的课程编号属性设为主键,系统将自动创建主键索引) ③使用Transact-SQL语句为studentsdb数据库的student_info创建主键索引。(将先前创建好的主键移除) create clustered index student_info_idx on student_info(学号)

④使用Transact-SQL语句为studentsdb数据库的curriculum创建主键索引。(将先前创建好的主键移除) create clustered index curriculum_idx on curriculum(课程编号) 2.使用企业管理器按curriculum的课程编号列创建唯一性索引。

3.分别使用企业管理器和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index

①使用企业管理器为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引。 ②使用Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引。(删除之前所创建的索引)

实验五 SQL语句应用

实验5 SQL语句应用 1 实验目的 (1)掌握数据的插入、修改和删除操作。 (2)掌握不同类型的数据查询操作。 2 实验要求 (1)利用SQL语句对图书销售系统表进行插入、修改、删除和查询操作。 3 实验步骤 (1)以bs用户登录BOOKSALES数据库,将表1至表6中的数据插入到数据库的相应表中。 表1CUSTOMERS 表2PUBLISHERS

表3BOOKS 表4ORDERS ORDERITEM 表5 表6PROMOTION

(2)将ISBN为978-7-121-18619-8的图书的零售价格(retail)修改为30。Update books set retail=30 where isbn=’978-7-121-18619-8’; (3)将订单号为1000的订单的发货日期修改为“2013-2-2”。 Update orders set shipdate=to_date('2013-02-02','yyyy-mm-dd') where order_id=1000; (4)已知当前有一个图书表OLDPUBLISHERS,其表中数据如下: publisher_id name contact phone 1 电子工业出版社李明0 2 机械工业出版社孙浩 3 人民邮电出版社张春 4 传智播客吴瑞997990 请将表中的数据与PUBLISHERS中的数据进行合并。 创建表: CREATE TABLE OLDPUBLISHERS ( 2 publisher_id CHAR(10) PRIMARY KEY, 3 name VARCHAR2(25), 4 contact V ARCHAR2(25),

SQL语言命令

SQL语言由命令、子句、运算和集合函数等构成。在SQL中,数据定义语言DDL(用来建立及定义数据表、字段以及索引等数据库结构)包含的命令有CREATE、DROP、ALTER;数据操纵语言DML(用来提供数据的查询、排序以及筛选数据等功能)包含的命令有SELECT、INSERT、UPDATE、DELETE。 一、SQL语句 (1)Select 查询语句 语法:SELECT [ALL|DISTINCT] <目标列表达式> [AS 列名] [,<目标列表达式> [AS 列名] ...] FROM <表名> [,<表名>…] [WHERE <条件表达式> [AND|OR <条件表达式>...] [GROUP BY 列名[HA VING <条件表达式>]] [ORDER BY 列名[ASC | DESC]] 解释:[ALL|DISTINCT] ALL:全部;DISTINCT:不包括重复行 <目标列表达式> 对字段可使用A VG、COUNT、SUM、MIN、MAX、运算符等 <条件表达式> 查询条件谓词 比较=、>,<,>=,<=,!=,<>, 确定范围BETWEEN AND、NOT BETWEEN AND 确定集合IN、NOT IN 字符匹配LIKE(“%”匹配任何长度,“_”匹配一个字符)、NOT LIKE 空值IS NULL、IS NOT NULL 子查询ANY、ALL、EXISTS 集合查询UNION(并)、INTERSECT(交)、MINUS(差) 多重条件AND、OR、NOT 对查询结果分组 [HA VING <条件表达式>] 分组筛选条件 [ORDER BY 列名[ASC | DESC]] 对查询结果排序;ASC:升序DESC:降序 例1:select student.sno as 学号, https://www.sodocs.net/doc/0c4384773.html, as 姓名, course as 课程名, score as 成绩from score,student where student.sid=score.sid and score.sid=:sid 例2:select student.sno as 学号, https://www.sodocs.net/doc/0c4384773.html, as 姓名,A VG(score) as 平均分from score,student where student.sid=score.sid and student.class=:class and (term=5 or term=6) group by student.sno, https://www.sodocs.net/doc/0c4384773.html, having count(*)>0 order by 平均分DESC 例3:select * from score where sid like '9634' 例4:select * from student where class in (select class from student where name='陈小小') (2)INSERT插入语句 语法:INSERT INTO <表名> [(<字段名1> [,<字段名2>, ...])] V ALUES (<常量1> [,<常量2>, ...]) 语法:INSERT INTO <表名> [(<字段名1> [,<字段名2>, ...])] 子查询 例子:INSERT INTO 借书表(rid,bookidx,bdate)V ALUES (edit1.text,edit2.text,date) 例子:INSERT INTO score1(sno,name) SELECT sno,name FROM stud ent WHERE class=?9634? (3)UPDATE-SQL

实验5 sql语句练习——图书馆数据库答案

实验5sql语句练习——图书馆数据库 实验5 sql语句练习——图书馆数据库 实验目的 (1)了解SQL Server数据库的逻辑结构和物理结构; (2)了解表的结构特点; (3)了解SQL Server的基本数据类型; (4)了解空值概念; (5)学会在企业管理器中创建数据库和表; (6)学会使用T-SQL语句创建数据库和表。 (7)学会使用T-SQL语句更新数据。 (7)学会使用T-SQL语句创建多种查询。 实验准备 首先要明确,能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 其次创建数据库必须要确定数据库名、数据库大小(最初的大小、最大的大小、是否允许增长及增长方式)和存储数据库的文件。 然后,确定数据库包含哪些表,以及所包含的各表的结构,还要了解SQL Server的常用数据类型,以创建数据库的表。 此外还要了解两种常用的创建数据库、表的方法,即在企业管理器中创建和使用T-SQL的CREATE DA TABASE语句。 实验内容 假设有5本书 设有一图书馆数据库,其中包括3个表,即图书表、读者表和借阅表。三个表的结构如图: 读者表结构

(1)用Sql语句创建图书馆数据库 Create database Lab05 (2)用Sql语句创建上述3个表 create table book ( bookId char(10)primary key, bookName varchar(50), bookWriter varchar(30), bookPublish varchar(30), bookPrice float ) create table reader ( readerId char(10) primary key, readerName varchar(8)not null, readerSex char(2)not null, readerOfficeTel char(8), readerDepartment varchar(30) ) create table 借阅表 ( readerId char(10), bookId char(10), checkOutTime char(8), checkInTime char(8), primary key(readerId,bookId), foreign key (readerId) references reader(readerId), foreign key (bookId) references book(bookId), ) (3)基于图书馆数据库的3个表,用sql语言完成一下操作:1)为图书表增加一列“ISBN”,数据类型为CHAR(10)

ER图+SQL语句练习题new

下图是企业订单管理系统的E-R图,提供对职工信息、客户信息、供应商信息、产品信息、订单信息、订单明细进行管理。描述为主键,描述为外键,外键约束通过图下箭头线进行标注。其中职员信息表中的sex取值为m或f,表示为男和女。 创建脚本如下: /*==============================================================*/ /* Table: 供应商信息表Supplier */ /*==============================================================*/ create table Supplier ( SupplierID char(5) not null, SupplierName varchar(50) not null,

Phone varchar(20) not null, Address varchar(50) null, PostalCode varchar(15) null, City varchar(20) null, constraint PK__Supplier primary key (SupplierID) ) go /*==============================================================*/ /* Table: 产品信息表Products */ /*==============================================================*/ create table Products ( ProductID char(5) not null, ProductName varchar(50) not null, SupplierID char(5) not null, constraint PK__Products primary key (ProductID), constraint FK_PRODUCTS_SUPPLIER foreign key (SupplierID) references Supplier (SupplierID) ) go /*==============================================================*/ /* Table: 客户信息表Customers */ /*==============================================================*/ create table Customers ( CustomerID char(5) not null, CustomerName varchar(50) not null, Phone varchar(20) not null,

SQL Serve实验5_索引和视图_要点

实验5 索引和视图 1.实验目的 (1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。 (2)掌握使用SQL Server管理平台查看索引的方法。 (3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引的方法。 (4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。 (5)了解索引和视图更名的系统存储过程sp_rename的用法。(6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。 (7)了解删除视图的Transact-SQL语句DROP VIEW的用法。2.实验内容及步骤 (1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。 使用SQL Server管理平台:

a. b. c. d.

e. 使用Transact-SQL语句: (2)使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。

(3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。 使用SQL Server管理平台: 使用SQL语句: use studentsdb go create index grade_index on grade (分数) (4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。 create index grade_id_c_ind on grade (学号,课程编号)

数据库实验五:视图的应用

数据库实验五:视图的应用 一、实验目的与要求: 1.实验目的 (1)理解视图的概念; (2)掌握视图的使用方法。 (3)理解视图和基本表的异同之处。 2.实验要求 (1)参照实验五中完成的查询,按如下要求设计和建立视图: 1)基于单个表按投影操作定义视图。 2)基于单个表按选择操作定义视图。 3)基于单个表按选择和投影操作定义视图。 4)基于多个表根据连接操作定义视图。 5)基于多个表根据嵌套操作定义视图。 6)定义含有虚字段的视图。 (2)分别在定义的视图设计一些查询(包括基于视图和基本表的连接或嵌套查询)。 (3)在定义的视图上进行插入、更新和删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。 (4)在实验报告中要给出具体的视图定义要求和操作要求,并针对各种情况做出具体的分析和讨论。 二、实验内容 1、实验原理 (1)视图是用SQL SELECT查询定义的,创建视图命令格式如下: CREATE VIEW <视图名> AS (2)删除视图的命令格式如下: DROP VIEW <视图名> 2、实验步骤与结果 (1)调出SQL Server2005软件的用户界面,进入SQL SERVER MANAGEMENT

STUDIO。 (2)输入自己编好的程序。 (3)检查已输入的程序正确与否。 (4)运行程序,并分析运行结果是否合理和正确。在运行时要注意当输入不同的数据时所得到的结果是否正确。 (5)输出程序清单和运行结果。 (1)参照实验五中完成的查询,按如下要求设计和建立视图: 1)基于单个表按投影操作定义视图。 create view v as select教师编号,姓名 from教师 2)基于单个表按选择操作定义视图。 create view v_order as select* from教师 where职称='教授' 3)基于单个表按选择和投影操作定义视图。 create view v_cuss as select教师编号,姓名,职称

SQLSERVER数据库、表的创建及SQL语句命令

SQLSERVER数据库、表的创建及SQL语句命令 SQLSERVER数据库,安装、备份、还原等问题: 一、存在已安装了sql server 2000,或2005等数据库,再次安装2008,会出现的问题 1、卸载原来的sql server 2000、2005,然后再安装sql server 2008,否则经常sql server服务启动不了 2、sql server服务启动失败,解决方法: 进入sql server configure manager,点开Sql server 网络配置(非sql native client 配置),点sqlzhh(我sqlserver 的名字)协议,将VIA协议禁用。再启动Sql Server服务,成功 如图: 二、在第一次安装SQLSERVER2008结束后,查看安装过程明细,描述中有较多项插件或程度,显示安装失败。 解决方法:

1、重新启动安装程度setup.exe,选择进行修复安装,至完成即可。 三、先创建数据库XXX,再进行还原数据库时,选择好备份文件XXX.bak,确定后进行还原,会报如下图的错误。 解决方法: 选择好备份数据库文件后,再进入“选项”中,勾选“覆盖现在数据库”即可。

四、查看数据库版本的命令:select @@version 在数据库中,点击“新建查询”,然后输入命令,执行结果如下 五、数据库定义及操作命令: 按照数据结构来组织、存储和管理数据的仓库。由表、关系以及操作对象组成,把数据存放在数据表中。 1、修改数据库密码的命令: EXEC sp_password NULL, '你的新密码', 'sa' sp_password Null,'sa','sa'

数据库SQL语句实验报告

《数据库原理及应用》实验报告SQL语句部分 :绩成总

实验一熟悉SQL SERVER,数据定义实验 实验一成绩: 一、实验目的 1、利用查询分析器创建数据库 2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作 二、实验步骤及内容 在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。 1.创建学生课程数据库 2.创建学生关系表S : 3.创建课程关系表C : 课程名学分先行课课程号Cno ccreditCname Cpno 4.创建课程关系表SC : 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 7、删除表S的“年龄”属性列。 8、删除S姓名列的唯一值约束。 9、修改SC表成绩属性列为精确数字型。 10、在表S上,按“Sno”属性列的唯一值方式建立索引。 11、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。 12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。 三、实验结果: 1.创建学生课程数据库 ; Studend create database2.创建学生关系表S : S create table(, 9Sno CHAR()PRIMARYKEY UNIQUE,)(Sname CHAR20CHAR Ssex (2), smallint Sage ,

char Sdept 20(), ); .创建课程关系表C 3: 课程号课程名先行课学分 ccredit Cpno CnoCname table C create (primary key,) Cno char(4Cname CHAR(40 ),char(), 4Cpno ,Ccredit SMALLINT); 4.创建课程关系表SC : 学号课程号成绩 grade Sno Cno createtable SC(9),Sno char(),char Cno (4, Grade smallint); 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 ;datetimeadd Sbirthday alter table S 7、删除表S的“年龄”属性列。

SQL数据库与表的创建

1.创建数据库 --创建数据库 create database db_NetStore --网上书城 on primary (name='db_NetStore', filename='f:\data\db_NetStore.mdf', size=10MB, maxsize=50MB ) log on (name='db_NetStore_log', filename='f:\data\db_NetStore.ldf, size=5MB, maxsize=25MB ) 2.创建表 ①create table Member --会员信息表 ( MemberID int not null primary key,--会员ID UserName varchar(50)not null,--会员登录名Password varchar(50)not null,--会员登录密码RealName varchar(50)not null,--会员真实姓名Sex bit not null,--会员性别 Phonecode varchar(20)not null,--会员电话号码Email varchar(50)not null,--会员E-mail地址Address varchar(200)not null,--会员详细地址PostCode char(10)not null,--邮编 LoadDate datetime not null,--创建时间 ) ②create table Admin --管理员信息表 ( AdminID int not null primary key,--管理员ID AdminName varchar(50)not null,--管理员登录名Password varchar(50)not null,--管理员登录密码RealName varchar(50)not null,--管理员真实姓名Email varchar(50)not null,--管理员E-mail地址LoadDate datetime not null,--创建时间 )

SQL语句测试

工程中心SQL语句综合测试(200分钟内完成) 1、(10分)要求: 选择受理时间在2008-5-1 到2008-6-1之间的所有申请人姓氏为“刘”的数据,并把“新受理编号” 列表示成当前机器时间的年月和原受理编号年月后的数值组合 格式如下: 受理编号,新受理编号,受理时间,申请人 200801112 201008112 2008-01-13 刘XX SQL: Select regnum 受理编号, SUBSTRING(getdate(),1,6)+ SUBSTRING(regnum,6,9) 新受理编号, REGDA TE 受理时间from I_Optinst t where a. Proposer like ‘刘%’and REGDA TE>=’2008-5-1’and REGDA TE<=’2008-6-1’ 需要的表 I_Optinst 业务实例表 REGDA TE(受理日期) Regnum(受理编号) Proposer(申请人) 2、(15分)要求: 前提:只统计业务小类“存量房买卖” ①按照月份分12月列出2008年每个月份的月份对应月份的交易总面积 ②按照月份分12月列出2008年每个月份的月份对应月份的交易均价(申报价格/建筑面积) 格式 年度月份交易总面积年度月份交易均价(元/平方米) 2008-01 23232 2008-01 2323 2008-02 2323 2008-02 232 2008-03 232323 2008-03 7656 2008-04 232323 2008-03 565 2008-05 232323 2008-03 5656 2008-06 232323 2008-03 565 2008-07 232323 2008-03 67 2008-08 232323 2008-03 676 2008-09 232323 2008-03 6767 2008-10 232323 2008-03 8686 2008-11 232323 2008-03 867 2008-12 232323 2008-03 454 需要的表: Fc_room 房间表 BAREA(建筑面积) I_Optinst业务实例表 regdate(受理时间) fc_owner 产权表

数据库系统原理实验报告_SQL查询语句

数据库系统原理 实验报告 :xxx 学号:xxxxxxxx 专业:xxxxx 日期:xxxxx

Lab2 一、实验目的 进一步熟悉关系数据库标准语言SQL。 二、实验环境 1)Windows 10 2)SQL Server 2017 三、实验容 给定如学生表、课程表和学生作业表所示的信息。 表1 学生表 表2 课程表 表3 学生作业表

K001 0433 60 75 75 K001 0529 70 70 60 K001 0531 70 80 80 K001 0591 80 90 90 K002 0496 80 80 90 K002 0529 70 70 85 K002 0531 80 80 80 K002 0538 65 75 85 K002 0592 75 85 85 K006 0531 80 80 90 K006 0591 80 80 80 M001 0496 70 70 80 M001 0591 65 75 75 S001 0531 80 80 80 S001 0538 60 80 写出如下SQL语句: 1.查询数据库中有哪些专业班级。(5分) Sql语句: SELECT专业班级 FROM学生表; 查询结果截图: 2.查询在1986年出生的学生的学号、和出生日期。(5分) Sql语句: SELECT学号,,出生日期 FROM学生表 WHERE出生日期LIKE'1986%'; 查询结果截图:

3.查询05级的男生信息。(5分) Sql语句: SELECT* FROM学生表 WHERE学号LIKE'05%'AND性别='男'; 查询结果截图: 4.查询没有作业成绩的学号和课程号。(5分) Sql语句: SELECT学号,课程号 FROM学生作业表 WHERE作业1成绩IS NULL OR作业2成绩IS NULL OR作业3成绩IS NULL; 查询结果截图: 5.查询选修了K001课程的学生人数。(5分) Sql语句: SELECT COUNT(DISTINCT学号) FROM学生作业表 WHERE课程号='K001'; 查询结果截图:

SQL查询语句巩固及练习结果

SQL巩固测试题 1.找出供应商名称,所在城市 select 公司名称,城市from 供应商 2.找出华北地区能够供应海鲜的所有供应商列表。 select 公司名称from 供应商a left join 产品b on a.供应商ID = b.供应商ID left join 类别c on b.类别ID = c.类别ID where a.地区= '华北' and c.类别名称= '海鲜'

3.找出订单销售额前五的订单是经由哪家运货商运送的。 select c.订单ID,a.公司名称,round(c.单价*c.数量*(1-c.折扣),2) as 销售额from 运货商a left join 订单b on a.运货商ID = b.运货商 left join 订单明细c on b.订单ID = c.订单ID order by 销售额desc limit 5 4.找出按箱包装的产品名称。 select 产品名称from 产品 where 单位数量like'%箱%'

5.找出重庆的供应商能够供应的所有产品列表。select 产品名称from 产品 where 供应商ID in(select 供应商ID from 供应商where 城市= '重庆')

6.找出雇员郑建杰所有的订单并根据订单销售额排序。 select a.订单ID,round(sum(a.单价*a.数量*(1-a.折扣)),2) as 销售额from 订单明细a left join 订单b on a.订单ID = b.订单ID left join 雇员c on b.雇员ID = c.雇员ID where c.姓氏= '郑' and c.名字= '建杰' group by 订单ID order by 销售额desc 7.找出订单10284的所有产品以及订单金额,运货商。 select b.订单ID,产品名称,round(a.单价*a.数量*(1-a.折扣),2) as 订单金额,c.公司名称from 订单明细a,订单b,运货商c,产品d

相关主题