数据库上机实验报告
数据库上机实验报告

数据库上机实验报告数据库上机实验网络1002 3100610055一、实验目的1.通过上机操作,加深对数据库理论知识的理解。
2.通过使用具体的微机DBMS(SQL Server),了解一种实际的数据库管理系统,并掌握其操作技术。
3.通过实际题目的上机实验,提高动手能力,提高分析问题和解决问题的能力。
二﹑实验题目某供应商(S)供应(SPJ)某种零件(P)给某个工程项目(J),其中一个供应商可以供给多个项目零件,而每个项目可以使用多个供应商供应的零件,每种零件可由不同供应商供给,S﹑P﹑J﹑SPJ的数据见附表1。
三、实验报告实验报告按照各实验的实验报告内容来整理。
实验报告提交地址:ftp://202.195.168.13/(在“up”文件夹里的“《数据库系统原理A》上机实验”文件夹中找到班级文件夹)用户名:nianyi密码:123456实验报告命名规则:班级+学号+姓名,如“软件080101王鹏晓”。
四、考核上机实验采用书面分析、平时实验和最后抽查考核相结合的方法评定成绩。
实验一数据库的定义和建立一、实验目的要求学生熟练掌握和使用T-SQL﹑SQL Server对象资源管理器创建数据库﹑基本表和修改表结构,及向数据库输入数据的操作,学会创建和使用表的主码、外码和约束。
二、实验内容1﹑利用SQL Server对象资源管理器创建数据库和查看数据库属性;2﹑利用T-SQL创建基本表﹑确定表的主码、外码和相应的约束;3﹑利用SQL Server对象资源管理器创建表之间的关系图;4﹑利用T-SQL向数据库输入数据。
三、注意事项1﹑输入数据时要注意数据类型、主码和数据约束的限制。
2﹑注意数据库的主码﹑外码和数据约束的定义。
3、注意参照表和被参照表之间的关系,主码和外码间的关系。
四、实验报告内容1﹑创建基本表(包括表的主码、外码和相应的约束)的SQL语句;3﹑输入数据的SQL语句。
create table s(sno char(8) primary key,sname char(20) unique,statuss smallint,city char(20));create table p(pno char(8) primary key,pname char(20),color char(8),weightt smallint);create table j(jno char(8) primary key,jname char(20),city char(20));create table spj(sno char(8),pno char(8),jno char(8),qty smallint,primary key(sno,pno,jno),foreign key(sno) references s(sno),foreign key(pno) references p(pno), foreign key(jno) references j(jno));insertinto svalues('s1','精益','20','天津');insertinto svalues('s2','盛锡','10','北京');insertinto svalues('s3','东方红','30','北京'); insertinto svalues('s4','丰泰盛','20','天津'); insertinto svalues('s5','为民','30','上海');select*from s;insertinto pvalues('p1','螺母','红','12');insertinto pvalues('p2','螺栓','绿','17');into pvalues('p3','螺丝刀','蓝','14'); insert into pvalues('p4','螺丝刀','红','14'); insert into pvalues('p5','凸轮','蓝','40'); insert into pvalues('p6','齿轮','红','30'); select* from p;into jvalues('j1','三建','北京'); insert into jvalues('j2','一汽','长春'); insert into jvalues('j3','弹簧厂','天津'); insert into jvalues('j4','造船厂','天津'); insert into jvalues('j5','机车厂','唐山'); insert into jvalues('j6','无线电厂','常州');into jvalues('j7','半导体厂','南京'); select* from j;insertinto spjvalues('s1','p1','j1','200'); insertvalues('s1','p1','j3','100'); insert into spjvalues('s1','p1','j4','700'); insert into spjvalues('s1','p2','j2','100'); insert into spjvalues('s2','p3','j1','400'); insert into spjvalues('s2','p3','j2','200'); insert into spjvalues('s2','p3','j4','500'); insert into spjvalues('s2','p3','j5','400'); insert into spjvalues('s2','p5','j1','400'); insert into spjvalues('s2','p5','j2','100'); insert into spjvalues('s3','p1','j1','200'); insert into spjvalues('s3','p3','j1','200'); insert into spjvalues('s4','p5','j1','100'); insert into spjvalues('s4','p6','j3','300'); insert into spjvalues('s4','p6','j4','200'); insert into spjvalues('s5','p2','j4','100'); insertvalues('s5','p3','j1','200'); insert into spjvalues('s5','p6','j2','200'); insert into spjvalues('s5','p6','j4','500'); select* from spj;2﹑表之间的关系图;4、总结实验过程中遇到的问题及解决。
数据库第一次上机报告文档

