数据库原理上机实验代码及截图
数据库原理及应用崔巍书后上机实验
数据库上机实验报告1一、实验目的:理解SQL Server数据库的存储结构,掌握SQL Server数据库的建立方法和维护方法。
二、实验内容:在SQL Server环境下建立数据库和维护数据库。
三、程序源代码:--1CREATE DATABASE test1ON(NAME=test1_dat,FILENAME='f:\DB\data\test1dat.mdf',SIZE= 10,MAXSIZE= 50,FILEGROWTH= 5 )LOG ON(NAME=order_log,FILENAME='f:\DB\data\test1log.ldf',SIZE= 5MB,MAXSIZE= 25MB,FILEGROWTH= 5MB)--2create database test2onprimary(name=test2_dat1,filename='f:\DB\data\test2dat1.mdf'),(name=test2_dat2,filename='f:\DB\data\test2dat2.ndf'),(name=test2_dat3,filename='f:\DB\data\test2dat3.ndf')log on(name=test2_log1,filename='f:\DB\data\test2log1.ldf'),(name=test2_log2,filename='f:\DB\data\test2log2.ldf')--3create database test3onprimary(name=test3_dat1,filename='f:\DB\data\test3dat1.mdf'),(name=test3_dat2,filename='f:\DB\data\test3dat2.mdf'),filegroupg2(name=test3_dat3,filename='d:\DB\data\test3dat3.ndf'),(name=test3_dat4,filename='d:\DB\data\test3dat4.ndf'),filegroupg3(name=test3_dat5,filename='e:\DB\data\test3dat5.ndf'),(name=test3_dat6,filename='e:\DB\data\test3dat6.ndf')log on(name=test3_log,filename='f:\DB\data\test3log.ldf')--4alter database test1add file(name=test1new_dat,filename='f:\DB\data\test1newdat.ndf',size=5MB)--5alter database test1modify file(name=test1_dat,size=15MB)--6dropdatabasetest3四、实验数据、结果分析:若没有指定size,则默认为1MB,没有指定Maxsize,文件可以增长到磁盘满为止,没有指定Filegrowth,则默认为10%。
数据库原理上机实验代码及截图
- 《数据库原理》上机实验报告2017年11月一、实验目的与要求:●熟练使用SQL定义子语言、操纵子语言命令语句●掌握关系模型上的完整性约束机制●掌握一定的数据库管理技术●能完成简单的数据库应用开发二、实验容1、实验一到实验十七(一)数据定义子语言实验(2学时)实验1:利用SQL语句创建Employee数据库代码如下:create database Employee;运行结果:实验2:利用SQL语句在Employee数据库中创建人员表person、月薪表salary及部门表dept, 暂不定义外键约束。
要求:按表1、表达、表3中的字段说明创建表1 person表结构表2 salary表结构表3 dept表结构代码如下:create table person(P_no char(6) not null primary key,P_name varchar(10) not null,Sex char(2) not null,Birthdate datetime null,Prof varchar(10) null,Deptno char(4) not null);create table salary(P_no char(6) not null primary key,Base dec(5) null,Bonus dec(5) null,Fact dec(5) null,Month int not null);create table dept(Deptno char(4) not null primary key,Dname varchar(10) not null);运行结果:(二)数据操纵子语言实验(4学时)实验3:利用SQL语句向表person、salary和dept中插入数据。
要求:按表4、表5、表6中的数据插入。
表4 表person中的数据P_no P_name Sex BirthDate Prof Deptno 000001 王云男1973-4-7 中级0001 000002 志文男1975-2-14 中级0001代码如下:insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000001','王云','男','1973-4-7','中级','0001')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000002','志文','男','1975-2-14','中级','0001')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000003','浩然','男','1970-8-25','高级','0002')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000004','廖小玲','女','1979-8-6','初级','0002')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000005','梁玉琼','女','1970-8-25','中级','0003')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000006','罗向东','男','1979-5-11','初级','0003')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000007','尚家庆','男','1963-7-14','高级','0003')运行结果:表5 表salary中的数据P_no Base Bonus Fact S_month 000001 2100 300 1000002 1800 300 1000003 2800 280 1000004 2500 250 1000005 2300 275 1000006 1750 130 1000007 2400 210 1代码如下:insert into salary (P_no,Base,Bonus,Fact,Month) values ('000001',2100,300,2100+300,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000002',1800,300,1800+300,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000003',2800,280,2800+280,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000004',2500,250,2500+500,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000005',2300,275,2300+275,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000006',1750,130,1750+130,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000007',2400,210,2400+210,1)运行结果:表6 表dept中的数据Deptno Dname0001 人事部0002 财务部0003 市场部代码如下:insert into dept (Deptno,Dname) values ('0001','人事部')insert into dept (Deptno,Dname) values ('0002','财务部')insert into dept (Deptno,Dname) values ('0003','市场部')运行结果:实验4:(1)利用SQL语句修改表中的数据。
数据库实验二,实验三代码和截图
数据库原理上机实验报告数据库实验报告2.1 实验目的通过实习了解掌握数据库和数据表的两种创建方式: 1)通过数据库管理系统软件提供的管理界面完成数据库和数据表的创建;2)通过SQL 语言完成数据库和数据表的创建。
2.2 实验平台1. 操作系统:Windows 7、WindowsXP、Windows Server2003/2008。
2. 数据库管理系统:根据实际情况,自己选择Oracle 或SQL Server 或MySQL 中的一种数据管理管理系统软件。
2.3 实验内容1.采用SQL Server 的Management Studio,或者Oracle 的控制台,或者MySQL 的Workbench 建立一个数据库University,其中包括6 个数据表:a)系的信息表Department(Dno,Dname,Daddress);b) 学生信息表Student(Sno, Sname, Ssex, Sage, Dno);c) 教师信息表Teacher (Tno, Tname, Ttitle, Dno);d) 课程信息表Course (Cno, Cname, Cpno, Ccredit);e) 学生选课表SC(Sno,Cno,Grade);f) 教师授课表TC(Tno,Cno,Site)。
上面加有下划线的为该表的关键码,Dno 表示系的编号,Dname 表示系名,Daddress 表示系所在的办公地址;Sno 表示学号,Sname 为学生姓名,Ssex 为学生性别,Sage 学生年龄;Tno 表示教师编号,也即职工号,Tname 表示教师姓名,Ttitle 表示教师职称;Cno 表示课程编号,Cname 表示课程名称,Cpno 先导课程编号,Ccredit 课程学分;Grade 表示每个学生的每一门课的成绩;Site 表示授课地点。
代码:/*系的信息表Department(Dno,Dname,Daddress)*/create table Department(Dno number(10),Dname varchar2(50),Daddress varchar2(50),primary key (Dno));/*学生信息表Student(Sno, Sname, Ssex, Sage, Dno)*/create table Student(Sno char(11) ,Sname varchar2 (50),Ssex char(2),Sage number(10) ,Dno number(10),primary key (Sno),foreign key (Dno) references Department(Dno));/*教师信息表Teacher (Tno, Tname, Ttitle, Dno)*/create table Teacher(Tno number(10) primary key,Tname varchar2 (50),Ttitle varchar2 (50),Dno number(10) ,foreign key (Dno) references Department(Dno));/*课程信息表Course (Cno, Cname, Cpno, Ccredit)*/ create table Course(Cno number(10) primary key ,Cname varchar2 (50),Cpno number(10) ,CCredit number(10),foreign key(Cpno) references Course(Cno));/*学生选课表SC(Sno,Cno,Grade)*/create table SC(Sno char(11),Cno number(10),Grade number(10),primary key(Sno, Cno),foreign key(Sno) references Student(Sno),foreign key (Cno) references Course(Cno) );/*教师授课表TC(Tno,Cno,Site)*/ create table TC(Tno number(10) ,Cno number(10),Site varchar2(50),primary key (Tno,Cno),foreign key(Tno) references Teacher(Tno), foreign key (Cno) references Course(Cno) );2.采用SQL 语言删除步骤1 中建立的数据表和数据库;代码:drop table SC;drop table TC;drop table Course;drop table Teacher;drop table Student;drop table Department;3.采用SQL 语言建立数据库DB 和其中的6 个数据4.采用SQL 语句为Student 表的Sname 建立唯一索引。
数据结构上机实验源代码
数据结构上机实验源代码栈的应用十进制数转换为八进制数,逆序输出所输入的数实验代码://stack.h,头文件class stack{public:stack();bool empty()const;bool full()const;error_code gettop(elementtype &x)const;error_code push(const elementtype x);error_code pop();private:int count;elementtype data[maxlen];};stack::stack(){count=0;}bool stack::empty()const{return count==0;}bool stack::full()const{return count==maxlen;}error_code stack::gettop(elementtype &x)const{if(empty())return underflow;else{x=data[count-1];return success;}}error_code stack::push(const elementtype x){if(full())return overflow;data[count]=x;count++;return success;}error_code stack::pop(){if(empty())return underflow;count--;return success;}//主程序#include<iostream.h>enum error_code{overflow,underflow,success};typedef int elementtype;const int maxlen=20;#include"stack.h"void read_write() //逆序输出所输入的数{stack s;int i;int n,x;cout<<"please input num int n:";cin>>n;for(i=1;i<=n;i++){cout<<"please input a num:";cin>>x;s.push(x);}while(!s.empty()){s.gettop(x);cout<<x<<" ";s.pop();}cout<<endl;}void Dec_to_Ocx(int n) //十进制转换为八进制{stack s1;int mod,x;while(n!=0){mod=n%8;s1.push(mod);n=n/8;}cout<<"the ocx of the dec is:";while(!s1.empty()){s1.gettop(x);cout<<x;s1.pop();}cout<<endl;}void main(){int n;// read_write();cout<<"please input a dec:";cin>>n;Dec_to_Ocx(n);}队列的应用打印n行杨辉三角实验代码://queue.hclass queue{public:queue(){count=0;front=rear=0;}bool empty(){return count==0;}bool full(){return count==maxlen-1;}error_code get_front(elementtype &x){if(empty())return underflow;x=data[(front+1)%maxlen];return success;}error_code append(const elementtype x){if(full())return overflow;rear=(rear+1)%maxlen;data[rear]=x;count++;return success;}error_code serve(){if(empty())return underflow;front=(front+1)%maxlen;count--;return success;}private:int count;int front;int rear;int data[maxlen];};//主程序#include<iostream.h>enum error_code{overflow,underflow,success};typedef int elementtype;const int maxlen=20;#include"queue.h"void out_number(int n) //打印前n行的杨辉三角{int s1,s2;int i;int j;int k;queue q;for(i=1;i<=(n-1)*2;i++)cout<<" ";cout<<"1 "<<endl;q.append(1);for(i=2;i<=n;i++){s1=0;for(k=1;k<=(n-i)*2;k++)cout<<" ";for(j=1;j<=i-1;j++){q.get_front(s2);q.serve();cout<<s1+s2<<" ";q.append(s1+s2);s1=s2;}cout<<"1 "<<endl;q.append(1);}}void main(){int n;cout<<"please input n:";cin>>n;out_number(n);}单链表实验实验目的:实验目的(1)理解线性表的链式存储结构。
SQL数据库系统实验报告(含代码、截图)
设有一学籍管理系统,其数据库名为“EDUC”。
初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”(注意:此文件名必须已经建立的前提下才可以此操作)。
日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。
四.实验步骤1.使用SQL Server Management Studio(简称SSMS)创建数据库。
(1)启动SSMS在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。
如果身份验证选择的是“混合模式”,则要输入sa的密码。
(2)建立数据库在“对象资源管理器”窗口,建立上述数据库EDUC。
在数据库节点上右击选择新建。
同时建立一个同样属性的数据库EDUC1。
2. 使用向导删除上面建立的数据库。
用SSMS删除建立的数据库EDUC。
3、数据库的分离将刚建好的数据库分离出来,即点击新建的EDUC——任务——分离,将删除连接和更新打一个钩,然后点击确定。
如图所示:4、数据分离出来之后可以附加进去。
即右击数据库——附加——点击添加按钮,找到数据库文件.mdf所存放的路径,然后点击确定,即可以将我们刚所创建的文件添加回去。
五.实验总结通过本次实验,我熟悉了SQL Server 中SQL Server Management Studio的环境,了解了SQL Server 数据库的逻辑结构和物理结构,掌握使用向导创建和删除数据库的方法。
加深了对数据库的认识和理解。
数据库原理及其应用实验代码
实验2 数据查询(1)查询性别为“男”的所有学生的名称并按学号升序排列。
SELECT SnameFROM StudentsWHERE Ssex='男'ORDER BY Sno(2)查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。
积分的计算公式为:[1+(考试成绩-60)*0.1]*Ccredit。
考试成绩>=60 否则=0SELECT Sno, Tno, o, Score, 'Point of Score',CONVERT(FLOAT(1), (Score-60)*0.1*Ccredit+Ccredit)FROM Courses, ReportsWHERE Score>=60 AND o=oUNIONSELECT Sno, Tno, o, Score, 'Point of Score', 0FROM Courses, ReportsWHERE o=o AND (Score < 60 OR Score ISNULL)(3)查询学分是3或4的课程的名称。
SELECT CnameFROM CoursesWHERE Ccredit IN('3','4')(4)查询所有课程名称中含有“算法”的课程编号。
SELECT CnameFROM CoursesWHERE Cname LIKE '%算法%'/*查询得到算法分析与设计、数据结构与算法分析*/(5)查询所有选课记录的课程号(不重复显示)。
SELECT DISTINCT Cno FROM Reports(6)统计所有老师的平均工资。
SELECT A VG(Tsalary) FROM Teachers(7)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序排列。
SELECT Tno,A VG(Score)FROM ReportsGROUP BY TnoORDER BY A VG(Score) DESC(8)统计各个课程的选课人数和平均成绩。
数据库上机实验表项目三
《数据库原理及应用》上机实验报告表(1)利用企业管理器修改(2)利用T-SQL语句修改五、用户自定义完整性的规则(1)利用企业管理器创建右键单击“规则”(2)利用T-SQL语句创建Create rule age_rule as @agescope between 19 and 24Drop rule age_rule六、用户自定义完整性的默认(1)利用企业管理器创建右键单击“默认”(2)利用T-SQL语句创建Create default ssex_default as ‘男’Drop default ssex_default(3)利用存储过程绑定规则Sp_binddefault ssex_default,’student.ssex’Sp_unbindrule ’student.ssex’(4)使用create table声明默认值Create table student(sno char(10) primary key,ssex char(2) default ‘男’)insert into student (sno)values(‘2007141101’)七、用户自定义完整性的约束(1)利用企业管理器创建(2)利用T-SQL语句创建使用create table语句在建立新表的同时定义约束Unique check(域完整性)使用alter table语句向已经存在的表中添加约束八、触发器(1)利用企业管理器创建右键单击“表”,在快捷菜单中选择“所有任务|管理触发器”(2)利用T-SQL语句创建创建一个触发器,当向表中插入一个数据后,就把表中的所有数据显示出来。
Create trigger sample1On studentFor insertAsselect * from studentdrop trigger sample1在student表中添加一条记录后,显示出INSERTED表的内容Create trigger sample2On studentFor insertAsselect * from inserted在student表中删除一条记录后,显示出DELETED表的内容Create trigger sample3On studentFor deleteAsselect * from deletedgodelete from student where sno=’2007141101’在student表中更新一条记录后,显示出INSERTED表和DELETED表的内容Create trigger sample4On studentFor updateAsselect * from insertedselect * from deletedgoupdate student set ssex=’男’where sno=’2007141101’alter triggerdrop trigger。
数据库原理与设计大作业源代码
数据库原理与设计大作业源代码(1) 用户登录界面运行超市管理信息系统后,首先进入用户登录界面,用户输入用户名和密码后,系统进行验证,验证通过进入程序的主界面。
在进行系统登录过程中,登录模块将调用数据库里的用户信息表,并对用户名和密码进行验证,只有输入了正确的账号和密码后,系统登录才会成功。
在登录模块中,对系统的尝试登录次数进行了限制,禁止用户无终止的进行系统登录尝试,在本系统中,当用户对系统的三次登录失败后,系统将自动机制登录,突出登录模块。
并在输入了错误的或者是不存在的账户和密码时,系统会给出出错信息提示,指明登录过程中的错误输入或者错误操作,以便用户进行正确的登录。
登录界面如图5-2所示。
图5-2 登录界面主要实现代码如下://登录private void radBtnOk_Click(object sender, EventArgs e){try{if (radTxtBoxUser.Text.Trim() == ""){this.radLbInfo.Text = "请输入您的用户名!";}else if (radTxtBoxPsw.Text.Trim() == ""){this.radLbInfo.Text = "请输入您的密码!";}else{commandUnit com = new commandUnit();string str = @"select * from UserInfo where loginNo = '" + radTxtBoxUser.Text.ToString() + "'";DataTable table = com.GetDataSet(str);if (table.Rows.Count <= 0){this.radLbInfo.Text = "用户名不存在!";radTxtBoxUser.Text = "";radTxtBoxPsw.Text = "";return;}str = @"select * from UserInfo where loginNo = '" + radTxtBoxUser.Text.ToString() + "' and passWord = '" + radTxtBoxPsw.Text.ToString() + "'";DataTable tableUser = com.GetDataSet(str);if (tableUser.Rows.Count > 0){_currentUser = radTxtBoxUser.Text;_currentPsw = radTxtBoxPsw.Text;IsLogin = true;this.Close();}else{this.radLbInfo.Text = "密码错误!";radTxtBoxPsw.Text = "";}}}catch (System.Exception ex){throw ex;}}(2) 主界面系统登录成功后,进入主界面菜单。
数据库实验截图全
朱彦荣数据库实验所有代码与截图11.1CreateDatabase EmployeeOnPrimary(Name=Empdat1,Filename='E:\data\Empdat1.mdf',Size= 10MB,MaxSize= 50MB,FileGrowth= 5MB)Log On(Name=Emplog,Filename='E:\data\Emplog.ldf',Size= 5MB,MaxSize= 25MB,FileGrowth= 5%)1.增加次数据文件alterdatabase Employeeaddfile(Name=Empdat2,Filename='E:\data\Empdat2.ndf',Size= 5MB,MaxSize= 25MB,FileGrowth= 2MB)--2.修改主文件alterdatabase EmployeeMODIFYfile(Name=Empdat1,maxsize=80MB)11.2创建四表。
createtable person20132184(P_no char(6)notnull primarykey,P_name varchar(10)notnull,Sex char(2)notnull,BirthDate datetime null,Date_hired datetime notnull,Deptname varchar(10)notnull default'培训部',P_boss char(6)null,constraint birth_hire_check20132184check (Birthdate<Date_hired));--dec 和dec(p, s)。
p(精度)指定小数点左边和右边可以存储的十进制数字的最大个数。
精度必须是从1 到最大精度之间的值。
最大精度为38。
数据库上机实验操作步骤
数据库系统原理上机实验预备知识一、本实验指导书采用的数据库例子(见本课程参考用书《数据库系统概论》(第三版)P59) Student-Course-SC数据库:一个学生可以修多门课程,一门课程可以被多个学生选修,则学生、课程之间的E-R图如下:转化为关系数据模型:Student(Sno, Sname,Ssex,Sage,Sdept)Course(Cno,Cname,Cpno,Ccredit)SC(Sno,Cno,Grade)物理数据模型如下:数据库名MySC表名Student实体名学生属性名列名(字段名)数据类型长度允许空描述学号Sno char 5否学生的学号(主键)姓名Sname char 8否学生的姓名性别Ssex char 2学生的性别年龄Sage:tinyint l学生的年龄所在系Sdept char 2学生所在系数据库名MySC表名Course实体名课程属性名列名(字段名)数据类型长度允许空描述课程号Cno char 1否课程的编号(主键)课程名Cname char 20否课程的名称先行课Cpno char L课程先行课的编号学分Ccredit tinyint 1课程的年学分数据库名MySC表名SC实体名学生选课属性名列名(字段名)数据类型长度允许空描述学号Sno char 5否学生的学号(外键)课程号Cno char 3否谍程的编号(外键)成绩Grade tinyint 1学生该门课的成绩主键 (Sno.Cno)索引:对表Course中的字段Ccredit创建降序索引,索引名为IX_Course_Ccredit;检查约束:对表Student中的字段Sno创建检查约束LEN(Sno)>4,约束名为CK_Student_Sno;图表:建立名为“SC_Diagrame1”的图表,反映“SC”、“Student”、“Course”三张表间的备份和维护计划:为自己所建立的数据库创建备份和维护计划。
数据库实验报告(7个实验完整附截图)
数据库实验报告(7个实验完整附截图)福建农林大学计算机与信息学院实验报告课程名称:数据库原理及应用姓名:系:计算机科学与技术专业:计算机科学与技术年级:2012 级学号:指导教师:陈长江2014 年5月18 日实验项目列表序号实验项目名称成绩指导教师1 实验一数据库的定义实验(验证性)2 实验二数据库的建立和维护实验(验证性)3 实验三数据库的查询实验(验证性)4 实验四数据库的视图操作实验(验证性)5 实验五触发器、存储过程操作实验(综合性)实验一:数据库的定义实验一、实验目的:1、理解MySQL Server 6.0 服务器的安装过程和方法;2、要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer,接收T-SQL 语句和进行结果分析。
二、实验环境:硬件:PC机软件:Windows操作系统、MySQL Server 6.0 和Navicat for MySQL 9.0三、实验内容和原理:1、安装MySQL以及相应的GUI工具2、用SQL命令,建立学生-课程数据库基本表:学生Student(学号Sno,姓名Sname,年龄Sage,性别Ssex,所在系Sdept);课程Course(课程号Cno,课程名Cname,先行课Cpno,学分Ccredit);选课SC(学号Sno,课程号Cno,成绩Grade);要求:1) 用SQL命令建库、建表和建立表间联系。
2) 选择合适的数据类型。
3) 定义必要的索引、列级约束和表级约束.四、实验步骤:1、运行Navicat for MySQL,然后进行数据库连接,进入到GUI 界面;2、利用图形界面建立基础表:student 表的信息:字段名类型长度约束条件Sno varchar9非空、主键Sname varchar20Ssex varchar2Sage smallint 6Sdept varchar20course表的信息:字段名类型长度约束条件Cno varchar4非空、主键Cname varchar40Cpno varchar4与 course 表中 Cno 关联Ccredit smallint 6sc表的信息:字段名类型长度约束条件Sno varchar9非空、主键、与student表中Sno外键关联,级联删除Cno varchar 4Grade smallint6非空、主键、与course表中Cno外键关联(1)连接数据库,在 localhost 中点击鼠标右键(如图1所示),点击“新建数据库”,在弹出的窗口中输入数据库名称(如图2所示),然后单击“确定”,就完成了数据库的建立。
2012数据库原理实验(1-4)
数据库原理实验报告学院计算机学院专业计算机科学与技术班级学号姓名指导教师明俊峰(2012 年11 月)计算机学院计算机科学与技术专业班学号:姓名:协作者:___无_ 教师评定:实验__一__题目__ 数据库及基本表的建立 _ 实验__二__题目__ 设计数据完整性_ _ 实验三题目查询数据库实验__四__题目创建和使用视图、索引、存储过程实验平台:SQL server 2012计算机学院计算机科学与技术专业班学号:姓名:协作者:___无_ 教师评定:实验题目一、数据库及基本表的建立一、实验目的1、掌握SQL SERVER的查询分析器和企业管理器的使用;2、掌握创建数据库和表的操作;二、实验内容和要求1、分别使用SQL语句、企业管理器(Enterprise Manager)创建数据库;2、使用SQL语句、企业管理器(Enterprise Manager)创建数据库表;三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows 2000/xp;2.数据库管理系统:SQL sever 2000/2003/2005;四、实验方法、步骤及结果测试创建一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。
创建:student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student _course表(学生选课成绩表)、teacher_course表(教师上课课表)等。
1、创建数据库:确定数据库名称;数据库用于学生管理,命名为SC确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。
确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。
确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。
(1)、利用查询分析器(Query Analyzer),使用SQL语句指定参数创建数据库;利用查询分析器,使用SQL语句方式创建方式将下面各表建立到教学管理数据库中。
数据库实验一 数据定义与简单查询实验(代码加截图)演示教学
数据库实验一数据定义与简单查询实验(代码加截图)实验一数据定义与简单查询实验一、实验目的1、要求学生熟练掌握和使用SQL语言、SQL Server企业管理器创建数据库、表索引和修改表结构,并学会使用SQL Server 查询分析器。
2、掌握查看、修改数据库和表的属性的方法3、在建立好的数据库表中输入部分虚拟数据,学会如何实现基于单表的简单查询。
二、实验内容1、使用SQL Server 2008企业管理器创建一个“图书读者数据库”(Book_Reader_DB);2、使用企业管理器和在查询分析器中用Transact-SQL语句的两种方法建立图书、读者和借阅三个表,其结构为:图书Book(书号bno,类别bclass,出版社publisher,作者author,书名bname,定价price,备注remark);读者Reader(编号rno,姓名name,单位department,性别sex,电话telephone);借阅Borrow(书号bno,读者编号rno,借阅日期bdata)。
要求:①对每个属性选择合适的数据类型;②定义每个表的主码、是否允许空值和默认值等列级数据约束;③对每个表的名字和表中属性的名字尽可能用英文符号标识。
4、实现相关约束:①使用企业管理器来建立上述三个表的联系,即实现:借阅表与图书表之间、借阅表与读者表之间的外码约束;②实现读者性别只能是“男”或“女”的约束。
5、分别用企业管理器和查询分析器修改表的结构。
在“图书”表中,增加两个字段,分别为“数量”和“购买日期”。
在“借阅”表中增加一个“还书日期”字段。
6、用企业管理器在上述三个表中输入部分虚拟数据。
7、在查询分析器中实现基于单个表的查询① select * from Book② select * from book where Bclass=’计算机’③ select count(*) from book group by Bclass④ select * from Reader⑤ select * from Borrow⑥ select rno, count(bno) from Borrow group by rno order by rno⑦ select bno, count(rno) from Borrow group by bno order by bno做实验时,还可以虚拟用户的一些其它查询要求,并用Transact-SQL语句予以实现。
山东大学数据库系统SQL上机实验代码test2——test8(最新版)
Test2(1)create table test2_01 as select sid,nameFrom pub.student pwhere not exists (select cid from pub.student_course where sid=p.sid)(2)create table test2_02 as select sid,nameFrom pub.student natural join pub.student_courseWhere cid in (select cid from pub.student_course where sid=’200900130417’)(3)create table test2_03 as select sid,nameFrom pub.student natural join pub.student_courseWhere cid in (select cid from pub.course where fcid=’300002’)(4)create table test2_04 as select sid,nameFrom pub.studentWhere sid in(select sid from pub.course ,pub .student_course where student_course.cid=course.cid and name='操作系统' )Andsid in(select sid from pub.course ,pub .student_course where student_course.cid=course.cid and name='数据结构' )(5)create table test2_05 as select student.sid,name,cast(avg(score) as numeric(5,0)) avg_score, sum (score) sum_scorefrom pub.student_course,pub.studentWhere pub.student_course.sid=pub.student.sid and age='20'group by student.sid,name(6)create table test2_06 as select cid,max(score)max_scoreFrom pub.student_courseGroup by cid(7)create table test2_07 as select sid,nameFrom pub.studentWhere name not in (select name from pub.student where name like (‘张%’) or name like (‘李%’) or name like (‘王%’)(8)create table test2_08 as select substr(name,1,1) second_name,count (*) p_countFrom pub.studentGroup by substr(name,1,1)(9)create table test2_09 as select pub.student.sid,name,scoreFrom pub.student,pub.student_courseWhere pub.student.sid=pub.student_course.sid and cid='300003'(10)create table test2_10 as select sid,cidFrom pub.student_courseWhere score is not nullTest3(1)create table test3_01 as select * from pub.Student_31delete from test3_01 where length(translate(sid,'\0123456789','\'))>0(2(create table test3_02 as select * from pub.Student_31delete from test3_02 where age<>2012-extract(year from birthday)delete from test3_03 where sex not in (select sex from test3_03 where sex='男' or sex='女' or sex=null)(4(create table test3_04 as select * from pub.Student_31delete from test3_04 where dname is null or length(dname)<3 or dname like '% %'(5(create table test3_05 as select * from pub.Student_31delete from test3_05 where length(class)>4(6(create table test3_06 as select * from pub.Student_31delete from test3_06 where length(translate(sid,'\0123456789','\'))<12Delete from test3_06 where age<>2012-extract(year from birthday)Delete from test3_06 where sex not in (select sex from test3_03 where sex='男' or sex='女' or sex=null) Delete from test3_06 where dname is null or length(dname)<3 or dname like '% %'delete from test3_06 where length(class)>4delete from test3_06 where name like '% %' or length(name)<2(7)create table test3_07 as select * from pub.Student_course_32delete from test3_07 where sid not in (select sid from pub.student)(8)create table test3_08 as select * from pub.Student_course_32delete from test3_08 where (cid,tid) not in (select cid,tid from pub.teacher_course)(9)create table test3_09 as select * from pub.Student_course_32delete from test3_09 where score <0 or score >100(10)create table test3_10 as select * from pub.Student_course_32delete from test3_10 where score <0 or score >100delete from test3_10 where sid not in (select sid from pub.student)delete from test3_10 where cid not in (select cid from pub.course)delete from test3_10 where tid not in (select tid from pub.teacher)delete from test3_10 where (cid,tid) not in (select cid,tid from pub.teacher_course)Test 4(1)create table test4_01 as select * from pub.student_41alter table test4_01 add sum_score numberupdate test4_01 set sum_score = (select sum (score) from pub.student_course where test4_01.sid= pub.student_course.sid)(2)create table test4_02 as select * from pub.student_41alter table test4_02 add avg_score numeric(5,1)update test4_02 set avg_score = (select avg (score) from pub.student_course where test4_02.sid= pub.student_course.sid)(3)create table test4_03 as select * from pub.student_41alter table test4_03 add sum_credit intcreate table t4_031 as select * from pub.course natural join pub.student_courseupdate t4_031 set credit=0 where score<60update test4_03 set sum_credit = (select sum(credit) from t4_031 where test4_03.sid=t4_031.sid) (4)create table test4_04 as select * from pub.student_41update test4_04 set dname=(select did from pub.department where pub.department.dname=test4_04.dname)where dname in (select dname from pub.department)alter table test4_05 add sum_score numberalter table test4_05 add avg_score numeric(5,1)alter table test4_05 add sum_credit intalter table test4_05 add did varchar(2)update test4_05 set sum_score =(select sum (score) from pub.student_course where test4_05.sid= pub.student_course.sid)update test4_05 set avg_score = (select avg (score) from pub.student_course where test4_05.sid= pub.student_course.sid)update test4_05 set sum_credit = (select sum(credit) from t4_031 where test4_05.sid=t4_031.sid) create table a1 as select * from pub.departmentinsert into a1 select * from pub.department_41 where dname not in (select distinct dname from pub.department )(6)create table test4_06 as select * from pub.student_42update test4_06 set name =replace(name,' ','')(7)create table test4_07 as select * from pub.student_42update test4_07 set sex =replace(sex,'性','')update test4_07 set sex =replace(sex,' ','')(8)create table test4_08 as select * from pub.student_42update test4_08 set class=replace(class,'级','')update test4_08 set class=replace(class,' ','')(9)create table test4_09 as select * from pub.student_42update test4_09 set age=2012-extract(year from birthday) where age is null(10)create table test4_10 as select * from pub.student_42update test4_10 set name=replace(name,' ','')update test4_10 set dname=replace(dname,' ','')update test4_10 set sex=replace(sex,'性','')update test4_10 set sex=replace(sex,' ','')update test4_10 set class=replace(class,'级','')update test4_10 set class=replace(class,' ','')update test4_10 set age=2012-extract(year from birthday) where age is nullTest5create table test5_10 (test varchar(20),age numeric (3))insert into test5_10values ('结果1',88),insert into test5_10values ('结果2',90),insert into test5_10values ('结果3',90),insert into test5_10values ('结果4',86),insert into test5_10values ('结果5',90),insert into test5_10values ('结果6',90),insert into test5_10values ('结果7',86),insert into test5_10values ('结果8',86),insert into test5_10values ('结果9',76),insert into test5_10values ('结果10',86)Test6(1) create view test6_01 as select sid,name,dname from pub.student where age<20 and dname='物理学院'order by sid(2)create view test6_02 as select pub.student.sid,name,sum(score)sum_score from pub.student,pub.student_course where pub.student.sid=pub.student_course.sid and class='2009' and dname='软件学院' group by pub.student.sid,(3)create view test6_03 as select pub.student.sid,,pub.student_course.score from pub.student,pub.student_course where pub.student.sid=pub.student_course.sid and class='2010' and dname='计算机科学与技术学院' and pub.student_course.cid=(select cid from pub.course where ='操作系统')(4)create view test6_04 as select pub.student.sid, from pub.student,pub.student_course where pub.student.sid=pub.student_course.sid and score>90 and pub.student_course.cid=(select cid from pub.course where ='数据库系统')(5)create view test6_05 as select pub.student_course.sid,pub.student_course.cid,score, from pub.course,pub.student_course,pub.student where pub.course.cid=pub.student_course.cid and pub.student_course.sid=pub.student.sid and ='李龙'(6)create view test6_06 as select sid,name from pub.student where sid in (select sid from pub.student_course group by sid having count(*) >=(select count(*) from pub.course ))(7)create view test6_07 as select sid,name from pub.student where sid in (select sid from pub.student_course where score>=60 group by sid having count(*) >=(select count(*) from pub.course ))(8)create view test6_08 as select a1.cid, from pub.course a1,pub.course a2 where a1.fcid =a2.cid and a2.credit=2(9)create view test6_09 as select pub.student.sid, ,sum(credit) sum_credit from pub.student, pub.student_course,pub.course where pub.student.sid = pub.student_course.sid and pub.student_course.cid=pub.course.cid and class='2010' and dname='化学与化工学院' and score>=60 group by pub.student.sid, (10)create view test6_10 as select a1.cid, from pub.course a1,pub.course a2 where a1.fcid =a2.cid and a2.fcid is not nullTest7(1)create table a as select (substr(name,2)) first_name from pub.student create table test7_01 as select first_name,(count(*)) frequency from a group by first_name(2)Union和Union All的区别之一在于对重复结果的处理。
数据库原理与应用上机实验报告
数据库原理与应用上机实验报告篇一:《数据库原理及应用》实验报告数据库原理及应用实验报告实验课程:数据库原理及应用学号:XX0学生姓名:陈洪波班级:12通信工程1班 XX年 4 月 22 日实验一创建和维护数据库一、实(本文来自:小草范文网:数据库原理与应用上机实验报告)验目的(1)掌握在Windows 平台下安装与配置MySQL 5.5 的方法。
(2)掌握启动服务并登录MySQL 5.5 数据库的方法和步骤。
(3)了解手工配置MySQL 5.5 的方法。
(4)掌握MySQL 数据库的相关概念。
(5)掌握使用Navicat 工具和SQL 语句创建数据库的方法。
(6)掌握使用Navicat 工具和SQL 语句删除数据库的方法。
二、实验要求(1)学生提前准备好实验报告,预习并熟悉实验步骤;(2)遵守实验室纪律,在规定的时间内完成要求的内容;(3)1~2人为1小组,实验过程中独立操作、相互学习。
三、实验内容及步骤(1)在Windows平台下安装与配置MySQL 版。
进入到下载页面,没看到,就选择了32位的(2)在服务对话框中,手动启动或者关闭MySQL 服务。
(3)使用Net 命令启动或关闭MySQL 服务。
(4)分别用Navicat 工具和命令行方式登录MySQL。
登录成功的页面截图如下:②运用行命令方式登录成功的页面如下:(5)在my.ini 文件中将数据库的存储位置改为D:\MYSQL\DATA。
①停止Mysql服务②打开MySQL默认的安装文件夹C:\Program Files\MySQL\MySQL Server 5.1中的my.ini文件,点击记事本顶部的“编辑”,“查找”,在查找内容中输入datadir后并点击“查找下一个”转到“Path to the database root 数据库存储主路径”参数设置,找到datadir="C:/Documents andSettings/All Users/Application Data/MySQL/MySQLServer 5.1/Data/"即是默认的数据库存储主路径设置,现将它改到D:\MYSQL\DATA即可,正确的设置是datadir="D:\MYSQL\DATA"。
《数据库技术》第三次实验参考代码
unique (姓名)
alter table xs_kc add constraint cj check (成绩>=0 and 成绩<=100)
性别:
alter table xs add constraint xb check (性别='0' or 性别='1')
1. insert into xs values ('000001','黎平','通信工程','1','1980-03-10','50','NULL')
2. select 学号,姓名,性别,专业名 into xs1 from xs
3. insert into xs1 select 学号,姓名,性别,专业名 from xs
fromxsselect姓名fromxsselecttop10fromxsselecttop10percentfromxsselect学号姓名专业名fromxswhere总学分50select学号课程号成绩07考试所占分数fromxskcselect学号课程号考试所占分数成绩07fromxskcselect学生姓名姓名出生时间所学专业专业名fromxsfromxskcwhere成绩80成绩89selectfromxskcwhere成绩between80fromkcwhere学时60order学时descselectfromkcwhere学时60order学时ascfromxswhere姓名likeselect姓名性别专业名课程号成绩fromxsaxskcwhere总学分50a
create procedure proc_info
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库原理》上机实验报告2017年11月一、实验目的与要求:●熟练使用SQL定义子语言、操纵子语言命令语句●掌握关系模型上的完整性约束机制●掌握一定的数据库管理技术●能完成简单的数据库应用开发二、实验容1、实验一到实验十七(一)数据定义子语言实验(2学时)实验1:利用SQL语句创建Employee数据库代码如下:create database Employee;运行结果:实验2:利用SQL语句在Employee数据库中创建人员表person、月薪表salary及部门表dept, 暂不定义外键约束。
要求:按表1、表达、表3中的字段说明创建表1 person表结构表2 salary表结构表3 dept表结构代码如下:create table person(P_no char(6) not null primary key,P_name varchar(10) not null,Sex char(2) not null,Birthdate datetime null,Prof varchar(10) null,Deptno char(4) not null);create table salary(P_no char(6) not null primary key,Base dec(5) null,Bonus dec(5) null,Fact dec(5) null,Month int not null);create table dept(Deptno char(4) not null primary key,Dname varchar(10) not null);运行结果:(二)数据操纵子语言实验(4学时)实验3:利用SQL语句向表person、salary和dept中插入数据。
要求:按表4、表5、表6中的数据插入。
表4 表person中的数据P_no P_name Sex BirthDate Prof Deptno 000001 王云男1973-4-7 中级0001 000002 志文男1975-2-14 中级0001 000003 浩然男1970-8-25 高级0002 000004 廖小玲女1979-8-6 初级0002 000005 梁玉琼女1970-8-25 中级0003 000006 罗向东男1979-5-11 初级0003 000007 肖家庆男1963-7-14 高级0003 000007 肖家庆男1963-7-14 高级0003 代码如下:insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000001','王云','男','1973-4-7','中级','0001')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000002','志文','男','1975-2-14','中级','0001')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000003','浩然','男','1970-8-25','高级','0002')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000004','廖小玲','女','1979-8-6','初级','0002')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000005','梁玉琼','女','1970-8-25','中级','0003')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000006','罗向东','男','1979-5-11','初级','0003')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000007','尚家庆','男','1963-7-14','高级','0003')运行结果:表5 表salary中的数据P_no Base Bonus Fact S_month 000001 2100 300 1000002 1800 300 1000003 2800 280 1代码如下:insert into salary (P_no,Base,Bonus,Fact,Month) values ('000001',2100,300,2100+300,1)insert into salary (P_no,Base,Bonus,Fact,Month) values ('000002',1800,300,1800+300,1)insert into salary (P_no,Base,Bonus,Fact,Month) values ('000003',2800,280,2800+280,1)insert into salary (P_no,Base,Bonus,Fact,Month) values ('000004',2500,250,2500+500,1)insert into salary (P_no,Base,Bonus,Fact,Month) values ('000005',2300,275,2300+275,1)insert into salary (P_no,Base,Bonus,Fact,Month) values ('000006',1750,130,1750+130,1)insert into salary (P_no,Base,Bonus,Fact,Month) values ('000007',2400,210,2400+210,1)运行结果:表6 表dept中的数据Deptno Dname0001 人事部0002 财务部0003 市场部代码如下:insert into dept (Deptno,Dname) values ('0001','人事部')insert into dept (Deptno,Dname) values ('0002','财务部')insert into dept (Deptno,Dname) values ('0003','市场部')运行结果:实验4:(1)利用SQL语句修改表中的数据。
要求:将salary表中工号为000006的员工工资增加为1800元,奖金增加为160元。
代码如下:update salaryset Base=1800,Bonus=160,Fact=1800+160where P_no='000006'运行结果:(2)利用SQL语句删除表中的数据。
要求:删除 salary表中工号为000007的员工数据。
代码如下:deletefrom salarywhere P_no='000007'(3)利用SQL语句查询person表中的所有数据。
代码如下:select *from person运行结果:实验5:(1)创建视图要求:创建员工视图PersonView,包含员工的所有信息,并调用视图代码如下:create view PersonView asselectperson.P_no,P_name,Sex,Birthdate,Prof,person.Deptno,Base,Bonus,Fa ct,Month,Dnamefrom person,salary,deptwhere person.Deptno=dept.Deptno and salary.P_no=person.P_no select * from PersonView运行结果:(2)删除视图要求:将视图PersonView删除代码如下:drop view PersonView运行结果:实验6:条件查询要求:(1)查询person表中所有不重复的职称。
(2)查询person表中职称为中级的所有员工数据。
(3)查询person表中具有高级职称的男员工信息。
(4)查询person表中为王云、志文、罗向东的员工数据。
代码及运行结果如下:(1)select distinct Prof from person(2)select * from person where Prof='中级'(3)select * from person where Prof='高级' and Sex='男'(4)select * from person where P_name in ('王云','志文','罗向东')实验7:使用ORDER BY排序要求:利用SQL语句将工号在000003和000006之间的员工的月收入按实发工资升序排序。
代码如下:select * from salary where P_no between '000003' and '000006' order by Fact asc运行结果:实验8:利用SQL语句查询各部门的实发工资总数。
代码如下:select dept.Dname,sum(Fact) as "部门实发工资总数"from person,salary,deptwhere person.Deptno=dept.Deptno and salary.P_no=person.P_no group by dept.Dname运行结果:实验9:利用SQL语句查询人事部所有员工信息。