数据库(实验2)
- 格式:doc
- 大小:197.50 KB
- 文档页数:4
实验2 MySQL数据库对象管理1. 实验目的理解数据字典、表、索引、视图的作用,掌握数据字典的操纵方式,掌握库、表、索引、视图的操作方法。
2. 实验内容【实验2-1】查看INFORMATION_SCHEMA.SCHEMATA 表中的信息。
【实验2-2】查看INFORMATION_SCHEMA.TABLES 表中的信息。
【实验2-3】查看INFORMATION_SCHEMA.COLUMNS 表中的信息。
【实验2-4】查看INFORMATION_SCHEMA.STATISTICS 表中的信息。
【实验2-5】查看INFORMATION_SCHEMA.CHARACTER_SETS 表中的信息。
【实验2-6】查看INFORMATION_SCHEMA.COLLATIONS表中的信息。
【实验2-7】使用CREATE DABASE语句创建school数据库。
【实验2-8】将school数据库的字符集设为utf-8。
【实验2-9】在school数据库下创建stu_info表,包括stuno varchar(10)、stuname varchar(8)、stubir date、stuage int;创建表course,包括courno varchar(3)、courname varchar(10)、schyear date、credit int;创建stuandcour 表,包括stuno varchar(10)、courno varchar(3)、grade int。
【实验2-10】使用SHOW、DESCRIBE语句查看所建的表。
【实验2-11】使用ALTER TABLE语句将stuinfo表的表名改为stuinfo,并且增加stugender varchar(4)字段,将course表中courno字段的类型改为varchar(5)。
【实验2-12】将前边建的表复制到test数据库中,如果没有test数据库就新建一个。
实验二数据库的查询实验实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。
(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
实验内容和原理在实验一定义的“学生成绩数据库”中,使用T-SQL 语句完成以下查询:(1 )求计算机系学生的学号和姓名。
(2)求选修了数学的学生学号、姓名和成绩。
(3)求选修01 课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)查找选修课程的平均成绩位于前三名的学生的学号。
(5)查询计算机系的姓刘且单名的学生的信息。
(6)查询至少选修两门课程的学生学号。
(7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。
(8)查询选修“数据库”课程,且成绩在80 分以上的学生的学号和成绩。
(9)查询所有姓“王”的同学没有选修的课程名。
(请分别用exists和in完成该查询) (10)查询选修了全部课程的学生的姓名。
(请至少写出两种查询语句)(11)求选修了学生“ 95001”所选修的全部课程的学生学号和姓名。
(12)查询每一门课的间接先修课。
(13)列出所有学生所有可能的选课情况。
(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。
(15)输出与“张三”同性别并位于同一个系的所有同学的姓名。
(请至少写出两种查询语句)(16)查询至少被两名男生选修的课程名。
(17)对被两名以上学生所选修的课程统计每门课的选课人数。
要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。
(18)列出选修课程超过 3 门的学生姓名及选修门数。
(19)检索至少选修课程号为01 和03 的学生姓名。
(20)检索至少选修课程“数学”和“操作系统”的学生学号。
(21 )查询‘操作系统'课程的最高分的学生的姓名、性别、所在系(22)查询数据结构的成绩低于操作系统的成绩的学生姓名及该生的这两门课的成绩(23)所有成绩都在70 分以上的学生姓名及所在系。
实验(一): 熟练掌握SQL语言实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。
实验内容:具体包括如下三部分。
一、熟悉上机环境。
客户/服务器结构,数据库服务器在一台NT服务器上,同学们通过客户机(操作系统为Windows 2000)上安装的SQL Server客户端程序, 使用SQL Server数据库服务器。
具体包括:1.了解SQL Server 环境。
鼠标点击开始,进入“Microsoft SQL Server→企业管理器”,点击SQL Server组下的数据库服务器(服务器名称为NEUC-201S(Windows NT)), 可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。
点击服务器(NEUC-201S(Windows NT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。
因为,数据库服务器上建有许多数据库, 每个数据库都有一些合法的用户。
2.鼠标点击开始,进入“Microsoft SQL Server→查询分析器”,输入用户名和口令,进入SQL查询分析器。
如:你登录的客户机为27号,那么请以用户名user27,口令为user27登录,登录后缺省连到数据库user27上,user27/user27是数据库user27的创建者,因此用户user27/ user27具有在数据库user27上创建表等一切权力。
3.在SQL查询分析器环境下,你就可进行SQL命令语句操作了。
二、在数据库useri上创建学生选课有关关系模式,并插入相应的数据,实现有关查询。
1.描述学生、课程情况的E-R图如下,请将其转化为用关系数据模型描述的关系模式CREA TE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20));CREA TE TABLE Course(Cno CHAR(4) PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4),Ccredit SMALLINT,FOREIGN KEY (Cpno) REFERENCES Course(Cno) );CREA TE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) );4在已建立的关系模式之上(已插入一些数据)建立主键约束,参照约束和用户定义的约束(要求学生年龄不小于14岁,不大于35岁),如果约束不能建立,请分析原因,修改后建立上述约束。
课程名称数据库原理实验序号 2实验项目数据查询实验地点实验学时实验类型验证性指导教师实验员专业班级学号姓名年月日成绩:A教师该学生本次实验的内容丰富,完成的操作步骤详细具体,实验结果正确,在实验报告的填写中态度十分严谨,对数据分析有自己的见解。
四、实验过程(实验步骤、记录、数据、分析)实验准备:在实验一的基础上(包括数据库的建立、定义表和添加表内容)进行实验,下面分别为depts表、students表、courses表、reports表。
一、简单的选择与投影查询1、无条件查询1.1查询全体学生的详细记录。
这是一个无条件的选择查询,其命令为:其命令为:select * from students运行结果如右图,显示整张表的内容。
1.2查询全体学生的姓名(Sname)、学号(Sno)、所在系(dno)。
这是一个无条件的投影查询,其命令为:select sname,ssexfrom students运行结果如右图,显示了表中的三列。
1.3查询全体学生的姓名(Sname)、出生年份及学号(Sno)。
其命令为:select sno,sname,2017-sage as birth from students运行结果如右图,显示了三列内容。
1.4查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。
其命令为:select sname,'birth:' title,YEAR(GETDATE())-sagebirthyear,LOWER(sno) lsnofrom students运行结果如右图,显示了四列内容。
1.5查询选修了课程的学生学号。
其命令为:select distinct snofrom reports运行结果如右图,distinct短语是为了消去查询结果中的重复值。
2、条件查询(1)比较条件1.1查询d03系全体学生的学号(Sno)和姓名(Sname)。
其命令为:select sno,snamefrom studentswhere dno='d03'运行结果如右图,显示了d03系的全体学生姓名与学号。
(1) 查找有销售记录的客户编号、名称和订单总额。
命令:SELECT a.CustomerNo,CustomerName, sum(quantity*price) orderSumFROM OrderMaster a,OrderDetail b,Customer cWHERE b.orderNo=a.orderNo AND c.CustomerNo=a.CustomerNoGROUP BY a.CustomerNo,CustomerNameORDER BY a.CustomerNo,orderSum DESC(2) 在订单明细表中查询订单金额最高的订单。
命令:SELECT top 1 orderNo,sum(quantity*price)订单金额FROM OrderDetailGROUP BY orderNoORDER BY 订单金额DESC(3) 查询没有订购商品的客户编号和客户名称。
命令:SELECT CustomerNo,CustomerNameFROM CustomerWHERE CustomerNo NOT IN (SELECT CustomerNo FROM OrderMaster)(4) 找出至少被订购3次的商品编号、订单编号、订货数量和订货金额,并按订货数量的降序排序输出。
命令:SELECT a.productNo,orderNo,quantity,(quantity*price) moneyFROM OrderDetail a,(SELECT productNoFROM OrderDetailGROUP BY productNoHA VING COUNT(*)>=3) bWHERE a.productNo =b.productNoORDER BY a.productNo,quantity DESC被订购三件以上的……SELECT b.ProductNo,orderNo,quantity,orderSum=quantity*priceFROM OrderDetail b,(SELECT ProductNo FROM(SELECT ProductNo,sum(quantity)SQfrom OrderDetail GROUP BY ProductNo)aWHERE a.SQ>3)cWHERE b.ProductNo=c.ProductNoORDER BY b.quantity DESC(5) 使用子查询查找32M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。
南京理工大学紫金学院实验报告书课程名称:《数据库系统》实验题目:实验2用SQL语句创建数据库和表班级: 0906012 学号: 090601257姓名:朱书宏指导教师:叶庆生一、实验目的1.更熟悉SQL语句对数据库的查询命令2. 对数据库的实际运用有一定的认识3.熟悉SQL的操作界面二、实验内容1.根据下列数据库模式Product(marker, model, type)PC(model, speed, ram, hd, rd, price)Laptop(model, speed, ram ,hd, screen, price)Printer(model, color, type, price)用SQL语句写出后面的查询,并使用习题1提供的资料写出查询结果。
* a) 找出所有价格在$1200以下的PC机的型号、速度和硬盘大小。
* b) 要求同(a),但是重命名列speed为megahertz以及列hd为gigabytes。
c) 找出所有打印机制造厂商。
d) 找出价格在$2000以上的手提电脑的型号、内存大小和屏幕尺寸。
* e) 找出关系Printer中所有彩色打印机元组,注意属性color是一个布尔类型。
f) 找出价格少于$2000并拥有12X或16X DVD的PC机的型号、速度和硬盘尺寸。
把rd属性看作一个字符串属性。
* g) 查询硬盘容量至少在30G的手提电脑制造商及电脑的速度。
* h) 查询制造商B制造的任意类型的所有产品的型号和价格。
i) 查询只卖手提电脑不卖PC的厂商。
! j) 查询出现在两种或两种以上PC中的硬盘的尺寸。
! k) 查询每对具有相同速度和RAM的PC机,每一对只出现一次。
例如,如果(i,j)符合,则(j,i)就不能出现在结果中出现。
!!l) 查询生产至少两种速度大于等于1000的计算机(PC或手提)的厂商。
2.根据下列数据库模式Classes ( class , type , country , numCuns , bore , displacement )Ships( name , class , launched )Battles( name , date )Outcomes ( ship , battle , result )用SQL语句写出后面的查询,并使用习题2给出的数据库模式和资料写出查询结果。
院系:计算机学院实验课程:数据库实验实验项目:数据操作实验指导老师:XXX开课时间:XXXX ~ XXXX年度第 2学期专业:XXXX班级:XXXX级本X班学生:XXX学号:XXXXXXXX实验二数据操作实验一、实验任务及目的1. 实验任务:上机完成实验内容,主要是编写、运行和分析SQL,请预先自行判断SQL 的运行结果(例如:查询结果包含哪些数据;更新后关系数据如何变化),然后与实际的运行结果比较,以此发现和修正SQL编写中的错误。
2. 实验目的:能够熟练使用MS SQL Server的Query Analyzer工具,联机运行SQL并观察分析SQL的执行结果。
掌握SQL的数据定义、数据查询和数据修改功能,能独立用SQL表述问题,解决较复杂的应用需求。
二、实验的主要硬件软件环境MS SQL Server、计算机磁盘三、实验主要数据结构线性表四、实验的主要算法1.至少向北京或天津的工程提供了零件的供应商名,供应的零件名、工程名和供应数量。
SELECT PNAME,JNAME,SNAME,QTYFROM S,P,J,SPJWHERE SPJ.SNO=S.SNOAND SPJ.JNO=J.JNOAND SPJ.PNO=P.PNOAND (J.CITY=’上海’ OR J.CITY=’天津’)2.供应红色零件给工程J1的供应商名SELECT SNAMEFROM S,P,SPJWHERE SPJ.JNO=’J1’AND SPJ.SNO=S.SNOAND SPJ.PNO=P.PNOAND COLOR=’红’3. 没有使用天津产的零件的工程号SELECT JNOFROM JWHERE JNO NOT IN(SELECT JNOFROM SPJ,SWHERE SPJ.SNO=S.SNOAND CITY=’天津’)4.没有向位于相同城市的工程供应零件的供应商名SELECT SNAMEFROM SWHERE SNAME NOT IN( SELECT SNAMEFROM S,J,SPJWHERE SPJ.JNO=J.JNOAND SPJ.SNO=S.SNOAND S.CITY=J.CITY)5. 和工程J3位于同一城市且使用过至少一种相同零件的其它工程名SELECT DISTINCT(JNAME)FROM J,SPJWHERE SPJ.JNO=J.JNOAND CITY IN(SELECT CITYFROM JWHERE J.JNO=’J3’)AND JNAME NOT IN(SELECT JNAMEFROM JWHERE J.JNO=’J3’)6. 每种颜色零件的总重量SELECT COLOR,SUM(WEIGHT)FROM PGROUP BY (COLOR)7.红色零件的平均重量SELECT AVG(WEIGHT)FROM PWHERE COLOR=’红’8.供应商最集中的城市(意即,哪个城市的供应商最多?)SELECT S.CITYFROM SGROUP BY (CITY)HAVING COUNT(CITY)>=ALL(SELECT COUNT(CITY)FROM SGROUP BY (CITY))9.对上海和天津,统计该城市的供应商一共供应了多少数量的零件。
数据库运维形考任务2-实验2 MariaDB数据库对象管理本文档旨在介绍MariaDB数据库对象管理的实验2任务。
在这个任务中,我们将研究如何管理MariaDB数据库中的不同对象。
1. 创建和删除数据库1.1 创建数据库要创建一个新的数据库,在MariaDB命令行中执行以下语句:CREATE DATABASE database_name;请将`database_name`替换为您想要创建的数据库的名称。
1.2 删除数据库如果要删除一个现有的数据库,可以使用以下语句:DROP DATABASE database_name;同样,请将`database_name`替换为要删除的数据库的名称。
2. 创建和删除表2.1 创建表在已有的数据库中创建表,使用以下语句:USE database_name;CREATE TABLE table_name (column1 datatype,column2 datatype,...);请将`database_name`替换为已有的数据库的名称,`table_name`替换为要创建的表的名称,`column1, column2, ...`替换为表中的列名和相应的数据类型。
2.2 删除表要删除一个表,使用以下语句:USE database_name;DROP TABLE table_name;请将`database_name`替换为表所属的数据库的名称,`table_name`替换为要删除的表的名称。
3. 创建和删除索引3.1 创建索引要在表的列上创建索引,使用以下语句:USE database_name;CREATE INDEX index_name ON table_name (column);请将`database_name`替换为表所属的数据库的名称,`index_name`替换为要创建的索引的名称,`table_name`替换为包含索引的表的名称,`column`替换为要在其上创建索引的列。
实验二数据定义一、实验目的1、掌握使用SQL语句创建和删除数据库;2、掌握使用SQL语句创建和删除数据表,创建各种完整性约束,修改表的结构;3、掌握索引的创建和删除方法。
二、实验过程(一)数据库的建立使用CREATE DA TABASE语句创建名为“gongcheng”的数据库。
create database gongcheng(二)数据表的操作1.建立数据表在创建的“gongcheng”数据库中使用SQL语句建立4个关系(可参考课本P74习题5),如下:供应商表S (Sno,Sname,Status,Ctiy)零件表P(Pno,Pname,Color,Weight)工程项目表J(Jno,Jname,City)供应情况表SPJ(Sno,Pno,Jno,QTY)要求:(1)创建每个关系的主键,有外键的创建外键。
(2)S表中的Sname属性列的取值唯一(3)P表中weight属性列的取值范围在1-50之间(4)J表中的Jname取值不能为空并且是唯一的(5)SPJ表中QTY属性列的数据类型必须为int建立供应商表Screate table S(Sno varchar(8)primary key,Sname varchar(20)unique,Status int,City varchar(20))建立零件表Pcreate table P(Pno varchar(8)primary key,Pname varchar(20),Color varchar(4),Weight int check(Weight>=1 and Weight<=50))建立工程项目表Jcreate table J(Jno varchar(8)primary key,Jname varchar(20)unique not null,City varchar(20))建立供应情况表SPJcreate table SPJ(Sno varchar(8),Pno varchar(8),Jno varchar(8),QTY int,primary key(Sno,Pno,Jno),foreign key(Sno)references S(Sno),foreign key(Pno)references P(Pno),foreign key(Jno)references J(Jno))2.修改表的结构用SQL语句完成以下操作:(1)给S表增加Sphone和Semail两个属性列,分别用来存放供应商的联系电话和电子信箱。
南京信息工程大学数据库基础教程实验(实习)报告
实验(实习)名称数据库、表的创建实验(实习)日期2016.4 得分指导老师马瑞
系计算机与软件学院专业网络工程班级 2 姓名杨泽瑞学号20141346046
一、实验目的
1.了解在SSMS创建数据库的要求。
2.了解Server数据库的逻辑结构和物理结构。
3.掌握表的结构特点。
4.掌握SQL的基本数据类型。
5.掌握空值概念。
6.掌握SSMS界面和使用T-SQL语句创建数据库的方法。
二、实验内容
1.在SSMS中创建数据库的要求如下:
(1)能创建数据库的用户必须是系统管理员,或被授权使用CREATE DATABASE 语句的用户。
(2)创建数据库必须确定数据库名、所有者(即创建数据库的用户)、数据库大小(最初大小、增长方式)和存储数据库的文件。
(3)确定数据库包含哪些表,以及所包含的各表的结构,还要了解SQLServer 的常用数据类型,以创建数据库的表。
2.定义数据库结构。
创建学生成绩数据库,数据库名为XSCJ,包含下列3个表。
(1)学生表:表名为Student,描述学生信息。
(2)课程表:表名为Course,描述课程信息。
(3)学生选课表:表名为StuCourse,描述学生选课及成绩信息。
3.在SSMS控制台上创建XSCJ数据库。
要求:数据库XSCJ初始大小为5 MB,日志文件初始大小为1 MB,增长方式均采用默认值。
数据库的逻辑文件名和物理文件名均采用默认值,分别为XSCJ_data 和f:\prograni FilesVMicrosoft SQL Server\MSSQL.l\MSSQL\data\XSCJ.mdf ,其中 f:\Program Files\Microsoft SQL Server\MSSQL.l\MSSQL\data^ SQL Server 2012的系统安装目录;事务日志的的逻辑文件名和物理文件名也均采用默认值,分别为XSCJ_LOG和
ProgramFiles\MicrosoftSpLServer\MSSQL.l\MSSQL\data\XSCJ_Log.ldf。
注意:不同的安装系统安装目录有可能不相同。
启动SSMS,以系统管理员或被授权使用CREATE DATABASE语句的用户登录SQL Server 2014服务器。
在对象资源管理器中“数据库,,图标上单击鼠标右键,在快捷菜单上选择“新建数 ,据库”,将出现如图A2.1所不的“新建数据库”窗口。
在“数据库名称”文本框中输入数据库名 1SCJ”,并将逻辑文件的初始大小改为5 MB,单击“确定”按钮,即可创建XSCJ数据库。
在对象资源管理器中展开“数据库”图标,将看到新增了“XSCJ”图标。
4.将新创建的XSCJ数据库删除。
在资源管理器中选择数据库XSCJ在XSCJ上单击鼠标右键删除。
5.使用T-SQL语句创建XSCJ数据库。
启动査询分析器,在查询分析器中输入以下语句:
6.在SSMS控制台上创建XSCJ数据库的SANGE 表。
选择数据库XSCJ—展开XSCJ 数据库—
在“表”图标上单击右键新建表。
7.在SSMS控制台上删除XSCJ数据库的3个表。
在对象资源管理器中选择数据库XSCJ的表Student—>在Student上点击鼠标右键一>删除,即删除了表Student。
按同样的操作过程删除Course和StuCourse。
8.使用T-SQL语旬创建XSCJ数据库的3个表。
启动查询分析器在查询分拆器窗口中输入以下语句:
执行上述语句,并在对象资源管理器中查看执行结果。