数据库第一次上机报告姓名:学号:班级:时刻:一、实验题目:1、用DDL语句创建习题中的数据库及大体表、约束、视图等数据库对象;2、用DML语句插入、删除、修改教材中的实例数据;3、选择完成作业中的查询(很多于10个);4、选做教材例题中的建库及查询。
二、实验目标:熟练把握SQL的查询建表语句,对数据库有一个整体的了解,同时查验作业当中显现的问题,并给予解决。
三、实验进程:一、对BANK数据库的实验建表:USE masterGOCREATE DATABASE BANKON PRIMARY( NAME='bank',FILENAME='D:\database\', SIZE=4,MAXSIZE=10,FILEGROWTH=1),FILEGROUP BANK_FG1( NAME = 'bank1',FILENAME ='D:\database\', SIZE = 1MB,MAXSIZE=10,FILEGROWTH=1),( NAME = 'BANK_FG1_Dat2', FILENAME = 'D:\database\', SIZE = 1MB,MAXSIZE=10,FILEGROWTH=1)LOG ON( NAME='bankDB_log',FILENAME = 'D:\database\',SIZE=1,MAXSIZE=10,FILEGROWTH=1)GOALTER DATABASE BANKMODIFY FILEGROUP BANK_FG1 DEFAULT二、对account建表USE [Economics]GO/****** 对象: Table [dbo].[account] 脚今日期: 03/31/2020 15:51:17 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[account]([account_number] [varchar](30) NOT NULL,[branch_name] [varchar](30) NULL,[balance] [int] NULL,CONSTRAINT [PK_account] PRIMARY KEY CLUSTERED([account_number] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[account] WITH CHECK ADD CONSTRAINT [FK_account_branch] FOREIGN KEY([branch_name])REFERENCES [dbo].[branch] ([branch_name]) GOALTER TABLE [dbo].[account] CHECK CONSTRAINT [FK_account_branch]/********************************************* *填凑数据account********************************************** */INSERT INTO account VALUES('A-101','Downtown',500);INSERT INTO account VALUES('A-102','Perryridge',400);INSERT INTO account VALUES('A-201','Brighton',900);INSERT INTO account VALUES('A-215','Mianus',700);INSERT INTO account VALUES('A-217','Brighton',750);INSERT INTO account VALUES('A-222','Redwood',700);INSERT INTO account VALUES('A-305','Round Hill',350);三、对borrower建表USE [Economics]GO/****** 对象: Table [dbo].[borrower] 脚今日期: 03/31/2020 16:10:44 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[borrower]([customer_name] [varchar](30) NULL,[loan_number] [varchar](30) NULL) ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[borrower] WITH CHECK ADD CONSTRAINT[FK_borrower_customer] FOREIGNKEY([customer_name])REFERENCES [dbo].[customer] ([customer_name])GOALTER TABLE [dbo].[borrower] CHECK CONSTRAINT [FK_borrower_customer] GOALTER TABLE [dbo].[borrower] WITH CHECK ADD CONSTRAINT [FK_borrower_loan] FOREIGN KEY([loan_number])REFERENCES [dbo].[loan] ([loan_number])GOALTER TABLE [dbo].[borrower] CHECK CONSTRAINT [FK_borrower_loan]/****************************************填凑数据borrower*****************************************/INSERT INTO borrower VALUES('Adams','L-16');INSERT INTO borrower VALUES('Curry','L-93');INSERT INTO borrower VALUES('Hayes','L-15');INSERT INTO borrower VALUES('Jackson','L-14');INSERT INTO borrower VALUES('Jones','L-17');INSERT INTO borrower VALUES('Smith','L-11');INSERT INTO borrower VALUES('Smith','L-23');INSERT INTO borrowerVALUES('Williams','L-17');四、对branch建表USE [Economics]GO/****** 对象: Table [dbo].[branch] 脚今日期: 03/31/2020 15:44:24 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[branch]([branch_name] [varchar](30) NOT NULL,[branch_city] [varchar](30) NULL,[assets] [int] NULL,CONSTRAINT [PK_branch] PRIMARY KEY CLUSTERED([branch_name] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFF/*********************************************填凑数据branch********************************************** /INSERT INTO branchVALUES('Brighton','Brooklyn',7100000);INSERT INTO branchVALUES('Downtown','Brooklyn',9000000);INSERT INTO branchVALUES('Mianus','Horseneck',400000);INSERT INTO branchVALUES('North Town','Rye',3700000);INSERT INTO branchVALUES('Perryridge','Horseneck',1700000);INSERT INTO branchVALUES('Pownal','Bennington',300000);INSERT INTO branchVALUES('Redwood','Palo Alto',2100000);INSERT INTO branchVALUES('RoundHill','Horseneck',8000000);五、对customer建表USE [Economics]GO/****** 对象: Table [dbo].[customer] 脚今日期: 03/31/2020 16:16:46 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[customer]([customer_name] [varchar](30) NOT NULL,[customer_street] [varchar](30) NULL,[customer_city] [varchar](30) NULL,CONSTRAINT [PK_customer] PRIMARY KEY CLUSTERED([customer_name] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFF/****************************************填凑数据customer*****************************************/INSERT INTO customerVALUES('Adams','Spring','Pittsfield');VALUES('Brooks','Senator','Brooklyn');INSERT INTO customerVALUES('Curry','North','Rye');INSERT INTO customerVALUES('Glenn','Sand Hill','Woodside');INSERT INTO customerVALUES('Green','Walnut','Stamford');INSERT INTO customerVALUES('Hayes','Main','Harrison');INSERT INTO customerVALUES('Johnson','Alma','Plo Alto');INSERT INTO customerVALUES('Jones','Main','Harrison');INSERT INTO customerVALUES('Lindsay','Park','Pittsfield');INSERT INTO customerVALUES('Smith','North','Rye');VALUES('Turner','Putnam','Stamford');INSERT INTO customerVALUES('Williams','Nassau','Princeton');六、对depositor建表USE [Economics]GO/****** 对象: Table [dbo].[depositor] 脚今日期: 03/31/2020 16:44:26 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[depositor]([customer_name] [varchar](30) NOT NULL,[account_number] [varchar](30) NOT NULL) ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[depositor] WITH CHECK ADD CONSTRAINT[FK_depositor_account1] FOREIGNKEY([account_number])REFERENCES [dbo].[account] ([account_number])GOALTER TABLE [dbo].[depositor] CHECK CONSTRAINT [FK_depositor_account1] GOALTER TABLE [dbo].[depositor] WITH CHECK ADD CONSTRAINT[FK_depositor_customer] FOREIGNKEY([customer_name])REFERENCES [dbo].[customer] ([customer_name])GOALTER TABLE [dbo].[depositor] CHECK CONSTRAINT [FK_depositor_customer]loan] 脚今日期: 03/31/2020 15:37:27 ******/ SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[loan]([loan_number] [varchar](30) NOT NULL,[branch_name] [varchar](30) NULL,[amount] [int] NULL,CONSTRAINT [PK_loan] PRIMARY KEY CLUSTERED([loan_number] ASC)WITH (PAD_INDEX = OFF,STATISTICS_NORECOMPUTE = OFF,IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[loan] WITH CHECK ADD CONSTRAINT [FK_loan_branch] FOREIGN KEY([branch_name])REFERENCES [dbo].[branch] ([branch_name]) GOALTER TABLE [dbo].[loan] CHECK CONSTRAINT [FK_loan_branch]/**************************************填凑数据loan**************************************/INSERT INTO loan VALUES('L-11','Round Hill',900);INSERT INTO loan VALUES('L-14','Downtown',1500);INSERT INTO loan VALUES('L-15','Perryridge',1500);INSERT INTO loan VALUES('L-16','Perryridge',1300);INSERT INTO loan VALUES('L-17','Downtown',1000);INSERT INTO loan VALUES('L-23','Redwood',2000);INSERT INTO loan VALUES('L-93','Mianus',500);七、表图建完表后的关系图:Account:Borrower:Branch:Customer:Depositor:Loan:八、查询课件上的代码和作业代码/*find all loan number for loans made at the Perryridge branch with loan amounts greaterthan $1200*/SELECT loan_number,amountFROM loanWHERE branch_name = 'Perryridge' AND amount >'1200';/*find the name ,loan number and loan amount of all customer;rename the columnname loan_number as loan_id*/SELECT customer_name, AS loan_id,amountFROM borrower,loanWHERE = ;/*find the names of all branches that have greater assets than some branch located in Brooklyn*/SELECT DISTINCT , ,,FROM branch AS B1,branch AS B2WHERE > AND = 'Brooklyn';/*find the names of all customers whose street includes the substring "Main"*/SELECT customer_name,customer_streetFROM customerWHERE customer_street LIKE'%Main%';/*list in alphabetic order the names of all customers having a loan in Perryridge branch*/ SELECT DISTINCT customer_name,, , branch_nameFROM borrower,loanWHERE = AND branch_name='Perryridge'ORDER BY customer_name;/*find all customers who have a loan,an account,or both*/(SELECT customer_name FROM depositor) UNION(SELECT customer_name FROM borrower);/*find all customers who have both a loan and an account*/(SELECT customer_name FROM depositor) INTERSECT(SELECT customer_name FROM borrower);/*find all customers who have an account but no loan*/(SELECT customer_name FROM depositor) EXCEPT(SELECT customer_name FROM borrower);/*Aggregate Functions*/SELECT avg(balance)FROM accountWHERE branch_name = 'Perryridge';SELECT count(*)FROM customer;SELECT count(DISTINCT customer_name) FROM depositor;/*the group by*/SELECT branch_name, count(DISTINCT customer_name)FROM depositor,accountWHERE =GROUP BY branch_name;/*having clause*/SELECT branch_name,avg(balance) FROM accountGROUP BY branch_nameHAVING avg(balance) > 500;/*the in clause*/SELECT DISTINCT customer_name FROM borrowerWHERE customer_name IN(SELECT customer_name FROM depositor);SELECT DISTINCT customer_name FROM borrowerWHERE customer_name NOT IN( SELECT customer_name FROM depositor);/*有错误SELECT DISTINCT customer_nameFROM borrower,loanWHERE = AND branch_name = 'Perryridge' AND(branch_name,customer_name)IN(SELECTbranch_name,customer_nameFROM depositor,accountWHERE = ;*/SELECT branch_nameFROM branchWHERE assets > some(SELECT assetsFROM branchWHERE branch_city = 'Brooklyn');SELECT branch_nameFROM branchWHERE assets > all(SELECT assetsFROM branchWHERE branch_city = 'Brooklyn');SELECT branch_nameFROM accountGROUP BY branch_nameHAVING avg(balance) >= ALL(SELECT avg(balance)FROM accountGROUP BY branch_name);/*test for empty relation*/SELECT DISTINCT customer_nameFROM depositorWHERE EXISTS(SELECT *FROM accountWHERE =AND balance >700);/*Queries*/SELECT DISTINCT balanceFROM accountEXCEPTSELECTFROM account AS A1,account AS A2 WHERE < ;/*test for absence of Duplicate Tuples*/ /*SELECT DISTINCTFROM depositor AS D1WHERE UNIQUE(SELECTFROM account AS A,depositor AS D2 WHERE =AND = AND = 'Perryridge');*/十、有疑问的题目代码/*第一个有错误的查询语句*/SELECT DISTINCT customer_nameFROM borrower,loanWHERE = AND branch_name = 'Perryridge'AND(branch_name,customer_name)IN(SELECT branch_name,customer_name FROM depositor,accountWHERE = ;/*第二个有错误的查询语句*/SELECT DISTINCTFROM depositor AS D1WHERE UNIQUE(SELECTFROM account AS A,depositor AS D2WHERE =AND = AND = 'Perryridge');总结:可能是软件不能识别UNIQUE和IN这两个关键字。
数据库上机实验报告

数据库上机实验报告摘要:本次数据库上机实验主要介绍了SQL语言在数据库中的应用,通过实际操作掌握了SQL语言的基本语法和常用命令,同时实践了数据库的建立、数据表的创建、数据插入、修改、删除、以及查询等操作。
本文将详细介绍实验中所使用的数据结构和算法,以及实验数据和结果的分析与总结。
一、实验目的本次实验的目的是对数据库相关的运用做一次实践操作,包括了数据库的建立、数据表的创建、数据插入、修改、删除、以及查询等操作。
力求将理论知识与实践经验相结合,为今后的数据库实践奠定基础。
二、实验原理本次实验中主要使用的是SQL语言对数据库进行管理。
SQL是一种结构化查询语言,可以对数据库进行查询、操作、管理等。
通过SQL语言对数据库中的数据进行增、删、改、查等操作,可以实现对数据的有效管理。
三、实验步骤1. 建立数据库首先在本地电脑建立数据库,可以通过使用全局管理工具进行实现。
2. 创建数据表在数据库中创建数据表,可以用CREATE TABLE命令来实现。
首先需要指定表的名称,其次需要指定表的字段名及其数据类型。
3. 插入数据表创建好之后,可以向表中插入数据。
可以使用INSERT命令将数据插入到表中,INSERT后面接表名和插入的数据。
4. 数据查询对于已经插入到数据库中的数据,可以进行查询操作。
可以通过SELECT语句对数据库进行查询。
SELECT后面需要指定要查询的字段名或者使用星号表示要查询全部字段。
5. 数据修改在数据库中,数据的修改一般是使用UPDATE命令来实现。
通过UPDATE语句可以修改已经存在的数据信息。
6. 数据删除表中的某个项不再需要时,可以通过DELETE语句来删除数据库中的数据项。
DELETE命令后面跟上要删除的数据。
四、实验结果通过SQL的基本命令,我们在本地电脑中成功的建立起了一个数据库,并把相关的数据插入到该数据库中。
在查询过程中,SQL可以只按照需要查询的数据来进行操作,使得数据的处理过程更加高效。
数据库系统原理上机实验报告(样例)

《数据库系统原理》上机实验一.实验目的围绕数据库设计和上机编程实践这两方面工作进行,通过对某种数据库产品及开发工具(Access,SQL Server,Oracle,VFP,PB,VB,VC,Delphi等)的熟悉和了解,对于给出的一个具体问题,首先通过对其综合分析,进行数据库的概念模型设计、关系数据库的逻辑结构设计,使其达到3NF或BCNF模式,然后进行在RDBMS下的设计和各个具体功能模块的编程,要求调试、测试成功,最后完成一个小型数据库应用系统。
二.实验内容对于给出的一个现实世界的实际应用项目,在正确分析问题的基础上,完成以下任务:1、用ER图方法设计概念数据库;2、用关系规范化方法设计数据库逻辑模型;3、用VFP(或任何一种关系型数据库产品)建立关系数据库;4、用PB(VFP, VB, VC,Delphi等)操纵数据库;5、用WEB数据库开发工具如JSP、ASP、操纵Web数据库(可选择)。
6、编制一个小型数据库应用系统。
三.实验过程实验一:概念数据库及逻辑数据库的设计,进一步熟悉VFP等编程语言,完成数据库的建立、数据的录入(至少5个记录,要求数据要典型)(一)问题的描述:一个图书借阅管理数据库要求提供下述服务:1)可随时查询书库中现有书籍的品种、数量与存放位置。
所有各类书籍均可由书号唯一标识。
2)可随时查询书籍借还情况。
包括借书人单位、姓名、借书证号、借书日期和还书日期。
我们约定:任何人可借多种书。
任何一种书可为多个人所借。
借书证号具有惟一性。
3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。
我们约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。
(二)概念模型:满足上述需求的E-R图:(三)关系数据库模型:定义如下基本表:1)借书人(借书证号,姓名,单位)借书证号:读者编号,长度为4的字符型,要求唯一、非空姓名:读者姓名,长度为10的字符型单位:读者地址,长度为20的字符型2)图书(书号,书名,数量,位置,出版社名)书号:图书编号,长度为4的字符型,要求唯一、非空书名:图书书名,长度为20的字符型出版社名:出版社,长度为20的字符型,默认为’河北工业大学’作者:图书作者,长度为10的字符型价格:书价,带两位小数三位整数的数值型,要求大于0,并给出出错提示3)借阅(借书证号,书号,借书日期,还书日期)借书证号:读者编号,类型与借书人中的一致书号:图书编号,类型与图书中的一致借书日期:借阅日期,日期型,默认填写当天日期(提示:获取当前日期的函数为DATE())4)出版社(出版社名,电报,电话,邮编,地址)……(四)数据库的建立与记录的录入:1)VFP提供的开发环境:(练习基本操作)2)数据库操作:创建数据库:文件→新建→数据库→新建文件→输入库名和保存位置→建库(建立以上各表)关闭、打开、修改数据库:……往库中加入、删除表,表的修改:……3)组织数据入库:直接往数据库中录入:……通过自己开发的数据录入子系统录入:…………实验二:完成系统总体功能模块设计,利用VFP等操纵数据库,包括编程序设计一个人机交互界面,使之具有插入、修改、删除、查询等基本模块,有能力的同学可以进一步完成数据库的维护,包括权限设置、用户管理、系统维护、报表输出、数据库备份、恢复等功能。
数据库综合实训上机报告

