数据库实验二
数据库实验2-数据库及表的创建与管理(DDL应用)
实验二数据库及表的创建与管理(DDL应用)姓名:学号:专业:网络工程班级:20网络工程同组人:无实验日期:一、【实验目的与要求】1.熟悉SQL Server 2005 的环境2.了解使用企业管理器创建数据库的过程和方法3.了解使用企业管理器创建数据库的过程和方法二、【实验准备】1.安装并配置好SQL Server 2005数据库2.设计好数据库创建各参数,准备好测试数据三、【实验要求】1.完成数据库的创建与管理2.完成表的创建与管理。
3. 熟悉SQL Server 2005中企业管理器和查询分析器两个常用管理工具四、【实验内容】1. 数据库创建与管理2. 表的创建、管理及数据操作。
五、【实验步骤】1. 准备工作(1)安装完成SQL Server 2005安装。
(2) 打开企业管理器(3)连接数据库2.数据库的创建与修改准备工作:在C盘下创建目录Exam03,用于存放数据库创建时产生的数据文件。
(1) 数据库的创建使数据定义语句Create Database可以创建数据库,该语句在使用时可指明数据文件和日志文件存放的路径,初始数据文件的大小等参数。
阅读以下是创建数据库SalesDB的SQL语句,理解其功能,并置于查询分析器中执行:create database SalesDBon(name= SalesDB_data,--数据文件的逻辑名称,注意不能与日志逻辑同名filename='C:\Exam03\SalesDB.mdf' ,--物理名称,注意路径必须存在size=20, --数据初始长度为10Mmaxsize=100, --最大长度为100Mfilegrowth=5 --数据文件每次增长1M)log on(name= SalesDB_log,filename='C:\Exam03\SalesDB.ldf ' ,size=20 ,maxsize=50 ,filegrowth=5)在查询分析器中执行上述语句建立数据库SalesDB。
数据库上机实验二
数据库上机实验二实验要求:(1) 掌握查询语句的一般格式。
;(2) 掌握无条件、有条件查询及查询结果排序与分组。
实验目的:熟练掌握简单查询语句的使用。
实验设备:装有SQL SERVER 2000的电脑 实验步骤:(1) 启动SQL 查询分析器;(2) 选择SQL SERVER 后,按确认; (3) 选择数据库ST ;(4) 综合练习如下例题(实验报告上只需写蓝色字体的题目):预备工作:建立一个名称为“ST ”的数据库,里面有三张表:Students 、Courses 、Reports ; 直接在企业管理器里,在数据库ST 的三张表里输入以下数据:1 无条件查询例1 查询全体学生的详细记录。
这是一个无条件的选择查询,其命令为: SELECT * /*这里的“*”等价于ALL*/ FROM s;其结果为表1中的全部数据。
例2 查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。
这是一个无条件的投影查询,其命令为:SELECT Sname, Sno, Sdept FROM s;例3 查询全体学生的姓名(Sname)、出生年份及学号(Sno)。
由于SELECT 子句的<目标列表达式>不仅可以是表中的属性列,也可以是表达式,故可以查询经过计算的值。
其命令为:select Sname, 2011 - Sage AS birth, Snofrom s例4 查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。
其命令为:select Sname, 2011 - Sage AS birth, lower(Sno) as Sno表1 关系s表2 关系c表3 关系scfrom s例5查询选修了课程的学生学号。
其命令为:select DISTINCT s.Snofrom sc, swhere sc.Sno = s.Snoand Cno IS NOT NULL2 条件查询例6 查询数学系全体学生的学号(Sno)和姓名(Sname)。
数据库原理实验2数据查询
课程名称数据库原理实验序号 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系的全体学生姓名与学号。
数据库实验 创建数据表,修改表结构
ssex char(2),程”表course
Create table course
(
cno char(4) primary key,
cname char(20),
ccredit smallint
);
建立学生选课表sc
Create table sc
(
tno char(6)primary key,
jbgz int,
zwgz int,
bj int,
Foreign key (tno) referencest(tno)
);
4. 用命定在已存在的学生表student中增加一个sdept(系)的新的属性列;
alter table student add sdept char(20);
实验二:创建数据表,修改表结构
一、实验目的:
掌握建立一个数据库表结构的方法和步骤,了解数据库表的基本组成。
二、实验要求:(必做)
硬件:Intel Pentium120或以上级别的CPU,大于16MB的内存。
软件:Windows 95/98/2000操作系统,关系数据库管理系统SQL SERVER 2000。
5. 用命定将学生表student中sname属性列的数据类型修改为变长字符串varchar(10)。
alter table student alter column snamevarchar(10);
6. 在数据库中建立一个临时表
建立一个临时表
create table linshi
(lin int
2.删除该临时表
drop table linshi cascade;
SQL SERVER 2000对CASCADE与RESTRICT处理策越是相同的。
2-Expriment 2数据库实验
Experiment 2. Expressions and GROUP BY clause1. Search conditions1.1 Select rows within a certain range. (Using BETWEEN…AND…)a. Find all the employees who earn between $1200 and $1400.b. Find all the employees who do not earn between $1200 and $1400.1.2 Select rows that match a value in a list. (Using IN(…) operator)a. Find the employees who are clerks, analysts or salesmen.b. Find the employees who are not clerks, analysts or salesmen.1.3 Select rows that match a character string pattern. (Using LIKE operator)a. Find all the employees whose names begin with the letter “M”.b. Find all the employees whose names contain the letter “N”.c. Find all the employees whose names are not 5 characters long.2. Ordering rows in a query result2.1 List the employees in department 30 ordered by their salaries in ascending order.2.2 List the employees in department 30 ordered by their salaries in descending order.2.3 Order all employees by job. For those with the same job, put them in descending salary order.3. Expressions3.1 The ISNULL() function.Syntax: ISNULL ( check_expression , replacement_value )Description: Check whether check_expression is a null value. If it is, replace it with replacement_value in the expression.Example: Calculate the average price of all books. Consider the books without price data as $20.SELECT AVG(ISNULL(Price, 20)) FROM Books;3.2 List the name, salary, commission, and sum of salary plus commission of all salesmen.3.3 List the name, salary and commission of employees whose commissions are greater than 25% of their salaries.3.4 Calculate the total annual earnings of all salesmen based on their monthly salaries and their monthly commissions.4. Aggregate Functions4.1 Find the average salary for clerks.4.2 Find the total salary and total commission for salesmen.4.3 Compute the average annual salary plus commission for all salesmen.4.4 Find the highest and lowest paid employee salaries and the difference between them.4.5 Count the number of employees who receive a commission.4.6 Count the number of different jobs held by employees in department 30.4.7 Count the number of employees in department 30.5. GROUP BY clause5.1 List the department number and average salary of each department.5.2 F ind each department’s average annual salary for all its employees except the managers and the president.5.3 Divide all employees into groups by department, and by jobs within department. Count the employees in each group and compute each group’s average annual salary.5.4 List the average annual salary for all job groups having more than 2 employees in the group.5.5 List all the departments that have at least two clerks.5.6 Find all departments with an average commission greater than 25% of average salary.。
数据库原理及应用实验指导书答案
数据库原理及应用实验指导书 - 答案实验一:数据库管理系统的安装与配置问题一数据库管理系统(DBMS)是一种软件,用于管理和组织数据库。
它允许用户创建,读取,更新和删除数据库中的数据。
常见的数据库管理系统有MySQL,Oracle,SQL Server等。
问题二在实验室环境中,我们将使用MySQL作为我们的数据库管理系统。
以下是MySQL的一些常见特点: - 开源免费 - 跨平台支持 - 可扩展性强 - 有大型的用户社区和丰富的资源支持问题三MySQL的安装步骤如下: 1. 下载MySQL安装文件,可以从MySQL官方网站或者其他可信的下载源获取。
2. 运行安装程序,按照向导的指示进行安装。
3. 选择是否要安装MySQL 服务器和MySQL工具。
4. 设置密码以保护数据库的安全。
5. 完成安装程序并启动MySQL服务。
数据库是一个组织和存储数据的容器。
在关系型数据库中,数据以表的形式存储,每个表包含多个行和列。
每行代表一个记录,每列代表一个字段。
问题五关系型数据库管理系统(RDBMS)是一种DBMS,它使用结构化查询语言(SQL)来操作和处理数据。
常见的关系型数据库管理系统有MySQL,Oracle,SQL Server等。
问题六开放数据库连接(ODBC)是一种标准的数据库访问方法,它允许不同的应用程序通过统一的接口访问不同的数据库管理系统。
ODBC驱动程序充当应用程序和数据库之间的翻译器。
问题七在Windows系统中,ODBC数据源可以通过控制面板的“管理工具”来配置。
在数据源配置对话框中,可以添加,编辑和删除ODBC数据源。
在Windows系统中,可以使用ODBC接口库和ODBC驱动程序来连接和操作数据库。
具体步骤如下: 1. 加载ODBC接口库。
2. 初始化ODBC环境。
3. 建立数据库连接。
4. 执行SQL语句。
5. 关闭数据库连接。
6. 释放ODBC环境。
问题九ODBC接口库是一组API函数,用于连接和操作数据库。
数据库实验二
实验二数据定义一、实验目的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两个属性列,分别用来存放供应商的联系电话和电子信箱。
实验2 SQL Server数据库的管理
实验2 SQL Server数据库的管理一、实验目的1.了解SQL Server数据库的逻辑结构和物理结构的特点。
2.学会使用SQL Server管理平台对数据库进行管理的方法。
3.学会使用Transact-SQL语句对数据库进行管理的方法。
二、实验内容及步骤1.在SQL Server管理平台中创建studentsdb数据库。
(1)运行SQL Server管理器平台,在管理平台的对象资源管理器中展开服务器。
(2)右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项.在新建数据库对话框的名称文本框中输入学生管理数据库名studentsdb。
2.选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。
3,打开studentsdb数据库的“属性”对话框,在“文件”选项卡中修改studentsdb 数据文件的“分配的空间”大小为2MB。
指定“最大文件大小”为5MB。
在“事务日志”选项卡中修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。
4.单击“新建查询”打开查询设计窗口,在查询设计器中使用Transact-SQL 语句CREATE DATABASE 创建studb 数据库。
然后通过系统存储过程sp_helpdb 查看系统中数据库信息。
5.在查询设计器中使用Transact-SQL语句ALTER DATABASE修改studb 数据库的设置,指定数据文件大小为5MB.最大文件大小为20MB,自动递增大小为1MB。
6.在查询设计器中为studdb数据库增加一个日志文件,命名为studb_Log2,大小5MB。
最大文件大小为10MB。
7.使用查询设计器将studb数据库的名称更改为student_db。
8.使用Transact-SQL语句DROP DATABASE删除student_db数据库。
9.在SQL Server管理平台中删除studentsdb数据库。
数据库应用课程02实验二 关系完整性约束操作
学号
姓名
实验项目
关系完整性约束操作
实验地点
实验仪台号
指导教师
程荃华
实验日期及节次
年月日,第节
理解“关系”、“关键字”、“主键”、“外键”、“实例完整性”、“参照完整性”、“域完整性”等的概念;
掌握建立关系完整性约束的方法。
下载实验用的数据库样例。
(1)打开名称为“Ch1教学管理数据库.accdb”的Access 2007数据库。
(2)打开“导航窗格”,单击其顶部的下拉列表框,选择“表”。可以看到有多张表。
(3)双击学生表,将其打开,查看学生表的记录信息。
(4)切换至“设计视图”,给学生表指定学号为主键。
(5)给学生表中的性别字段加上域限制,限制其取值只能为“男”或“女”。
(6)限制学生表的入学成绩取值只能在300至700之间。
(7)分别指定家庭成员表的主键为“ID”,班级表的主键为“班级号”,课程表的主键为“课程号”,成绩表的主键为“学号”+“课程号”。
(8)鼠标单击Access的菜单“数据库工具”,再点“关系”按钮,出现数据库关系图。
(9)给班级表与学生表之间加上关系联系线,设定它们之间的联系是按班级号一对多的联系,并且加上参照完整性约束,以及级联更新和级联删除。然后通过对表记录的更新操作进行验证。
(10)按照步骤(9)的方法,对其它表加上参照完整性约束。
请将实验步骤中的每一步,使用截图方式记录其过程。
解释什么是记录、字段、主键、实例完整性、参照完整性、域完整性。
成绩:指导教师签名:
数据库实验二:简单查询和连接查询(供河南科技大学学生用)
实验二:简单查询和连接查询一、实验目的:熟练掌握用SQL语句实现的简单查询和多个数据表连接查询。
二、实验内容:(一)完成下面的简单查询:①查询所有“天津”的供应商明细;②查询所有“红色”的14公斤以上的零件。
③查询工程名称中含有“厂”字的工程明细。
(二)完成下面的连接查询:①等值连接:求s表和j表的相同城市的等值连接。
②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
③笛卡尔积:求s和p表的笛卡尔积④左连接:求j表和spj表的左连接。
⑤右连接:求spj表和j表的右连接。
三、完成情况:(一)完成下面的简单查询:①查询所有“天津”的供应商明细;select*from swhere city='天津'②查询所有“红色”的14公斤以上的零件select*from pwhere color='红'andweight>'14'③查询工程名称中含有“厂”字的工程明细select*from jwhere jname like'%厂'(二)完成下面的连接查询:①等值连接:求s表和j表的相同城市的等值连接。
select s.*,j.*from s,jwhere s.city=j.city②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
select sname,jname,pnamefrom s,p,j,spjwhere spj.sno=s.sno andspj.pno=p.pno andspj.jno=j.jno③笛卡尔积:求s和p表的笛卡尔积select*from s,p④左连接:求j表和spj表的左连接select j.jno,jname,city,spj.sno,pno,QTYfrom j left join spj on(j.jno=spj.jno)⑤右连接:求spj表和j表的右连接select j.jno,jname,city,spj.sno,pno,QTYfrom spj right join j on(j.jno=spj.jno)四、实验结果:(一)①查询所有“天津”的供应商明细;②查询所有“红色”的14公斤以上的零件③查询工程名称中含有“厂”字的工程明细(二)①等值连接:求s表和j表的相同城市的等值连接②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。
数据库原理实验报告二
LIAOCHENG UNIVERSITY计算机学院实验报告【 2015 ~ 2016 学年第 2 学期】【一、基本信息】【实验课程】数据库原理与应用【设课形式】独立□非独立√【课程学分】0.5【实验项目】实验二、SQL数据操作及查询【项目类型】基础√综合□设计□研究创新□其它[ ] 【项目学时】 4 【学生姓名】傅雪晨【学号】2014204359【系别专业】电子商务【实验班组】 2014.06【同组学生】【实验室名】综合实验楼【实验日期】【报告日期】【二、实验教师对报告的最终评价及处理意见】实验成绩:(涂改无效)指导教师签名:年月日注:要将实验项目、实验课程的成绩评定及课程考核办法明确告知学生,并报实验管理中心备案3.将教材P70表中的数据添加到数据库SPJDB中. 体会执行插入操作时检查实体完整性规则、参照完整性规则和用户定义完整性规则的效果.Insert into S59select's1','精益','20','天津'unionselect's2','盛锡','10','北京'unionselect's3','东方红','30','北京'unionselect's4','丰泰盛','20','天津'unionselect's5','为民','30','上海'Insert into P59select'p1','螺母','红',12 unionselect'p2','螺栓','绿',17 unionselect'p3','螺丝刀','蓝',14 unionselect'p4','螺丝刀','红',14 unionselect'p5','凸轮','蓝',40 unionselect'p6','齿轮','红',30Insert into J59select'J1','三建','北京'unionselect'J2','一汽','长春'unionselect'J3','弹簧厂','天津'unionselect'J4','造船厂','天津'unionselect'J5','机车厂','唐山'unionselect'J6','无线电厂','常州'union4.删除student表中学号为201215121的学生,体会执行删除操作时检查参照完整性规则的效果.将参照完整性中的删除规则改为“级联(层叠)”(CASCADE),重新删除该学生信息。
南京邮电大学 数据库系统 实验二参考答案
create user u2 identified by b04041006;
grant connect,resource to u2;
2.对系统中scott用户的员工(emp)表,用授权机制完成以下存取控制
(1)所有用户具有对员工编号empno,姓名enmae和所在部门depno的查询权限
在scott界面输入commit命令后
记录实验现象,同上)
SQL〉select sal from empwheredeptno=10and empno like ‘77%';
U1界面:
SQL〉selectsal from scott.empwheredeptno=10and empno like ‘77%';
SQL> update emp
set sal=sal+200 where deptno=10;
此时,查询到的7782号员工的SAL为多少?
(3)在以自己的用户登录的SQL PLUS窗口将emp表中的工号以77开头的员工工资增加300元,此即事务2
SQL> update scott.emp
set sal=sal+300 where empno like '77%';
实现过程:
以scott的身份进入SQL *Plus scott/tiger
grant all privileges on emp to U1 with grant option;
4.观察多事务并发时的数据保护
(1)分别以scott和自己的用户名登录到SQL PLUS,并分别输入命令set auto off
;
数据库实验二实验报告
_数据库实验二课程实验报告实验名称:姓名班级学号实验台编号同组学生实验课表现出勤、表现得分25% 实验报告得分50%实验总分操作结果得分25%实验目的:1.掌握SELECT语句的基本语法2.掌握SELECT语句中的SELECT子句的作用及使用方法3.掌握SELECT语句中的WHERE子句的作用及使用方法4.掌握SELECT语句中的ORDER BY子句的作用及使用方法5.掌握集合函数的作用及使用方法6.掌握SELECT语句中的GROUP BY子句的作用及使用方法7.熟悉内连接、外连接、自连接和非限制连接的概念8.能够熟练使用连接查询从多个表中查询数据9.能够熟练地使用子查询得到想要的数据实验内容:一、简单查询1.查询XS表中各个同学的所有信息。
select* from XS;2.查询XS表中各个同学的姓名、专业名和总学分。
select姓名,专业,总学分from XS;3.查询XS表中所有同学的学号、姓名和总学分,结果中各列的标题分别指定为num,name和mark。
select学号num,姓名name,总学分mark from XS;4.查询XS表中的学生数据来自哪些专业(使用DISTINCT子句消除结果集中的重复行)。
select distinct专业from XS;5.查询XS表中各个同学的姓名、专业名和总学分,只返回结果集的前5行。
select top 5 姓名,专业,总学分from XS;6.查询XS表中每个学生的学号、姓名和年龄信息。
select datediff(yyyy,出生日期,'2010')年龄from XS;7.查询XS表中专业为“计算机”的同学的情况。
select*from XS where专业='计算机';8.查询XS表中1979年出生的学生姓名和专业情况。
SELECT姓名,专业from XS where year(出生日期)='1979';9.查询XS表中专业名为“计算机”或“电子”或“数学”的学生的情况。
数据库实验二,sql查询语句
实验二:数据查询语言实验内容SQL数据查询语句:例5-1:(选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。
select sno,sname,sex,sage from student;例5-2:(不选择重复行) 求选修了课程的学生学号。
select distinct cno from sc where cno is not null;例5-3:(选择表中的所有列) 求全体学生的详细信息。
select * from student;例5-4:(使用表达式) 求全体学生的学号、姓名和出生年份。
select sno,sname,birthday from student;例5-5:(使用列的别名) 求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。
select sno as"学号",birthday as"出生年份" from student;例5-6:(比较大小条件) 求年龄大于19岁的学生的姓名和年龄。
select sname,age from studentwhere age>19;例5-7:(比较大小条件) 求计算机系或经济管理系年龄大于18岁的学生的姓名、系和年龄。
select sname,depname ,agefrom student,departmentwhere student.depno=department.depnoand age>18;例5-8:(确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。
select sno,age from studentwhere age in(19,22);例5-9:(确定范围条件) 求年龄不在19岁与22岁之间的学生的学号和年龄。
select sno,age from studentwhere age not in(19,22);例5-10:(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。
实验二 数据库及数据库对象的创建和管理
实验二数据库及数据库对象的创建和管理一、实验目的1.掌握用企业管理器(Enterprise Manager)对数据库的完整创建、修改和删除2.掌握用企业管理器(Enterprise Manager)对常见的数据库对象如表、试图、索引等的创建、修改和删除3.掌握用SQL语句进行创建和管理数据库、表、试图和索引二、实验环境(实验的软件、硬件环境)硬件:PC机软件:SQL2000三、实验指导说明请复习相关的数据库及其对象的创建和管理的SQL语法知识点,并完成如下内容。
四、实验内容1.数据库操作(1)用SQL语句完整创建一个订单数据库,名为OrderDB,存放路径为:E:\MyOrder,它由5MB的主数据文件、2MB的次数据文件和1MB的日志文件组成。
并且主数据文件以2MB的增长速度增长,其最大数据文件的大小为15MB,次数据文件以10%的增长速度增长,其最大次数据文件的大小为10MB,事务日志文件以1MB速度增长,其最大日志文件大小为10MB。
(2)将主数据文件大小由5M增大到8M,并删除次数据文件。
(3)为了扩大订单数据库,为它增加一个次要数据文件order3.ndf,该文件大小为4M,最大可增长到10M,以10%的速度增长。
(4)删除数据库。
2.表操作(1)简单创建订单数据库orderDB(2)为订单数据库创建5张表,分别如下:(要求在创建的过程中,分别为每张表合理建立主键、外键约束)员工表Employee客户表customer商品信息表product订单主表orderMaster订单明细表orderDetail(3)表结构的修改修改客户表结构,要求客户名称和客户电话属性为not null修改员工表结构,要求员工姓名和电话属性为not null修改订单表结构,要求发票号码属性为not null3.索引操作在已创建的基本表的基础上,完成以下索引(1)在员工表中按所得薪水建立一个非聚集索引salaryIdx(2)在订单主表中,首先按订金金额的升序,然后按业务员编号的降序建立一个非聚集索引salenosumIdx。
数据库实验二 《数据查询:单表查询与连接查询》实验
《数据查询:单表查询与连接查询》实验一、实验目的与要求淘宝店5302131.掌握SELECT语句的基本语法。
2.掌握连接查询的表示。
3.掌握数据汇总的方法。
4.掌握SELECT语句的GROUP BY子句的作用和使用方法。
5.掌握SELECT语句的ORDER BY子句的作用和使用方法。
二、实验平台淘宝店5302131、操作系统:Windows XP或Windows 20032、数据库管理系统:SQL Server 2005三、实验内容淘宝店530213练习前,先附加“教务管理系统”,在“教务管理系统”的数据库中进行一下查询:单表查询1、在“学生信息”表中,以列名显示方式,查询学生信息。
select学号sno,姓名sname,性别ssexfrom学生信息2、交换列的显示顺序,查询查询“学生信息”表中所有学生的学号、姓名、政治面貌和籍贯信息。
列标题显示方式如下:①(学号、姓名、政治面貌、籍贯)②(姓名、学号、籍贯、政治面貌)3、对比不使用DISTINCT和使用DISTINCT,查询“学生信息”表的“籍贯”列中的信息。
4、查询列表中使用计算列:查询“选课表”中学生成绩信息,把成绩减少10分显示,同时显示编号、学号、调整前的成绩(列标题:学号、课程编号、调整前成绩、调整后成绩)。
select学号,课程编号,成绩调整前的成绩,成绩-10 调整后的成绩from选课表5、WHERE子句的使用1)从“学生信息”表中,查询出“籍贯”为“福建”的学生的学号、姓名、性别、民族和籍贯信息。
2)从“学生信息”表中,查询出“籍贯”不是“福建”的学生的学号、姓名、性别、民族和籍贯信息。
3)从“学生信息”表中,查询出“籍贯”为“河南”并且“民族”为“汉”的学生的学号、姓名、性别、民族和籍贯信息。
select学号,姓名,性别,民族,籍贯from学生信息where籍贯='河南'and民族='汉'4)从“学生信息”表中,查询出“籍贯”为“河南”或者“上海”的学生的学号、姓名、性别、民族和籍贯信息。
实验2数据库和表
实验2 数据库和表实验目的:1. 理解MySQL数据库和表的概念及关系;2 •理解表的结构特点;3. 理解MySQL的基本数据类型;4. 学会命令行方式进行数据定义实验要求:1.掌握数据库设计的基本方法,设计用于企业管理的员工管理数据库。
2•创建用于企业管理的员工管理数据库,确定数据库中有哪些表,以及所包含的各表的结构,还要了解MySQL的常用数据类型。
3.掌握数据定义相关SQL语句。
实验内容:1. 设计用于企业管理的员工管理数据库2. 用命令创建数据库和表实验步骤:1.设计用于企业管理的员工管理数据库要建立企业管理系统,对员工的基本信息(包括员工编号,姓名,性别,出生日期,学历,参加工作时间,地址,电话号码),部门基本信息(部门号,部门名,备注),以及员工(2) 将E-R图转换为关系模式员工表:员工编号,姓名,性别,学历,出生日期,电话号码,地址部门表:部门号,部门名,备注从属表:部门号,员工编号薪水表:薪水编号,收入,支出,年月员工领取薪水表:员工编号,薪水编号,薪水值部门计算薪水表:部门号,薪水编号,薪水值(3) 确定各数据表的结构要求:将下面三个表中带底纹的空的单元格填上对应的值。
⑴ 使用命令创建用于企业管理的员工管理数据库YGGL ,默认的字符集设为Createutf8. database YGGL character set=utf8;⑵ 使用命令创建数据库YGGL 中各表首先将YGGL 数据库变成当前活动的数据库Use YGGL;① 创建部门信息表Departments ,存储引擎设为innodb.Create table Departments (DepartmentID int(8) unsigned primary key auto_increment,DepartmentName varchar(10),Note text)engine=innodb auto_increment=10000;②创建员工信息表Employees ,存储引擎设为innodb Create table Employees(EmployeeID int(8) unsigned primary key auto_increment, Name char(6) not null,Sex enum( “ F” , ” M” ), Birthday date,Education varchar(20), WorkYear date,Address varchar(30) not null, PhoneNumber char(11) not null )engine=innodbauto_increment=10000;③创建员工薪水情况表Salary ,存储引擎设为innodb Create table Salary (SalaryID int(8) primary key auto_increment, InCome float not null default 0,OutCome float not null default 0,Time date not null default )engine=innodb auto_increment=10000;④创建一个结构与Employees 表结构相同的空表Employees1;Create table Employees1 select * from Employees;⑶检查前面创建的表,如果有错误或遗漏的列及主键、外键定义,则用ALTER TABLE 命令修改。
山大数据库实验二
group by cid
create table test2_07 as
select sid,name
from pub.STUDENT
where not(name like '张%' or name like '李%'or name like '王%')
where STUDENT_COURSE.cid in(select cid
from pub.COURSE
where name='操作系统'))
intersect
(select sid
from pub.STUDENT_COURSE
where STUDENT_COURSE.cid in(select cid
create table test2_08 as
select substr(name,1,1) second_name, count(*) p_count
from pub.STUDENT
group by substr(name,1,1)
create table test2_09 as
select pub.STUDENT_COURSE.sid,name,score
from pub.STUDENT,pub.STUDENT_COURSE
where pub.STUDENT.SID=pub.STUDENT_COURSE.sid and cid=300003
create table test2_10 as
where pub.STUDENT.SID =s
create table test2_02 as select sid,name
SQL Server数据库实验报告(模板)
SQL Server数据库实验报告专业班级姓名1. 实验题目:实验二第3题使用图形界面SSMS创建数据库1.1 实验目的1.掌握使用SSMS图形化界面创建、修改、打开、收缩与删除数据库。
2.掌握使用T-SQL语句创建、修改、打开与删除数据库。
3.熟练查看数据库中的各种对象4.掌握分离与附加数据库1.2 实验要求创建数据库stuinfo,要求如下。
①包含三个数据文件(MF.mdf、F1.ndf、F2.ndf)和两个日志文件(L1.ldf、L2.ldf),②F1.ndf和F2.ndf放到自定义的文件组G1中,③数据文件存储到D:\SQLDATA,日志文件存储到E:\SQLLOG。
文件的其他属性自定义。
1.3 T-SQL程序1.4 运行结果2. 实验题目:实验二第4题使用Transact-SQL语句创建数据库2.1实验目的1.掌握使用SSMS图形化界面创建、修改、打开、收缩与删除数据库。
2.掌握使用T-SQL语句创建、修改、打开与删除数据库。
3.熟练查看数据库中的各种对象4.掌握分离与附加数据库2.2实验要求删除第3题中的数据库,再使用命令CREAT DATABASE创建第3题中的数据库。
2.3T-SQL程序CREATE DATABASE stuinfoON PRIMARY(NAME=MF,FILENAME='D:\SQLDATA\MF.MDF'),FILEGROUP G1(NAME=F1,FILENAME='D:\SQLDATA\F1.NDF'),(NAME=F2,FILENAME='D:\SQLDATA\F2.NDF')LOG ON(NAME=L1,FILENAME='D:\SQLLOG\L1.LDF'),(NAME=L2,FILENAME='D:\SQLLOG\MF.LDF')2.4运行结果3. 实验题目:实验二第5题修改数据库3.1实验目的1)掌握使用SSMS图形化界面创建、修改、打开、收缩与删除数据库。
SQL实验二:数据库查询实验报告
SQL实验二:数据库查询实验报告实验二数据库的查询实验一、实验目的和要求(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)求选修了学生“*****”所选修的全部课程的学生学号和姓名。
(12)查询每一门课的间接先修课。
(13)列出所有学生所有可能的选课情况。
(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。
(15)输出与“张三”同性别并位于同一个系的所有同学的姓名。
(请至少写出两种查询语句)(16)查询至少被两名男生选修的课程名。
(17)对被两名以上学生所选修的课程统计每门课的选课人数。
要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。
(18)列出选修课程超过3门的学生姓名及选修门数。
(19)检索至少选修课程号为01和03的学生姓名。
(20)检索至少选修课程“数学”和“操作系统”的学生学号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL文本:
SELECTFname名,Lname姓,Ssn社会保险号,
WHEREW.Hours>10ANDP.Pname='PRODUCTX'ANDDno=5;
Q15.对于每个项目,列出项目名称以及所有员工在此项目上工作的总时间。
SQL文本:
SELECTP.Pname,SUM(W.Hours)总时间
FROMWORKS_ONWJOIN
PROJECTPON(P.Pnumber=W.Pno)GROUPBYP.Pname;
Q8.从Employee表中查询出LNAME中含有字母o的员工资料。
SQL文本:
SELECT*
FROMEMPLOYEE
WHERELnameLIKE'%O%';
Q9.检索居住在Houston的员工所有信息。
SQL文本:
SELECT*
FROMEMPLOYEE
WHEREAddressLIKE'%Houston%';
GROUPBYDname
HAVINGCOUNT(*)>=2);
Q27.查询有两个或以上家属的员工姓名。
SQL文本:
SELECTFNAME,LNAME
FROMEMPLOYEE
WHERESsn=ANY
(SELECTESSN
FROMDEPENDENT
GROUPBYEssn
HAVINGCOUNT(*)>=2);
Q16.对于每个部门,列出部门名称以及此部门员工的平均工资。
SQL文本:
SELECTD.Dname,AVG(E.Salary)AS平均工资
FROMEMPLOYEEEJOINDEPARTMENTD
OND.Dnumber=E.Dno
GROUPBYD.Dname;
Q17.对于每个员工(包括无上司员工),查询其姓名以及他/她的直接上司的姓名。
(3)使用计算列查询。
Q10.从Employee表中检索出员工的FNAME、LNAME、SSN、SALARY等字段(其中SALARY需换算成人民币,汇率假定为1美元=8人民币元),并分别加上“名”、“姓”、“社会保险号”、“人民币工资”的标题。
SQL文本:
SELECTFname名,Lname姓,Ssn社会保险号,
SQL文本:
SELECTE.Lname,E.Address,E.Bdate,P.Pnumber,P.Dnum
FROMPROJECTPJOIN
DEPARTMENTDON(P.Dnum=D.Dnumber)
JOINEMPLOYEEEON(D.Mgr_ssn=E.Ssn)
WHEREPlocation='Stafford';
西南石油大学实验报告
课程名称:数据库原理
插入你的照片
实验项目名称:实验项目2 SQL数据操纵语言
专业年级班级、姓名、学号:软件13级2班
电子邮件地址:
实验所用机器名:
实验时间地点:2015.12.03明理楼
实验指导教师:孙瑜
成绩
批改人
批改日期
注意:在粘贴截图时请保留窗口完整标题,但只需保留关键界面,多余的空白界面请删除。
Q13.查询有两个或以上家属的员工姓名(此题较难,若不能完成者可只查询出员工的SSN而不是姓名)。
SQL文本:
SELECTE.Fname,E.Lname
FROMEMPLOYEEE
JOINDEPENDENTD
ON(D.Essn=E.Ssn)
GROUPBYD.Essn,E.Fname,E.Lname
HAVINGCOUNT(*)>=2;
SELECTSsnFROMEMPLOYEE
WHEREFname='JOHN'ANDLname='SMITH')))
ANDSsn!=(SELECTSsnFROMEMPLOYEE
WHEREFname='JOHN'ANDLname='SMITH');
Q25.查询至少有一个家属的部门经理姓名。(必须用EXISTS谓词)
Salary*8人民币工资
FROMEMPLOYEE;
2
Q11.查询所有为Research部门工作的员工姓名及地址。
SELECTFname,Lname,Address
FROMEMPLOYEEE
JOINDEPARTMENTD
ONE.Dno=D.Dnumber
WHEREDname='Research';
Q12.对于所有位于Stafford的项目,查询项目的编号、项目负责部门编号以及该部门经理的姓、地址、生日。
SQL文本:
SELECTSsn,Sex,Bdate,Address
FROMEMPLOYEE
WHEREFname='JOHN'ANDLname='SMITH'
ANDMinit='B';
2)基于BETWEEN子句的查询。
Q6. 从Employee表中查询出1960年——1970年之间出生的员工资料。
SQL文本:
通过本次实验让我对SQl所有的查询语句都有所了解。弄明白了where和Having的执行顺序。以及Join连接必须有参照关系才能连接。在做查询没有参与任何部门5控制项目的员工姓名这道题时,自己就陷入错误,在何时取反很重要。查询至少参与了所有部门4控制项目的员工姓名。(选做)这道题时要利用至少参加所有的这个条件,并且在查找是否有员工参与所有项目时,最好使用count(*)来选择。要小心一些题目中的陷阱。
一、实验课时:
二、实验目的
(1)理解查询的概念和方法。
(2)掌握SELECT语句在单表查询中的应用。
(3)掌握SELECT语句在多表连接查询中的应用。
(4)掌握SELECT语句在嵌套查询中的应用。
(5)掌握SELECT语句在集合查询中的应用。
(6)主要掌握使用“查询分析器”进行查询。
三、实验环境
(1)PC机。
SELECTEssn
FROMWORKS_ON
WHEREPnoIN(
SELECTPnumber
FROMPROJECT
WHEREDnum=5));
Q21.查询工资超过部门5所有员工工资的员工姓名。
SQL文本:
SELECTFNAME,LNAME
FROMEMPLOYEE
WHERESalary>ALL
(SELECTSalary
SQL文本:
SELECTD.Dname,COUNT(*)总数
FROMEMPLOYEEE
JOINDEPARTMENTDONE.Dno=D.Dnumber
WHERESalary>=30000
GROUPBYD.Dname
HAVINGD.DnameIN(
SELECTD.Dname
FROMEMPLOYEEE
JOINDEPARTMENTDONE.Dno=D.Dnumber
SQL文本:
SELECTE.Lname员工姓,E.Fname员工名,
EM.Lname上司姓,EM.Fname上司名
FROM
EMPLOYEEELEFT
JOIN
EMPLOYEEEMON(E.Super_ssn=EM.Ssn);
Q18.查询Company数据库中所有员工SSN与DNAME(部门名称)的组合。
WHEREPnoIN
(SELECTDISTINCTPno
FROMWORKS_ONWHEREEssnIN(
SELECTSsnFROMEMPLOYEE
WHEREFname='JOHN'ANDLname='SMITH'))
GROUPBYEssn
HAVINGCOUNT(*)=(SELECTCOUNT(*)
FROMWORKS_ONWHEREEssnIN(
WHEREE.Salary>=30000
----先执行WHERER在执行GROUP BY
GROUPBYD.Dname
HAVINGCOUNT(*)>=2;
3.嵌套查询
Q20.查询没有参与任何部门5控制项目的员工姓名。
SQL文本:
SELECTFname,Lname
FROMEMPLOYEE
WHERESsnNOTIN(
FROMEMPLOYEE
JOINDEPARTMENTONMgr_ssn=Ssn
JOINPROJECTONDnum=Dnumber
WHERELname='SMITH';
五、收获,体会及问题
(请详细书写,写得越详细、越个性化、越真实越好,否则我不知道你做这个实验的心路历程,也就无法充分地判断你是否是独立完成的这个实验、你是否在做这个实验时进行了认真仔细地思考、通过这个实验你是否在实践能力上得到了提高)
SELECT*FROMEMPLOYEE
WHEREBdateBETWEEN'1960-01-01'
AND'1970-01-01';
3)基于IN子句的查询。
Q7.从Employee表中查询出部门号为4或者5的员工资料。
SQL文本:
SELECT*
FROMEMPLOYEE
WHEREDnoIN(4,5);
4)基于LIKE子句的查询。
Q14.查询在ProductX项目上每周工作时间超过10小时的部门5的员工姓名。(对于连接操作必须是主外键,但是对于where条件并没有什么特殊要求)