一、实训背景随着信息技术的飞速发展,数据库技术已经成为各行各业不可或缺的基础技术。
为了提高学生的数据库应用能力,我们学院开展了数据库综合实训课程。
本次实训旨在通过上机实践,让学生全面掌握数据库设计、创建、查询、维护等基本操作,提高学生的数据库应用技能。
二、实训目标1. 掌握数据库设计的基本原则和方法;2. 熟练运用SQL语言进行数据库操作;3. 学会使用数据库管理系统(如SQL Server、MySQL等)进行数据库的创建、查询、维护等操作;4. 培养学生团队协作能力和沟通能力。
三、实训内容1. 数据库设计(1)需求分析:了解项目背景,分析项目需求,确定数据库功能。
(2)概念设计:根据需求分析,设计实体关系图(ER图),确定实体、属性和关系。
(3)逻辑设计:将ER图转换为关系模型,设计数据库表结构,确定表之间的关系。
(4)物理设计:选择合适的数据库管理系统,创建数据库,设计存储过程、触发器等。
2. 数据库创建与操作(1)创建数据库:使用SQL语句创建数据库,设置用户权限。
(2)创建表:根据设计好的表结构,使用SQL语句创建表,设置字段属性、约束等。
(3)插入、删除、修改数据:使用SQL语句进行数据的增删改操作。
(4)查询数据:使用SELECT语句进行数据查询,包括简单查询、条件查询、多表查询等。
3. 视图与存储过程(1)创建视图:根据查询需求,使用SQL语句创建视图,简化查询操作。
(2)创建存储过程:封装常用操作,提高代码重用性。
4. 数据库维护与优化(1)备份与恢复:定期备份数据库,确保数据安全。
(2)索引优化:合理创建索引,提高查询效率。
(3)性能监控:监控数据库性能,及时发现问题并解决。
四、实训过程1. 组建实训小组:每组由3-5人组成,明确分工,提高团队协作能力。
2. 分阶段完成任务:按照实训内容,分阶段完成数据库设计、创建、操作、维护等任务。
3. 汇报与交流:每个小组定期汇报实训进度,分享经验,互相学习。
数据库上机实验报告

数据库实验(第三次)题目1 实验内容:1. 检索上海产的零件的工程名称;2. 检索供应工程J1零件P1的供应商号SNO;3. 检索供应工程J1零件为红色的供应商号SNO;4. 检索没有使用天津生产的红色零件的工程号JNO;5. 检索至少用了供应商S1所供应的全部零件的工程号JNO;6. 检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数量QTY降序排列。
1select jnamefrom jwhere jno in(select jnofrom spjwhere sno in(select snofrom swhere city ='上海'));2select snofrom spjwhere jno ='j1'and pno ='p1'3selectdistinct snofrom spjwhere pno in(select pnofrom pwhere color='红'and pno in (select pnofrom spjwhere jno ='j1'));4selectdistinct jnofrom spjwhere pno notin(select pnofrom pwhere color ='红'and pno in (select pnofrom spjwhere sno in(select snofrom swhere city ='天津')))5select jnofrom spjwhere sno ='s1'6select jno,qtyfrom spjwhere pno ='p1'orderby qty desc四﹑思考题1. 如何提高数据查询和连接速度。
建立视图2. 试比较连接查询和嵌套查询有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比嵌套查询高出很多当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造,具有结构化程序设计的优点。
数据库上机实验报告

数据库上机实验报告数据库上机实验报告试验内容1、数据表的建立基本表《简单的》带有主键带有外码约束的(外码来自其他表或者本表)2、数据表的修改添加删除列修改列属性类型添加删除约束(约束名)元组的添加,修改,删除删除数据表试验过程1、create table student(sno char(9) primary key , /*sn o是主码列级完整性约束条件*/sname char(20) unique, /*sname 取唯一值*/ssex char(2),sage smallint, /*类型为smallint*/sdept char(20)/*所在系*/);create table course(cno char(4) primary key, /*列级完整性约束条件,cno是主码*/cname char(40),cpno char(4),/*cpno的含义是先行课*/ccredit smallint,foreign key (cpno) references course(cno)/*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno*/);create table sc(sno char(9),cno char(4),grade smallint,primary key (sno,cno),/*主码有两个属性构成,必须作为表级完整性进行定义*/foreign key (sno) references student(sno),/*表级完整性约束条件,sno是外码,被参照表是student*/foreign key (cno) references course(cno),/*表级完整性约束条件,cno是外码,被参照表示course*/);例1、create table s(cno varchar(3), /*变长的字符串,输入2个字符就是两个字符不会补空格*/sname varchar(20),status int,city varchar(20),constraint pk_sno primary key(sno), /*约束条件的名字为pk_sno*/);create table p(pno varchar(3),pname varchar(20),color varchar(3),weight int,constraint pk_pno primary key (pno), /*约束条件的名字是pk_pno*/);create table j(jno varchar(3),jname varchar(20),city varchar(20),constraint pk_jno primary key(jno) /*约束条件的名字为pk_jno*/);例2、create table spj(sno varchar(3), /*第一个表中的主码*/pno varchar(3),jno varchar(3),qty int, /*数量*/constraint pk_spj primary key(sno,pno,jno), /*主码由3个属性组成*/foreign key(sno) references s(sno),/*表级完整性约束条件,sno是外码,被参照表是s*/foreign key(pno) references p(pno),/*表级完整性约束条件,pno是外码,被参照表是p*/foreign key(jno) references j(jno),/*表级完整性约束条件,jno是外码,被参照表是j*/);2、数据表的更改在s表中添加一个concat 列alter table s add concat varchar(20)在s表中删除concat 列alter table s drop column concat更改s表concat列的属性把长度由20改为30alter table s alter column concat varchar(30)联系方式名字为concat 修改属性为唯一的属性名为con_concatalter table s add constraint con_concat uniqu e(concat)删除约束关系con_concatalter table s drop constraint con_concat/*插入一个元组*/insert into s valus(‘s1’,’精益’,20,’天津’) /*20不能写成’20’*/试验中的问题的排除与总结:1、在创建spj时有三个实体所以从3个实体中取主码,还有一个数量属性也要写上主码由那3个主码确定2、更改一个数据库中数据表时一定要先使该数据库处于正在使用状态3、constraint是可选关键字,表示primary key、not null、unique、foreign key 或check 约束定义的开始。
数据库上机实验报告

数据库上机报告(一)上机实验项目名称:库以及表的基本操作学号:项目学时:姓名:班级:目录一、实验目的二、实验内容三、设计步骤以及实验结果四、实验总结一、实验目的(1)熟悉SQL Sever数据库组成(2)了解如何创建、导入以及删除数据库(3)熟悉表的创建与管理二、实验内容:(1)数据库由包含数据的基本表和其他对象(视图、索引、存储过程和触发器)组成。
系统数据库包括master数据库(记录所有其他的数据库以及相关信息)tempdb数据库(保存所有的临时表和临时存储过程)msdb数据库。
(2)建立所需要的数据库(3)建立学生表课程表以及选课表三、设计步骤以及实验结果(3.2.1)新建数据库操作:打开SQL Sever软件点开资源管理器下数据库标志左侧的加号,在下拉菜单中右键点击,(见右上图)之后点击新建数据库之后在弹出的对话框中数据库名称一栏输入你所要的数据库名称;单击确定,建立数据库完成。
(3.2.2)导入数据库一种方法是将数据库的两个源文件放在数据库存放源文件的文件夹里,之后在数据库上右击点击附加,在弹出的窗口选择添加,会弹出另一个窗口选择你要附加的数据库的源文件将其导入进来。
第二种方法是新建一个数据库,名字最好与你即将要导入进来的数据库名称一致,在所建立好的数据库上单击右键选择任务--还原--数据库,选择设备选项,接着将要导入的源文件都添加进来点击确定(3.2.3)删除数据库首先需要在你所要删除的数据库上单击右键选择任务--分离,之后要在存放数据库源文件的根目录下将有关其数据库的内容删除掉(根目录具体位置见上图)。
(3.3)创建学生表,课程表以及选课表并且对其进行适当的约束(3.3.1)创建学生表展开已经创建好的数据库student,在【表】上单击右键,选择【新建表】在前5列设计写入列名为Sno,Sname,Ssex,Sage,Sdept数据类型分别为nchar(10) ,varchar(50) ,nchar(2),int,nchar(10),其中后四项可以为null值,且将学生号Sno设为主键。
数据库上机实验报告

数据库上机实验报告引言:数据库是一种用于存储和管理数据的工具,它在现代社会中的重要性无可忽视。
本次实验旨在通过实际上机操作,加深对数据库的理解,并熟悉其相关操作和功能。
一、实验背景在信息时代的大背景下,各种类型的数据呈现指数级增长。
为了有效地存储和管理这些数据,数据库被广泛采用。
数据库管理系统(DBMS)是一套软件工具,用于定义、创建、管理和检索数据库。
本次实验将使用一款流行的开源DBMS工具MySQL。
二、实验目的1. 了解数据库的基本概念和原理;2. 掌握数据库的基本操作;3. 理解并应用SQL语言;4. 通过实际操作,熟悉数据库的增删改查功能。
三、实验过程1. 数据库的创建与连接首先,在MySQL中创建一个新的数据库,并通过合适的用户名和密码连接到该数据库。
数据库连接作为与数据库通信的接口,是进行各种操作的基础。
2. 数据表的创建与设置创建数据表是数据库设计的核心部分。
在实验过程中,我们选择创建一个学生信息表格。
通过指定各个字段的数据类型、长度以及约束,定义了学生信息表的结构。
3. 数据的插入与查询在学生信息表中插入若干条测试数据,包括学生姓名、年龄、性别、学号等信息。
通过SQL语句,我们可以灵活地插入、查询和过滤数据。
例如,查询年龄大于20岁的学生或者查询特定学号的学生等。
4. 数据的更新与删除数据库的更新和删除操作是不可或缺的。
我们可以通过SQL语句,修改特定记录的字段值,或者删除某些记录,以实现数据的动态维护和管理。
四、实验结果与分析通过实验操作,我们成功创建了学生信息表格,并插入了若干测试数据。
在查询功能上,我们能够根据不同的条件,按照要求查询指定的学生信息。
此外,我们还尝试了数据的更新和删除操作,成功地修改了一部分学生的年龄和性别,并删除了一些无效的记录。
五、实验总结通过本次数据库上机实验,我对数据库的基本概念、原理和操作有了更深入的了解。
在实践中,我能熟练地使用创建数据库、创建数据表、插入数据、查询数据以及修改和删除数据等功能。
数据库上机报告

数据库上机报告一、实验目的本次实验旨在让学生熟悉基本的SQL语句,了解数据库的基本概念,掌握数据库设计的基本思路和方法。
二、实验环境1.软件环境:操作系统:Windows 10数据库:MySQL编辑器:Navicat2.硬件环境:CPU:Intel Core i5内存:8GB三、实验步骤1.创建数据库和数据表使用Navicat连接MySQL数据库,在Query Editor中输入以下SQL语句创建数据库和数据表:CREATE DATABASE experiment;USE experiment;CREATE TABLE student(id INT PRIMARY KEY,name VARCHAR(20),age INT,gender VARCHAR(2),);2.插入数据在Query Editor中输入以下SQL语句插入数据:INSERT INTO student(id,name,age,gender) VALUES(1,'Tom',22,'男'),(2,'Lucy',20,'女'),(3,'Mike',25,'男'),(4,'Susan',23,'女');3.查询数据在Query Editor中输入以下SQL语句查询数据:SELECT * FROM student;4.更新数据在Query Editor中输入以下SQL语句更新数据:UPDATE student SET age=26 WHERE name='Mike';5.删除数据在Query Editor中输入以下SQL语句删除数据:DELETE FROM student WHERE name='Susan';四、实验总结通过本次实验,我掌握了SQL语句的基本使用方法,了解了数据库的基本概念,学会了使用Navicat进行数据库操作。
数据库上机实验8实验报告

数据库上机实验8实验报告第一篇:数据库上机实验8实验报告上机实验八——完整性约束的实现一、实习目的:掌握SQL中实现数据完整性的方法,加深理解关系数据模型的三类完整性约束。
二、实习准备:1.复习“完整性约束SQL定义”2.完成习题四第10题中的各项操作的SQL语句。
3.了解SQL Server 中实体完整性、参照完整性和用户自定义完整性的实现手段三、实习内容:1.验证习题四第10题四个表结构的SQL语句。
表一:Sstudent CREATE TABLE Sstudent(Sno char(7)NOT NULL PRIMARY KEY, Sname VarChar(20)NOT NULL, Ssex Char(2)NOT NULL DEFAULT('男')check(Ssex IN('男','女')), Sage smallint check(Sage >14 AND Sage<65), Clno Char(5)NOT NULL REFERENCES Cclass(Clno)ON UPDATE CASCADE);表二:Ccourse CREATE TABLE Ccourse(Cno Char(1)NOT NULL PRIMARY KEY, Cname VarChar(20)NOT NULL, Credit Smallint CHECK(Credit IN(1,2,3,4,5,6)));表三:Cclass CREATE TABLE Cclass(Clno Char(5)NOT NULL PRIMARY KEY, Speciality VarChar(20)NOT NULL, Inyear Char(4)NOT NULL, Number Integer CHECK(Number>1 AND Number<100), Mointor Char(7)REFERENCES Student(Sno));表四:Ggrade CREATE TABLE Ggrade(Sno Char(7)NOT NULL REFERENCES Student(Sno)ON DELETE CASCADE ON UPDATE CASCADE, Cno Char(1)NOT NULL REFERENCES Course(Cno)ON DELETE CASCADE ON UPDATE CASCADE, GmarkNumeric(4,1)CHECK(Gmark>0 AND Gmark<100), PRIMARY KEY(Sno,Cno));2.SQL Server中提供了那些方法实现实体完整性、参照完整体和用户自定义完整性答:实体完整性:是通过主码的定义(PRIMARY KEY)来实现的;参照完整性:是利用外部码(REFERENCES)的说明,以限制相关表中某些属性的取值,当用户违反规则时,提供三种:RESTRICT (限制策略),CASCADE(级联策略),SET NULL(置空策略);用户自定义完整性:check约束,对元组的CHECK约束第二篇:数据库上机实验报告兰州理工大学学生上机报告学院计算机与通信学院课程名称数据库原理学生姓名侯予南学号05550204专业班级基地班05级1班上机日期2008年4月17日指导教师李明上机实验报告(一)实验内容:1、熟悉SQL Server 2000应用环境;熟悉查询分析器的使用方法;2、运行课堂示例:建立表T eacher , Course ;进行数据插入、查询、更新、建立视图、创建触发器等操作;3、完成作业(P108 第5题,P145第5题);4、完成实验报告。
数据库上机实习报告

一、实习背景随着计算机技术的不断发展,数据库技术已经成为现代信息技术中不可或缺的一部分。
为了使我对数据库技术有更深入的了解,提高我的实际操作能力,我参加了本次数据库上机实习。
本次实习主要基于SQL Server数据库管理系统,通过实际操作,使我掌握了数据库的基本概念、设计方法以及SQL语言的使用。
二、实习目的1. 熟悉数据库管理系统的基本操作,包括数据库的创建、修改、删除等。
2. 掌握数据库设计的基本方法,包括实体-联系模型、关系模型等。
3. 学会使用SQL语言进行数据库的查询、插入、删除、更新等操作。
4. 提高数据库的实际应用能力,为今后的工作打下基础。
三、实习内容1. 数据库管理系统简介数据库管理系统(Database Management System,简称DBMS)是一种软件系统,用于管理数据库中的数据。
常见的数据库管理系统有SQL Server、MySQL、Oracle 等。
本实习主要使用SQL Server数据库管理系统。
2. 数据库设计数据库设计是数据库应用开发过程中的重要环节,主要包括以下步骤:(1)需求分析:了解用户对数据库的需求,包括数据类型、数据量、数据之间的关系等。
(2)概念设计:根据需求分析结果,设计实体-联系模型,描述实体及其之间的关系。
(3)逻辑设计:将概念设计转换为关系模型,确定表结构、字段类型、约束等。
(4)物理设计:根据逻辑设计结果,确定数据库的存储结构,如索引、分区等。
3. 数据库操作(1)创建数据库:使用CREATE DATABASE语句创建数据库。
(2)修改数据库:使用ALTER DATABASE语句修改数据库。
(3)删除数据库:使用DROP DATABASE语句删除数据库。
(4)创建表:使用CREATE TABLE语句创建表。
(5)修改表:使用ALTER TABLE语句修改表。
(6)删除表:使用DROP TABLE语句删除表。
(7)插入数据:使用INSERT INTO语句插入数据。
数据库上机实验报告范文

数据库上机实验报告范文《数据库技术与应用》姓名:某某某学号:某某某专业班级:某某某完成时间:某某某一、概述通过前八周对数据库的学习,我们学生对此已有一定了解,之后我们需要通过对书本知识的理解,加上自己的积极实践,做出属于自己的数据库,以加深对该学科的认识。
我这次建立的数据库是学生成绩查询数据库。
建立这个数据库主要的目的是对部分同学们个人信息以及高考成绩、考试成绩(笔试和机试)情况存储和查询系统。
其中包括姓名,民族,出生年月日,准考证号,高考成绩,笔试及机试成绩等个人信息。
通过创建该简单的数据库,来实践上课老师所讲解的内容。
该数据库包括的内容有:1.表:本数据库包含六个表对象分别是:考生基本情况,考生简况,考试成绩表,口令表和学生基本情况表,学校简况表。
其中分别以不完全相同的字段为主键。
2.查询:本数据库一共包含十个查询分别是:参数查询、SQL查询、分组汇总查询、汇总查询、学生成绩查询、学生成绩组合模糊查询、学生高考成绩表、学生基本情况表-交叉、表学生基本情况表-交叉表1总分大于180。
3.窗体:本数据库一共包含十个窗体。
其中有考生基本情况主子窗体、考试成绩、学生成绩查询、学校简介表、学生基本情况窗体等等查询窗体。
4报表:本数据库一共包含四个报表分别是:考生基本情况主子报5.宏:创建了几个简单的宏。
二、主要上机实验内容1.创建数据库通过点击进入数据库软件,点击“创建空白数据库”,取名为“学生成绩查询系统”,完成数据库的创建。
数据库主要实现的功能为学生信息、学生成绩的查询等。
2.建立创建数据库所需要建立的各种表通过不同的的方法建立以下部分表,如下所示:通过使用设计器创建表,创建以下几个相关表,相关表结构的设计及个字段属性如下图范例所示:创建出如下:(1)考生基本情况表(2)考试成绩表(3)学生基本情况表(4)学校简况表等表格考生基本情况表考试成绩表学生基本情况表学校简况表3.分别以不同的方式建立查询,可以实现对学生基本信息及成绩的检索查询。
数据库上机实验报告

实验一:建立数据库及基本表一、实验目的1、了解SQL Server数据库的逻辑结构和物理结构;2、了解SQL Server的基本数据类型;3、学会在企业管理器中创建数据库和表;4、使用SQL查询分析器用CREATE、DROP、ALTER语句创建和删除数据库,创建、删除、更新基本表。
二、实验内容1、创建数据库和查看数据库属性。
2、创建表。
3、查看和修改表结构。
4、熟悉企业管理器和查询分析器工具的使用方法三、实验步骤1、在企业管理器中创建数据库和数据表。
(1) 使用企业管理器建立图书管理数据库,数据库名为BM,初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
数据库的逻辑文件名和物理文件名均采用默认值。
详细步骤:(2) 在企业管理器中查看图书管理数据库的属性,并进行修改,使之符合要求。
(3) 通过企业管理器,在建好了图书管理数据库BM中建立图书(book)、读者(reader)和借阅(borrow)3个表,其结构为:图书(书号,类别,出版社,作者,书名,定价);读者(编号,姓名,单位,性别,电话);借阅(书号,读者编号,借阅日期)。
三个表各个字段的数据类型:(4) 利用企业管理器向表中输入数据。
2、在查询分析器中创建数据库和数据表(1) 创建数据库S-C 的sql语句:create database s_c(2) 在数据库S-C下,创建基本表学生表student(sno,sname,ssex,sage,sdept)的sql语句:create table student( sno c(8),sname c(10),ssex c(2),sage(4),sdept c(8) )创建基本表课程表course(cno,cname, ccredit)的sql语句:create table course( cno c(4),cname c(10),ccredit c(2) )创建基本表成绩表sc(sno,cno,grade)的sql语句:create table sc( sno c(8),cno c(4),grade n(4) )(3) 在窗口下分别键入DROP TABLE Student及DROP TABLE SC命令,运行后观察结果。
数据库上机实验报告

数据库上机实验报告
本次数据库上机实验主要涉及到数据库的设计、创建和查询,通过对实验内容的学习和实践,我对数据库的相关知识有了更深入的理解和掌握。
首先,我们学习了数据库的设计原理和方法。
在数据库设计的过程中,需要考虑到数据的完整性、一致性和安全性等因素,通过对实际案例的分析和设计,我了解到了如何根据需求确定实体、属性和关系,并进行逻辑设计和物理设计。
在实验中,我使用了ER图和关系模式图等工具,对数据库的结构和关系进行了清晰的描述和设计。
其次,实验中我们学习了数据库的创建和管理。
通过使用SQL语句,我成功创建了数据库和表,并进行了数据的插入、修改和删除操作。
在实验过程中,我深入了解了SQL语句的语法和用法,掌握了如何利用SQL语句对数据库进行有效的管理和操作。
最后,我们进行了数据库的查询操作。
通过学习和实践,我掌握了SQL语句中的SELECT语句的用法,能够实现对数据库中数据的查询和统计。
在实验中,我通过编写SQL语句,成功实现了对数据库中数据的查询和分析,对于复杂的查询需求也能够进行有效的处理和实现。
通过本次数据库上机实验,我不仅加深了对数据库设计、创建和查询的理解,还提高了对SQL语句的掌握和运用能力。
我相信这些知识和技能对我的未来学习和工作都将有很大的帮助。
总的来说,本次数据库上机实验内容丰富、操作性强,通过实际操作和实践,我对数据库的相关知识有了更深入的理解和掌握。
我相信这些知识和技能对我的未来学习和工作都将有很大的帮助。
希望通过不断的学习和实践,能够进一步提高自己的数据库技能,为将来的工作做好准备。
数据库上机实验报告范文

数据库上机实验报告范文试验内容1、数据表的建立基本表《简单的》带有主键带有外码约束的(外码来自其他表或者本表)2、数据表的修改添加删除列修改列属性类型添加删除约束(约束名)元组的添加,修改,删除删除数据表试验过程1、createtabletudent(nochar(9)primarykey,/某no是主码列级完整性约束条件某/ namechar(20)unique,/某name取唯一值某/e某char(2),agemallint,/某类型为mallint某/deptchar(20)/某所在系某/);createtablecoure(cnochar(4)primarykey,/某列级完整性约束条件,cno是主码某/cnamechar(40),cpnochar(4),/某cpno的含义是先行课某/ccreditmallint,foreignkey(cpno)referencecoure(cno)/某表级完整性约束条件,cpno是外码,被参照表是coure,被参照列是cno某/);createtablec(nochar(9),cnochar(4),grademallint,primarykey(no,cno),/某主码有两个属性构成,必须作为表级完整性进行定义某/ foreignkey(no)referencetudent(no),/某表级完整性约束条件,no是外码,被参照表是tudent某/ foreignkey(cno)referencecoure(cno),/某表级完整性约束条件,cno是外码,被参照表示coure某/);例1、createtable(cnovarchar(3),/某变长的字符串,输入2个字符就是两个字符不会补空格某/ namevarchar(20),tatuint,cityvarchar(20),);createtablep(pnovarchar(3),pnamevarchar(20),colorvarchar(3),weightint,contraintpk_pnoprimarykey(pno),/某约束条件的名字是pk_pno某/ );createtablej(jnovarchar(3),jnamevarchar(20),cityvarchar(20),);例2、createtablepj(novarchar(3),/某第一个表中的主码某/pnovarchar(3),jnovarchar(3),qtyint,/某数量某/contraintpk_pjprimarykey(no,pno,jno),/某主码由3个属性组成某/foreignkey(no)reference(no),/某表级完整性约束条件,no是外码,被参照表是某/foreignkey(pno)referencep(pno),/某表级完整性约束条件,pno是外码,被参照表是p某/foreignkey(jno)referencej(jno),/某表级完整性约束条件,jno是外码,被参照表是j某/);2、数据表的更改在表中添加一个concat列altertableaddconcatvarchar(20)在表中删除concat列altertabledropcolumnconcat更改表concat列的属性把长度由20改为30altertablealtercolumnconcatvarchar(30)altertableaddcontraintcon_concatunique(concat)删除约束关系con_concataltertabledropcontraintcon_concat/某插入一个元组某/inertintova lu(‘1’,’精益’,20,’天津’)/某20不能写成’20’某/试验中的问题的排除与总结:1、在创建pj时有三个实体所以从3个实体中取主码,还有一个数量属性也要写上主码由那3个主码确定2、更改一个数据库中数据表时一定要先使该数据库处于正在使用状态3、contraint是可选关键字,表示primarykey、notnull、unique、foreignkey或check约束定义的开始。
数据库上机实验报告

数据库上机实验报告院系:专业:班级:姓名:学号:指导老师:年月日一、实验目的熟练掌握SQL语句的插入、修改、删除、查询等相关语法。
能够使用Microsoft SQL Server和MySQL软件进行相关的数据库操作。
二、实验内容1数据库的创建和使用;2表的创建和使用;3数据的插入、删除和修改;4数据的查询;5.视图的创建和使用。
实验一、创建学生成绩管理数据库在学生成绩管理数据库中,包括基本的三个关系:student,course,sc 。
(1)student(sno,sname,ssex,sage,sdept),表示学号,姓名,性别,年龄,所在系。
主键学号,姓名唯一,系默认cs。
(2)Course (cno,cname,cpno,ccredit),表示课程号,课程名,先行课程号,学分。
主键课程号(3)SC (sno,cno,grade),表示学号,课程号,成绩。
外键,学号和课程号。
创建该数据库代码及其最后结果图如下:create table student(sno char(20) primary key,sname char(10) unique,ssex char(2),sage smallint,sdept char(12) default'cs')create table course(cno char(10) primary key,cname char(20),cpno char(10),ccredit char(6))create table sc(sno char(20),cno char(10),grade smallint,primary key(sno,cno),foreign key(sno) references student(sno), foreign key(cno) references course(cno))实验二、在实验一的结果上进行各种操作练习及其代码一修改表结构,对学生表增加,电话号码一列,删除年龄一列。
数据库上机实验五篇范文

数据库上机实验五篇范文第一篇:数据库上机实验创建数据表与数据输入Part I.使用SQL Server Management Studio创建数据表和输入数据 1.在SQL Server Management Studio中创建数据表 P69 1.(1)-(6)2.为数据表输入数据 P76 4.(1)-(4)3.数据浏览P771.(1)-(2)2.(1)-(3)Part II.使用SQL语句创建数据表和输入数据 1.使用SQL语句创建数据表 P72.例3-22.使用SQL语句输入数据 P82.例3.8习题:P.105(1)(2)insert 数据操作Insert、Update、DeleteP105 3.上机练习题(2)(4)Insert(100001, 1000, 2002-12-18 0:00:00)(100002, 2000, 2010-3-20 0:00:00)Update(100001, 1500, 2002-12-18 0:00:00)(100002, 2000, 2012-9-25 0:00:00)Delete Transact-SQL语句基础1 1.将teaching数据库中score 表的studentno列设置为引用表student的外键。
ALTER TABLE Score ADD CONSTRAINT FK_score_student FOREIGN KEY(studentno)REFERENCES student(studentno)2.将teaching数据库中class表的classname创建UNIQUE约束。
ALTER TABLE class ADD CONSTRAINT UQ_class UNIQUE(classname)执行如下插入语句,查看提示信息INSERT INTO class VALUES(‘090602’, ’计算机0902’, ’计算机学院’, ’马文斐’)3.为teaching数据库中student表的birthday列创建CHECK约束,规定学生的年龄在17-25岁之间。
数据库SQL上机实验报告

数据库上机实验报告一.实验目的1.掌握企业管理器的基本使用方法2.掌握查询分析器的使用方法3.对数据库及其对象有一个基本了解二.实验过程及结果1、启动服务管理器选择“开始->程序->Microsoft SQL SERVER”程序组中的“服务管理器”命令项,进入SQL SERVER服务管理器窗口2、企业管理器选择“开始->程序->Microsoft SQL SERVER”程序组中的“企业管理器”命令项,进入SQL SERVER企业管理器窗口。
3、注册服务器(1)展开控制台根目录,右键单击“SQL SERVER组”,在弹出的快捷菜单中选择“新建SQL SERVER注册”,打开注册服务器向导窗口。
(2)单击“下一步”按钮,打开选择服务器窗口。
选择或输入可用的服务器,然后单击“添加”按钮,将左边的服务器增加到右边的窗口中。
(3)单击“下一步”按钮,打开选择认证模式窗口。
我们选择“Windows身份验证”。
(4)单击“下一步”按钮,打开选择服务器组窗口。
在这里,采用默认设置。
(5)单击“下一步”按钮,打开连接注册服务器窗口。
单击“完成”按钮,完成服务器的注册。
4、查询分析器(1、选择“开始->程序->Microsoft SQL SERVER”程序组中的“查询分析器”命令项,进入SQL SERVER查询分析器窗口。
(2、打开企业管理器,选择菜单中“工具”选项,在弹出的快捷菜单中选择“SQL SERVER 查询分析器”。
5. 新建数据库表6.数据表的建立Create Table StudentSno char(11) primary key, Sname char(20) ,Ssex char(2),Sage smallint,Sdept char(20));Create Table CourseCno char(4) primary key,Cname char(40),Ccredit smallint,);Create table SCSno char(11),Cno char(4),Grade smallint,primary key(Sno,Cno),foreign key(Sno)references S_40809010113(Sno),foreign key(Cno)references C_40809010113(Cno));其中学生表S由学号Sno,姓名Sname,性别Sex,年龄Age,所在系Dept组成。
数据库上机实验报告

数据库上机实验报告实验名称:数据库上机实验报告实验目的:通过在数据库环境下进行上机实验,掌握数据库的基本操作和SQL语言的使用。
实验内容:1. 创建数据库首先创建一个数据库,可以使用MySQL、Oracle或其他数据库管理系统的命令行或可视化工具创建。
命名为“example”。
2. 创建表在“example”数据库中创建一个新表,表名为“students”。
定义表结构,包括学生的学号、姓名、性别、年龄、班级等字段。
3. 插入数据向“students”表中插入若干条学生数据,包括学号、姓名、性别、年龄、班级等信息。
4. 查询数据使用SQL语句查询“students”表中的数据,例如查询年龄小于20岁的学生、查询班级为一班的学生等。
5. 更新数据使用SQL语句更新“students”表中的数据,例如将年龄小于18岁的学生的班级改为2班。
6. 删除数据使用SQL语句删除“students”表中的数据,例如删除性别为女的学生、删除班级为三班的学生等。
7. 关闭数据库使用命令或可视化工具关闭数据库连接。
实验步骤:1. 打开MySQL命令行或可视化工具,创建名为“example”的数据库。
2. 通过CREATE TABLE语句在“example”数据库中创建名为“students”的表,并定义表结构。
3. 使用INSERT INTO语句向“students”表中插入学生数据。
4. 使用SELECT语句查询“students”表中的数据。
5. 使用UPDATE语句更新“students”表中的数据。
6. 使用DELETE语句删除“students”表中的数据。
7. 关闭MySQL连接。
实验结果:1. 创建“example”数据库成功。
2. 创建“students”表成功,包括学生的学号、姓名、性别、年龄、班级等字段。
3. 成功插入若干条学生数据。
4. 成功查询“students”表中的数据,符合查询条件的学生数据被正确显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库实验报告(所有实验)院系:信息科学与工程学院专业:网络工程电子商务班级:姓名:学号:指导老师:年月日一、实验目的熟练掌握SQL语句的插入、修改、删除、查询等相关语法。
能够使用Microsoft SQL Server和MySQL软件进行相关的数据库操作。
二、实验内容1数据库的创建和使用;2表的创建和使用;3数据的插入、删除和修改;4数据的查询;5.视图的创建和使用。
实验一、创建学生成绩管理数据库在学生成绩管理数据库中,包括基本的三个关系:student,course,sc 。
(1)student(sno,sname,ssex,sage,sdept),表示学号,姓名,性别,年龄,所在系。
主键学号,姓名唯一,系默认cs。
(2)Course (cno,cname,cpno,ccredit),表示课程号,课程名,先行课程号,学分。
主键课程号(3)SC (sno,cno,grade),表示学号,课程号,成绩。
外键,学号和课程号。
创建该数据库代码及其最后结果图如下:create table student(sno char(20) primary key,sname char(10) unique,ssex char(2),sage smallint,sdept char(12) default'cs')create table course(cno char(10) primary key,cname char(20),cpno char(10),ccredit char(6))create table sc(sno char(20),cno char(10),grade smallint,primary key(sno,cno),foreign key(sno) references student(sno), foreign key(cno) references course(cno))实验二、在实验一的结果上进行各种操作练习及其代码一修改表结构,对学生表增加,电话号码一列,删除年龄一列。
alter table studentadd pnumber char(22)alter table studentdrop column sage二简单查询例1.查询全体学生详细记录select *from student例2.查询信息系所有男生的学号、姓名、出生年份select sno,sname,sagefrom studentwhere ssex='男'例3.查询选修过课的学生的学号select snofrom sc例4. 查询年龄在25-30之间的学生姓名及性别。
select sname,ssexfrom studentwhere sage between 25 and 30例5. 查询姓“欧阳”的学生。
select snamefrom studentwhere sname like '欧阳%'例6. 查询信息系IS,数学系MA和计算机系CS的学生。
select snamefrom studentwhere sdept='is' or sdept='ma' or sdept='cs'例7 查询所有学生的成绩及姓名select grade,snamefrom student,scwhere sc.sno=student.sno例8 查询‘95001‘学生的所选的课程,成绩和专业select cname,grade,sdeptfrom student,sc,coursewhere student.sno=sc.sno and o=o and student.sno='95001'实验三、四关系模式如下:数据内容如下:创建数据库并使用数据库创建表EMPLOYEE并插入数据创建表DEPARTMENT并插入数据创建表PROJECT并插入数据创建表WORKS_ON并插入数据创建表DEPT_LOACTION并插入数据创建表DEPENDENT并插入数据查询操作实验五、附加MSSQL2000的示例数据库pubs数据库1.使用演示脚本创建表、插入数据,查找以‘x%’开头的数据。
--建表create table test(col varchar(10))--插入数据insert into test values('x_yz')insert into test values('[xyz]')insert into test values('x%yz')insert into test values('xyz')练习及其代码如下:--练习1--找出pubs数据库titles表中计算机类图书中价格最高的图书的价格。
USE pubsSELECT max(price) FROM titleswhere type='popular_comp'--练习2--查询titles表中有几类图书。
USE pubsSELECT count(distinct type) FROM titles--练习3--按照州进行分类,查找每个州有几名作者。
USE pubsSELECT state, count(*) FROM authorsgroup by stateorder by 1--练习4--要求按照出版商id进行分类,查找每个出版商的书到目前为止的销售额总和(ytd_sales)。
USE pubsSELECT pub_id, sum(ytd_sales) FROM titlesgroup by pub_idorder by 1--练习5--在pubs数据库的titles表中,找出平均价格大于18美元的书的种类。
USE pubsSELECT pub_id,avg(price) '平均价格' FROM titlesGROUP BY pub_idHAVING avg(price) > 18-练习6 --在pubs数据库的titles表中,找出最高价大于20美元的书的种类。
USE pubsSELECT type,max(price) '平均价格' FROM titlesGROUP BY typeHAVING max(price) > 20--练习7 -- 找出title_id和pub_name的对应关系。
Use pubsSelect titles.title_id, publishers.pub_nameFrom titles JOIN publishersON titles.pub_id=publishers.pub_id--练习8 --找出title_id, title和pub_name的对应关系。
Use pubsSelect titles.title_id, titles.title,publishers.pub_nameFrom titles JOIN publishersON titles.pub_id=publishers.pub_id--练习9 --查询每个作者的编号,姓名,所出的书的编号,并对结果排序。
Use pubsSelect authors.au_id,authors.au_fname + '.' + authors.au_lname 'name',titleauthor.title_idFrom authors JOIN titleauthorON authors.au_id=titleauthor.au_idorder by authors.au_id10. 从authors表中选择state,city列,从publisher表中选择state,city列,并把两个查询的结果合并为一个结果集,并对结果集按city列、state列进行排序。
use pubsselect state,city from publishersunionselect state,city from authorsorder by 1,211. 对上面的查询语句作修改,保留所有重复的记录。
Selectauthors.city,authors.state,publishers.city,publishers.state from publishers,authors12.显示所有来自CA州的作家的全部作品和作家代号。
(使用IN,和连接两种方法)use pubsselect title_id,au_idfrom titleauthorwhere au_id in( select au_id from authors where state = 'CA')order by title_iduse pubsselect t.title_id,t.au_idfrom titleauthor t join authors a on t.au_id = a.au_idwhere a.state = 'CA'order by title_id13.查找由位于以字母B 开头的城市中的任一出版商出版的书名:(使用exists 和in两种方法)USE pubsSELECT title FROM titlesWHERE EXISTS(SELECT *FROM publishersWHERE pub_id = titles.pub_id AND city LIKE 'B%')USE pubsSELECT title FROM titlesWHERE pub_id IN (SELECT pub_id FROM publishers WHERE city LIKE 'B%')实验六、修改数据练习一用sql命令插入数据(1)创建一个表STU,有三列:id int,name varchar(10),class_id char;要求id列为自动增长,class_id列具有默认值‘0801’。
create table stu(id int identity(1,1),name varchar(10),class_id char(10) default('0801'))(2)并为此表插入数据:‘zhj’,'0801'‘Wxm’,'0801'‘Mbb’,'0801'‘Wd’,'0802'insert into stu(name,class_id)values('zhj','0801')insert into stu(name,class_id)values('Wxm','0801')insert into stu(name,class_id)values('Mbb','0801')insert into stu(name,class_id)values('Wd','0802')二:使用insert …select语句,建立一个新表:CA_author,这个表只包含家在CA州的作者的au_id, name(包括fname和lname), phone, address。