南华大学数据库原理实验报告代码
数据库原理上机实验代码及截图
- 《数据库原理》上机实验报告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语句修改表中的数据。
数据库基础学习知识原理课程教学设计报告(附代码)
课程设计报告( 2014--2015年度第2学期)名称:数据库原理课程设计题目:超市管理系统院系:计算机系班级:软件1201学号:学生姓名:指导教师:阎蕾,王晓辉设计周数:一成绩:日期:2015年7月17日《数据库原理课程设计》课程设计任务书一、目的与要求1.本实验是为软件工程、网络工程、信息安全等专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力而设置的实践环节。
通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。
为后继课程和毕业设计打下良好基础。
2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。
3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界面设计和软件调试等各方面的能力。
是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。
二、主要内容针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。
大致分为如下步骤:1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图:1.分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。
2.设计实体之间的联系,包括联系类型和联系的属性。
最后画出完整的E-R图。
2.根据设计好的E-R图及关系数据库理论知识设计数据库模式:1)把E-R图转换为逻辑模式;2)规范化设计。
使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。
3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。
4)用SQL语言完成数据库内模式的设计。
3.数据库权限的设计:1)根据系统分析,完成授权操作;2)了解学习收回权限的操作。
4.完成用户界面的设计,对重要数据进行加密。
数据库原理实验报告(Mysql)
实验项目列表实验一:数据库的定义实验一、实验目的: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表的信息:Sage smallint 6Sdept varchar 20course表的信息:字段名类型长度约束条件Cno varchar 4 非空、主键Cname varchar 40Cpno varchar 4 与course表中Cno关联Ccredit smallint 6sc表的信息:字段名类型长度约束条件Sno varchar 9 非空、主键、与student表中Sno外键关联,级联删除Cno varchar 4 非空、主键、与course表中Cno外键关联Grade smallint 6(1)、连接数据库,在localhost中点击鼠标右键(如图1所示),点击“新建数据库”,在弹出的窗口中输入数据库名称(如图2所示),然后单击“确定”,就完成了数据库的建立。
[VIP专享]数据库课设 实验报告
《数据库原理》实验报告学号:姓名:实验一:SQL定义功能、数据插入1.建立教学数据库的三个基本表:S(Sno,Sname,Ssex,Sage,Sdept) 学生(学号,姓名,性别,年龄,系)SC(Sno,Cno,Grade) 选课(学号,课程号,成绩)C(Cno,Cname,Cpno,Ccredit) 课程(课程号,课程名,先行课,学分)__________________________________________________________________ create table S040930504(Sno char(9) PRIMARY KEY,Sname char(40),Ssex char(2),Sage SMALLINT,Sdept char(20));create table SC040930504(Sno char(9),Cno char(4),Grade SMALLINT);create table C040930504(Cno char(4),Cname char(40),Cpno char(4),Ccredit SMALLINT,);insert into S040930504values('200215121','李勇','男',20,'CS');insert into S040930504values('200215122','刘晨','女',19,'CS');insert into S040930504values('20204','王敏','女',18,'MA');insert into S040930504values('30203','张立','男',19,'IS');insert into SC040930504values('200215121',1,92);insert into SC040930504values('200215121',2,85);insert into SC040930504values('200215121',3,88);insert into SC040930504values('200215122',2,90);insert into SC040930504values('200215122',3,80);insert into C040930504values(1,'数据库','5',4);insert into C040930504values(1,'数学', ' ',2);insert into C040930504values(1,'信息系统','1',4);insert into C040930504values(1,'操作系统','6',3);insert into C040930504values(1,'数据结构','7',4);insert into C040930504values(1,'数据处理',' ',2);insert into C040930504values(1,'PASCAL语言','6',4);SQL> select * from S040930504SNO SNAME SSEX SAGE SDEPT--------- ---------------------------------------- -- ----------200215121 李勇男20 CS 200215122 刘晨女19 CS 200215123 王敏女18 MA 200215125 张立男19 ISSQL> select * from SC040930504SNO CNO GRADE--------- ---- ----------200215121 1 92200215121 2 85200215121 3 88200215122 2 90200215122 3 80SQL> select * from C040930504CNO CNAME CPNO CCREDIT ---- ---------------------------------------- ---- ----------1 数据库 5 41 数学21 信息系统 1 41 操作系统 6 31 数据结构7 41 数据处理21 PASCAL语言 6 4_______________________________________________________2.DROP TABLE、ALTER TABLE、CREATE INDEX、DROP INDEX 及INSERT语句输入数据。
数据库原理及应用实验报告实验一、二参考模板
实验一1.实验目的了解SQL Server 2005的系统配置、“联机丛书”的内容;掌握Microsoft SQL Server Management Studio 的基本操作及模版的使用方法。
熟练掌握和使用SQL Server Management Studio、Transact-SQL语句创建和管理数据库,并学会使用SQL Server查询分析器接受Transact-SQL语句和进行结果分析。
熟练掌握SQL Server Management Studio的使用和使用Transact-SQL语句创建并删除数据表、修改表结构,更新数据。
学会使用SQL Server查询分析器接受Transact-SQL语句并进行结果分析。
2.实验内容(1)查看SQL Server 2005的系统配置。
(2)查看SQL Server“联机丛书”的内容。
(3)查看Microsoft SQL Server Management Studio的环境并掌握其基本操作。
(4)查看Microsoft SQL Server Management Studio脚本模版环境并掌握起模版使用方法。
(5)创建数据库(6)查看和修改数据库的属性(7)修改数据库的名称(8)删除数据库(9)分别使用SQL Server Management Studio和Transact-SQL语句创建和删除数据库表,修改表结构,输入并更新数据。
3.实验步骤1)配置安装完Microsoft SQL Server 2005后要对SQL Server 2005进行配置。
包括两方面的内容:配置服务和配置服务器。
2)“联机丛书”SQL Server“联机丛书”提供了对SQL Server 2005文档和帮助系统所作的改进,这些文档可以帮助用户了解SQL Server 2005以及如何实现数据管理和商业智能项目。
3)SQL Server Management StudioMicrosoft SQL Server Management Studio 是为SQL Server数据库管理员和开发人员提供的新工具。
数据库原理实验
数据库原理实验数据库原理实验报告1. 实验目的本实验旨在通过实践操作,加深对数据库原理的理解,掌握数据库的基本操作和常用操作,培养数据库设计和管理的能力。
2. 实验环境和工具- 操作系统:Windows 10- 数据库管理系统:MySQL- 编程语言:Python- 开发工具:PyCharm3. 实验内容3.1 数据库的创建和删除在MySQL中创建一个新的数据库,并在实验结束后删除该数据库,以保持实验环境的干净。
3.2 数据表的创建和删除在创建的数据库中,创建一个新的数据表,并设定表的字段(列)和类型,以及主键和外键约束。
在实验结束后,删除该数据表。
3.3 数据的插入和查询在创建的数据表中插入一些测试数据,并进行一些简单的查询操作,如根据条件查询,排序查询等。
3.4 数据的更新和删除修改已存在的数据,并删除不需要的数据,观察数据库的变化,并验证操作的正确性。
4. 实验过程及结果4.1 数据库的创建和删除在MySQL中执行如下SQL语句:CREATE DATABASE IF NOT EXISTS mydatabase;DROP DATABASE IF EXISTS mydatabase;结果:成功创建数据库mydatabase,并成功删除数据库mydatabase。
4.2 数据表的创建和删除在创建的数据库中执行如下SQL语句:USE mydatabase;CREATE TABLE IF NOT EXISTS mytable (id INT PRIMARY KEY,name VARCHAR(50),age INT,address VARCHAR(100));DROP TABLE IF EXISTS mytable;结果:成功创建数据表mytable,并成功删除数据表mytable。
4.3 数据的插入和查询在数据表中执行如下SQL语句:USE mydatabase;INSERT INTO mytable (id, name, age, address) VALUES (1, 'John', 20, '123 Main St');INSERT INTO mytable (id, name, age, address) VALUES (2, 'Amy', 25, '456 Park Ave');INSERT INTO mytable (id, name, age, address) VALUES (3, 'Mike', 30, '789 Broadway');SELECT * FROM mytable WHERE age > 20;结果:成功插入3条测试数据,并成功查询出年龄大于20的记录。
《数据库原理》学生实验报告
Char(15)
班级
班级的编号,参照表Class
StuAddr
Char(20)
住址
Birthday
Datetime
出生年月
Height
Int
身高
以厘米为单位表示学生的身高
代码:
B、Class表结构
字段名
类型
中文名
备注
Clsno
Char(15)
班号
主键
Clsname
Char(16)
班名
对班级的描述信息
4.将计算机科学系全体学生的成绩置零。
5.删除学号为20100250的学生记录
6.删除计算机科学系所有学生的选课记录
实验3数据库的查询和视图
一实验目的
1、通过Select的使用,掌握Select语句的结构及其应用
2、掌握创建索引、和删除索引的SQL语句
3、掌握创建、查询、更新、修改和删除视图的SQL语句
7.查询学生的学号、姓名、选修的课程及成绩
8.求选修课程号为‘0003’且成绩在90以上的学生学号、姓名和成绩
9.查询每一门课程的间接先修课(即先修课的先修课)
二、索引
1.利用查询分析器为学生student表创建一个基于height的非聚集索引,创建一个基于sno的聚集索引,创建一个基于sname的唯一索引,其中按height按升序排列,sno按降序排列,sname按升序排列
2.删除所建立的非聚集索引
三、视图的创建、查询、修改和删除
1.为学生student表创建一个视图V_student,以显示学生的学号、姓名、出生年份等基本信息
2.创建一个视图V_SCG,以显示0001号课程的学生成绩信息,如学号、姓名、课程名称、成绩和学分等。
数据库原理及其应用实验代码
实验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)统计各个课程的选课人数和平均成绩。
《数据库原理》实践报告
《数据库原理》实践报告本次实践报告是围绕《数据库原理》这门课程进行的,主要是对数据库的基本概念和原理进行实践学习和测试。
本次实验主要分为两部分,分别是数据库的设计和SQL的基本操作。
一、数据库的设计数据库设计是指对数据进行规划和组织的过程,目的是将数据存储在数据库中以满足特定的需求。
在本次实验中,我们使用了MySQL Workbench进行数据库的设计。
首先,我们将需要存储的数据分析并确定其关系。
我们设计的数据库用于管理学生信息、课程信息和成绩信息。
因此,我们需要设计三个表:学生表、课程表和成绩表。
其次,我们根据数据之间的关系进行表的设计。
在此过程中,我们可以利用ER图来帮助我们建立表与表之间的关系。
一个ER图通常包括实体、属性和关系。
最后,我们建立了表格并向各个表中插入了一些数据。
以下是我们设计的表格:1. 学生表(student)| 姓名 | 性别 | 学号 | 年龄 ||------------|------------|------------|------------|| 张三 | 男 | 001 | 19 || 李四 | 女 | 002 | 20 || 王五 | 男 | 003 | 19 |二、SQL的基本操作SQL是结构化查询语言的简称,它是用于管理关系型数据库的语言。
通过SQL语言,我们可以对数据库进行各种操作,包括数据查询、修改、删除等等。
在本次实验中,我们主要学习了SQL语言的基本操作。
以下是我们进行的一些操作:1. 数据插入使用insert语句可以向表中插入一条或多条数据。
以下是向上面创建的学生表中插入一条数据的例子:```insert into student values('赵六', '男', '004', 20);```2. 数据查询使用select语句可以查询表中的数据。
以下是查询成绩表中所有学生的所有成绩的例子:```select * from score;```3. 数据更新使用update语句可以更新表中的数据。
数据库原理实验报告
数据库原理实验报告数学与计算机学院数据库原理实验课程编号:课程名称:数据库原理实验英⽂名称:Principle of Database学分:1学时:18适⽤年级专业(学科类):计算机科学与技术、⽹络⼯程、软件⼯程、信息与计算等专业⼀、课程概述(⼀)课程性质《数据库原理实验》是计算机科学与技术、⽹络⼯程、软件⼯程、信息与计算等专业的专业必修课程。
《数据库原理》课程的实践环节。
通过上机实验,使学⽣真正深层次了解数据库系统的体系结构,掌握数据库系统的基础理论、技术和⽅法,掌握主流数据库管理系统SQL Server 2000的应⽤技术及数据库应⽤系统的设计、开发能⼒。
该课程的学习可以很好地帮助学⽣理解、掌握理论课所学的理论知识,提⾼学⽣处理实际问题的能⼒,培养并提⾼学⽣的专业素质。
本课程实验采⽤实验教学和学⽣实验相结合⽅式,使学⽣真正领会、理解、掌握理论课教学中讲解的数据库原理的基础知识和基本⽅法,正确灵活地运⽤学到知识,提⾼学⽣解决实际问题的能⼒。
(⼆)教学⽬标与要求通过实践环节使学⽣理解、掌握课堂教学内容,重点理解并掌握数据库系统的基本概念、基本原理和基本⽅法。
要求学⽣通过实验课程的学习,重点掌握构建信息管理系统的⽅法、步骤。
培养学⽣应⽤所学知识处理具体问题的能⼒,为学⽣将来从事相关⼯作奠定坚实的基础。
(三)重点和难点教学重点:1.数据库、表、视图、索引、主键的建⽴;2.SELECT语句进⾏各种查询;教学难点:触发器及存储过程。
(四)与其他课程的关系本课程是计算机科学与技术等相关专业的专业程,要求有数据结构和程序设计等基础知识。
(五)教材及教学参考书1.《数据库系统概论》(第4版),萨师煊王珊主编,⾼等教育出版社,2006;2.《数据库系统原理》,李建中,电⼦⼯业出版社,2004;3.《数据库系统原理教程》,王珊,陈红,清华⼤学出版社, 2005;4.《数据库系统教程》,施伯乐著,⾼等教育出版社,2003;5.《数据库系统原理与应⽤教程》,闪四清编著,清华⼤学出版社,2001。
《数据库原理》课程实验报告模板2014-2015解读
2014-2015学年第一学期《数据库原理》课程实验报告学号: 20122712学生姓名:魏仁斌班级:软件工程2012-4教师:陶宏才辅导老师:王泽洲赵红芳2014年12月实验一:表及约束的创建1.1 实验目的与内容目的:创建数据表、添加和删除列、实现所创建表的完整性约束。
内容:11-2、11-26~33。
注:实验内容编号均取自《数据库原理及设计(第2版)》第11章的实验!即:实验内容以第2版教材为准!报告:以11-31作为实验一的报告。
1.2 实验代码及结果1.2.1 实验代码CREATE TABLE person_20122712(P_no char(6)PRIMARY KEY,P_name varchar(10)NOT NULL,Sex char(2)NOT NULL,Birthdate datetime NULL,Date_hired datetime NOT NULL,Deptname varchar(10)NOT NULL DEFAULT'培训部',P_boss char(6)NULL,CONSTRAINT birth_hire_checkCHECK(Birthdate< Date_hired))CREATE TABLE salary_20122712(P_no char(6)PRIMARY KEY,Base Dec(8,2)NOT NULL,Bonus Dec(7,2) NULL,Fact AS Base+Bonus,CONSTRAINT person_contrFOREIGN KEY (P_no)REFERENCES person_20122712(P_no)ON DELETE No ActionON UPDATE CASCADE)CREATE TABLE customer_20122712(Cust_no char(6)PRIMARY KEY,Cust_name varchar(10)NOT NULL,Sex char(2)NOT NULL,BirthDate datetime NULL,City varchar(10)NULL,Discount Dec(4,2)NOT NULL DEFAULT 1.00,CONSTRAINT Discount_checkCHECK(Discount<=1.00 AND Discount>=0.50))CREATE TABLE orderdetail_20122712(Order_no char(6)PRIMARY KEY,CONSTRAINT Order_no_constraintCHECK(Order_no LIKE'[A-Z][A-Z][0-9][0-9][0-9][0-9]'),Cust_no char(6)NOT NULL,P_no char(6)NOT NULL,Order_total int NOT NULL,Order_date datetime NOT NULL,CONSTRAINT person_contrFOREIGN KEY(P_no)REFERENCES person_20122712 (P_no)ON DELETE No ActionON UPDATE CASCADE,CONSTRAINT customer_contrFOREIGN KEY(Cust_no)REFERENCES customer_20122712 (Cust_no)ON DELETE No ActionON UPDATE CASCADE)ALTER TABLE salary_20122712ADD CONSTRAINT salary_P_no_FK FOREIGN KEY(P_no)REFERENCES person_20122712(P_no)1.2.2 实验结果注:仅附有实际意义的结果。
数据库实训报告含代码
一、实训目的本次数据库实训的主要目的是通过实际操作,使学生深入了解数据库的基本概念、原理和操作方法,掌握SQL语言的使用,提高数据库设计和实施的能力。
同时,通过本次实训,培养学生严谨的工作态度和团队协作精神。
二、实训环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:MySQL Workbench三、实训内容1. 数据库设计2. 数据库创建与操作3. SQL语言基础4. 数据库查询5. 数据库安全与权限管理6. 数据库备份与恢复四、实训过程1. 数据库设计(1)需求分析:以学生信息管理系统为例,分析系统需求,确定数据库表结构。
(2)概念结构设计:使用E-R图描述实体关系,确定实体、属性和关系。
(3)逻辑结构设计:根据概念结构设计,将E-R图转换为关系模型,确定表结构。
(4)物理结构设计:选择合适的存储引擎,设计表空间、索引等。
2. 数据库创建与操作(1)创建数据库```sqlCREATE DATABASE student_info;```(2)创建表```sqlCREATE TABLE student (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,age INT NOT NULL,gender ENUM('male', 'female') NOT NULL,class_id INT NOT NULL,FOREIGN KEY (class_id) REFERENCES class(id));CREATE TABLE class (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL);```(3)插入数据```sqlINSERT INTO student (name, age, gender, class_id) VALUES ('张三', 20, 'male', 1);INSERT INTO class (name) VALUES ('计算机科学与技术');```3. SQL语言基础(1)查询语句```sqlSELECT FROM student WHERE age > 20;```(2)更新语句```sqlUPDATE student SET age = 21 WHERE name = '张三';```(3)删除语句```sqlDELETE FROM student WHERE name = '李四';```4. 数据库查询(1)多表查询```sqlSELECT , FROM student JOIN class ONstudent.class_id = class.id;```(2)子查询```sqlSELECT FROM student WHERE class_id IN (SELECT id FROM class WHERE name = '计算机科学与技术');```5. 数据库安全与权限管理(1)创建用户```sqlCREATE USER 'user1'@'localhost' IDENTIFIED BY 'password';```(2)授权```sqlGRANT SELECT, INSERT, UPDATE, DELETE ON student_info. TO'user1'@'localhost';```(3)撤销权限```sqlREVOKE ALL PRIVILEGES ON student_info. FROM 'user1'@'localhost'; ```6. 数据库备份与恢复(1)备份```sqlmysqldump -u root -p student_info > student_info_backup.sql```(2)恢复```sqlmysql -u root -p student_info < student_info_backup.sql```五、实训总结通过本次数据库实训,我掌握了以下知识和技能:1. 数据库的基本概念、原理和操作方法;2. SQL语言的使用;3. 数据库设计、创建与操作;4. 数据库查询、安全与权限管理;5. 数据库备份与恢复。
数据库原理实验报告
数据库原理实验报告目录一、实验目的 (2)1. 熟悉数据库的基本概念和原理 (2)2. 掌握数据库的设计方法和技巧 (3)3. 学会使用SQL语言进行数据操作和管理 (5)二、实验内容 (6)1. 数据库基本概念 (7)2. 数据库设计 (9)3. SQL语言基础 (9)4. SQL语句练习 (11)5. 数据库管理与维护 (12)三、实验步骤与结果 (13)1. 数据库基本概念 (15)数据库的定义和特点 (16)关系型数据库的基本结构 (17)数据库管理系统(DBMS)的功能和组成部分 (19)2. 数据库设计 (20)需求分析 (22)概念模型设计 (23)逻辑模型设计 (25)物理模型设计 (26)3. SQL语言基础 (27)SQL语言的基本语法 (28)SQL语句的分类和功能 (30)SQL语句的操作对象 (31)4. SQL语句练习 (32)5. 数据库管理与维护 (34)数据库备份与恢复 (35)数据库优化与调整 (36)数据库安全与权限管理 (38)四、实验总结与展望 (39)1. 本实验的主要收获和体会 (40)2. 在实际工作中遇到的困难和问题及解决方法 (41)3. 对未来学习和工作的展望 (42)一、实验目的本次数据库原理实验的主要目的是加深对数据库管理系统原理的理解,掌握数据库的基本操作,并学会使用SQL语言进行数据库的查询、插入、更新和删除等操作。
通过实际操作,培养学生的数据库设计能力和解决实际问题的能力,为后续的数据库课程学习和职业生涯打下坚实的基础。
实验还旨在提高学生的动手实践能力和团队协作精神,为未来的学习和工作积累宝贵的经验。
1. 熟悉数据库的基本概念和原理数据库是存储数据的集合,这些数据可以是关于企业、组织或个人的信息。
它提供了一个有组织的数据存储环境,可以高效、有序地存储和管理大量的数据。
在现代信息技术中,数据库管理系统(DBMS)作为支持数据存储和操作的核心软件工具发挥着至关重要的作用。
数据库原理实验报告
学生表的内容如图3
图3
三、实验结果与讨论:
通过实验,我了解了表的结构特点、SQL Sever 2005的基本数据类型、掌握
使用SQL Sever 2005 Management Studio和SQL命令创建表的方法、掌握使
用SQL Sever 2005 Management Studio和SQL命令修改表的方法、掌握使用SQL Sever 2005 Management Studio和SQL命令删除表的方法,实验结果与预期的结果
2)了解SQL Server 2005的基本数据类型。
3)掌握使用SQL Server 2005 Management Studio和SQL命令创建表的方法。
4)掌握使用SQL Server 2005 Management Studio和SQL命令修改表结构的方
法。
5)掌握使用SQL Server 2005 Management Studio和SQL命令删除表的方法。
(学号char(12)notnullprimarykey,
姓名char(8),
性别char(2),
出生日期datetime,
入学时间datetime,
班级代码char(9),
系部代码char(2),
专业代码char(4),
籍贯varchar(20))
go
altertable学生
dropcolumn籍贯
性别bit,
出生日期datetime,
学历char(10),
职务char(10),
职称char(10),
系部代码char(2),
专业char(20),
籍贯varchar(20),
备注varchar(50))容如图2:
数据库原理课程设计报告 (附代码)
数据库原理课程设计报告(附代码)课程设计报告( 2014--2015年度第2学期)名称:数据库原理课程设计题目:超市管理系统院系:计算机系班级:软件1201学号:学生姓名:指导教师:阎蕾,王晓辉设计周数:一成绩:日期:2015年 7月 17日《数据库原理课程设计》课程设计任务书一、目的与要求1.本实验是为软件工程、网络工程、信息安全等专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力而设置的实践环节。
通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。
为后继课程和毕业设计打下良好基础。
2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。
3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界面设计和软件调试等各方面的能力。
是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。
二、主要内容针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。
大致分为如下步骤:1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图:1.分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。
2.设计实体之间的联系,包括联系类型和联系的属性。
最后画出完整的E-R 图。
2.根据设计好的E-R图及关系数据库理论知识设计数据库模式:1)把E-R图转换为逻辑模式;2)规范化设计。
使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。
3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。
4)用SQL语言完成数据库内模式的设计。
3.数据库权限的设计:1)根据系统分析,完成授权操作;2)了解学习收回权限的操作。
数据库课程设计报告、数据库实习报告(SQL与C++、附部分程序代码及截图)
数据库课程设计报告图书管理系统一.课程设计目的与要求目的(1)熟悉大型数据库管理系统的结构与组成;(2)熟悉数据库应用系统的设计方法和开发过程;(3)掌握一种大型数据库管理系统(ORACLE、DB2或SQLSERVER)的应用技术和开发工具的使用;(4)熟悉数据库安全的相关知识和技术;(5)熟悉数据库系统的管理和维护。
要求从本大纲推荐的题目中(也可以自拟题目,经课程设计指导老师同意),选定一个数据库应用系统的题目,完成数据库的设计和应用系统设计,并提交相应文档。
要求:(1)不同的人可以选同一题目,但必须彼此独立完成整个系统,不得互相拷贝;(2)数据库管理系统仅限Oracle、DB2、Sybase以及MS SQLServer;(3)开发工具限PowerBuilder,Delphi,C++,JA V A或者平台;(4)必须兼有客户/服务器结构及浏览器/服务器结构,系统业务部分用客户/服务器结构完成,公共查询浏览部分可用浏览器/服务器结构完成。
(5)提交系统的源码及文档。
二.课程设计题目:图书管理系统题目要求:假设图书馆的工作人员要处理下列日常工作:●借书:核实读者身份并检查是否存在下述情况:⏹该读者借书的数额超标;⏹该读者所借的书过期未还;⏹该读者曾因借书过期被罚款而未交;如不存在上述情况,则登记借书信息;●还书:检查所还图书是否损坏或过期,是则登记罚单信息并打印罚单,在交纳罚金前,不允许该读者继续借书。
若图书损坏,注销该图书信息,否则进行还书登记。
●罚款:根据罚单收取罚金,同时取消该读者的借书限制。
●图书信息维护:新书上架、旧书下架及图书信息查询。
●读者信息维护:录入、注销、修改及查询读者信息。
此外,图书馆还应向读者提供下列基本功能:●查询图书信息;●查询自己的基本信息和借书记录;续借;设计一个B/S或C/S模式的系统实现上述功能。
实验环境:1.Windows XP操作系统,Server版;2.企业版Microsoft SQL Server 2000;3.Visual C++ MFC编程三.图书管理系统的设计与实现:图书管理系统的需求分析:数据需求分析:根据图书管理系统的需求,首先将要记录的信息分类,要记录的信息如下。
数据库原理及应用实训报告
实训报告第一部分:实训目的通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力,能够独立完成数据库的功能的设计和开发。
第二部分:实训准备安装有SQL SERVER 2005以上版本的软件的计算机。
第三部分:实训要求1.画出所给任务中表的E-R图2.实训部分(全部使用T-SQL语句完成以下实验内容)第四部分:实训内容(步骤及程序)E-R图实验1 数据库操作1.创建数据库:操作1.1:创建一个test数据库,其主数据文件逻辑名test_data,物理文件名test_data.mdf,初始大小10MB,最大尺寸为无限大,增长速度1MB;数据库日志文件逻辑名称为test_log,物理文件名为test_log.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为10%。
create database test数据库on(name='test_data',filename='D:\课程设计\数据库\test_data.mdf',size=10mb,filegrowth=1mb,maxsize=unlimited)log on(name='test_log',filename='D:\课程设计\数据库\test_log.ldf',size=1mb,filegrowth=10%,maxsize=5mb)go2.查看数据库属性:操作1.2:使用T-SQL语句查看数据库test属性exec sp_helpdb test数据库go3.删除数据库:操作1.3:使用T-SQL语句删除数据库testdrop database test数据库go实验2 表操作1.创建表:操作2.1:创建学生表:use test数据库gocreate table student(st_id nvarchar(9)not null primary key, st_nm nvarchar(8)not null,st_sex nvarchar(2),st_birth datetime,st_score int,st_date datetime,st_from nchar(20),st_dpid nvarchar(2),st_mnt tinyint)go操作2.2:创建课程信息表:use test数据库gocreate table couse(cs_id nvarchar(4)not null primary key, cs_nm nvarchar(20)not null,cs_tm int,cs_sc int)go操作2.3:创建选课表:use test数据库gocreate table slt_couse(cs_id nvarchar(4)not null,st_id nvarchar(9)not null,score int,sltdate datetime)goalter table slt_couseadd constraint fk_cs_idforeign key(cs_id)references couse(cs_id)goalter table slt_couseadd constraint fk_st_idforeign key(st_id)references student(st_id)go操作2.4:创建院系信息表:use test数据库gocreate table dept(dp_id nvarchar(2)not null,dp_nm nvarchar(20)not null,dp_drt nvarchar(8),dt_tel nvarchar(12))go2.修改表结构:(1)向表中添加列:操作2.5:为“dept”表添加“dp_count”列(数据类型为nvarchar,长度为3,允许为空)use test数据库goalter table deptadd dp_count nvarchar(3)go(2)修改列数据类型:操作2.6:修改“dept”表的“dp_count”列数据类型为intuse test数据库goalter table deptalter column dp_count intgo(3)删除表中指定列:操作2.7:删除“dept”表的“dp_count”列use test数据库goalter table deptdrop column dp_countgo3.删除表操作2.8:删除“dept”表use test数据库godrop table deptgo4.向表中输入数据记录操作2.9:分别向“student”表、“couse”表、“slt_couse”表、“dept”表中输入数据记录use test数据库goinsert studentvalues('000000001','小二','男','1991-01-01','89','2011-09-01','广东','10','1')insert studentvalues('000000002','小三','男','1991-01-02','79','2011-09-01','广东','12','1')insert studentvalues('000000003','小四','女','1991-01-03','69','2011-09-01','广东','8','1')insert studentvalues('000000004','小六','男','1991-04-01','59','2011-09-01','广东','13','1')insert studentvalues('000000005','小七','男','1991-01-11','89','2011-09-01','广东','11','1')Gouse test数据库goinsert cousevalues('0001','计算机网络','72','2')insert cousevalues('0002','c语言程序设计','72','2')insert cousevalues('0003','SQL数据库','72','2')insert cousevalues('0004','计算机导论','72','2')insert cousevalues('0005','高级数学','72','2')Gouse test数据库goinsert slt_cousevalues('0001','000000001','72','2011-10-12') insert slt_cousevalues('0002','000000002','92','2011-10-12') insert slt_cousevalues('0003','000000003','62','2011-10-12') insert slt_cousevalues('0004','000000004','82','2011-10-12') insert slt_cousevalues('0005','000000005','52','2011-10-12')use test数据库goinsert deptvalues('8','艺术系','王大仁','12345768')insert deptvalues('9','建筑系','李小仁','12645678')insert deptvalues('10','信息系','李大仁','12349878')insert deptvalues('13','管理系','王小仁','16345678')insert deptvalues('12','外语系','王小明','14512678')go实验3 数据完整性1.空值约束( NULL )操作3.1:将student表中的st_sex列属性更改为NOT NULL use test数据库goalter table studentalter column st_sex nvarchar(2)not nullgo2.默认值约束( DEFAULT )操作3.2:将student表中的st_from列默认值设置为“陕西省”use test数据库goalter table studentadd constraint df_fromdefault'陕西省'for st_fromgo3.默认值对象操作3.3:创建默认值对象df_today为当前日期,并将其绑定到slt_couse表中的sltdate列,然后取消绑定,最后删除默认值对象df_today。
《数据库原理》课程实验报告
2013-2014学年第一学期《数据库原理》课程实验报告学号: 20112723学生姓名:林苾湲班级:软件工程2011-2教师:陶宏才辅导老师:张建华刘宝菊2013年12月实验一:表及约束的创建1.1 实验目的与内容目的:创建数据表、添加和删除列、实现所创建表的完整性约束。
内容:11-2、11-26~33。
报告:以11-31作为实验一的报告。
1.2 实验代码及结果1.2.1 实验代码(1)CREATE TABLE orderdetail20112723(Order_no char(6) PRIMARY KEYCONSTRAINT Order_no_constraint20112723CHECK(Order_no LIKE'[A-Z][A-Z][0-9][0-9]'),Cust_no char(6) NOT NULL,P_no char(6) NOT NULL,Order_total int NOT NULL,Order_date datetime NOT NULL,CONSTRAINT person_contr20112723FOREIGN KEY (P_no)REFERENCES person20112723(P_no)ON DELETE CASCADEON UPDATE CASCADE,CONSTRAINT customer_contr20112723FOREIGN KEY (Cust_no)REFERENCES customer20112723(Cust_no)ON DELETE CASCADEON UPDATE CASCADE,)(2)ALTER TABLE salary20112723ADD CONSTRAINT Pno_FK20112723 FOREIGN KEY(P_no) REFERENCES person20112723(P_no)1.2.2 实验结果(1)(2)实验二:SQL更新语句2.1 实验目的与内容目的:update、delete、insert 语句的练习。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
代码从实验2开始需自己建立五张表分别对应StudentsYYXXXXCoursesYYXXXXSCYYXXXXStudentBAK1YYXXXXStudentBAK2YYXXXX表名分别为(依情况更改)Studentswlw0103Courseswlw0103SCwlw0103StudentBAKwlw0103StudentBAK2wlw01032.11 select * from Studentswlw0103where Sdept='计算机'2 select Sno,Sname from Studentswlw0103where Sname like '李%'3 select Cname from Courseswlw0103where PreCno is null4 select Sno from SCwlw0103where Grade <605 select Sno,Grade from SCwlw0103where Cno='C1'or Cno='C2'6 select Sname,YEAR(GETDATE())-YEAR(Sbirthday) from Studentswlw0103where Sdept='计算机'7 select Sname from Studentswlw0103where Sdept='计算机'andYEAR(Sbirthday)between 1986 and 19878 select distinct y.Sno,y.Sname,z.Sno,z.Snamefrom Studentswlw0103 first,studentswlw0103 y, studentswlw0103 zwhere first.Sname like '李%' and first.Sno=y.Sno+1 and first.Sno=z.Sno+29 select Sno,COUNT(Cno) 课程数from SCwlw0103 group by Snohaving COUNT (Cno)>210 select Sno,AVG(Grade) 平均分,COUNT(Cno) 选课数from SCwlw0103group by Snohaving COUNT (*)>=2order by AVG(Grade) desc2.21 select s.Sno,Snamefrom Studentswlw0103 s join SCwlw0103 sc ons.Sno=sc.Sno join Courseswlw0103 c on o=o where Cname='数据库原理'and Sdept='计算机'2 select y.PreCnofrom Courseswlw0103 x, Courseswlw0103 ywhere x.PreCno=o3 select s.Sno,Sname,Cname,Gradefrom Studentswlw0103 s left outer join SCwlw0103 scon s.Sno=sc.Sno left outer joinCourseswlw0103 c on o=o4 select Sname from Studentswlw0103 swhere exists (select * from SCwlw0103where Sno=s.Sno and Cno is not null)5 select s.*,ame from Studentswlw0103 sleft outer join SCwlw0103 sc on s.Sno=sc.Snoleft outer join Courseswlw0103 con o=o6 select o,s.*,amefrom Studentswlw0103 s right outer join SCwlw0103 scon s.Sno=sc.Snoleft outer join Courseswlw0103 con o=o7 select s.*,c.* from Studentswlw0103 scross join Courseswlw0103 corder by Sno8 select Sname,AVG(Grade) 平均成绩,COUNT(Cno)选课门数from Studentswlw0103 s left outer join SCwlw0103 scon s.Sno=sc.Snowhere Sdept='计算机'group by s.Snamehaving COUNT(Cno)>2order by AVG(Grade) desc31 select COUNT (Sno) 人数fromSCwlw0103 scwhere Cno=(select Cno from Courseswlw0103where Cname ='数据库原理')2 select *from Studentswlw0103 swhere not exists(select * from SCwlw0103 scwhere Sno=s.Sno and exists (select *from Courseswlw0103 where Cno=o and Cname='数据库原理'))3 select *from Studentswlw0103 swhere YEAR(GETDA TE())-YEAR(Sbirthday)<any(select YEAR(GETDATE())-YEAR(Sbirthday)from Studentswlw0103 where Sdept='计算机')and Sdept!='计算机'4.1 select Cno from SCwlw0103where Sno='0602001'unionselect Cno from SCwlw0103where Sno='0602002'4.2 select distinct Cno from SCwlw0103where Sno in ('0602001','0602002')5.1 select Cno from SCwlw0103where Sno='0602001'intersectselect Cno from SCwlw0103where Sno='0602002'5.2 select o from SCwlw0103 xwhere x.Sno='0602001'and exists(select * from SCwlw0103 ywhere y.Sno='0602002' and o=o)6.1 select Cno from SCwlw0103where Sno='0602001'exceptselect Cno from SCwlw0103where Sno='0602002'6.2 select Cno from SCwlw0103 xwhere x.Sno='0602001'and not exists(select * from SCwlw0103 ywhere y.Sno='0602002' and o=o)41 insert into Studentswlw0103 (Sno,Sname,Ssex, Sbirthday,Sdept)values('0601001','赵林','男','1985-09-08','计算机')2 insert into SCwlw0103 (Sno,Cno)values('0601001','C2')3 insert into Studentswlw0103values('0601001','张修雨','男',null,null,null)4.1 create table StudentBAKwlw0103(Sno varchar(50), Sname varchar (50),Sdept varchar(50))4.2 insert into StudentBAKwlw0103 select Sno,Sname,Sdept from Studentswlw0103where Sdept='计算机'5 insert into StudentBAK2wlw0103select Sno,Sname from Studentswlw0103where YEAR(Sbirthday)>='1986'6 update Studentswlw0103 set Sdept='机电系',Memo='爱好:足球'where Sname='赵林'7 update SCwlw0103 set Grade=Grade+5where Cno=(select Cno from Courseswlw0103where Cname='数据库原理')8 delete from StudentBAKwlw0103where Sname like '赵%'9 delete from SCwlw0103where Grade<60 and Sno in (select Sno from Studentswlw0103where Sdept='计算机')10 delete from StudentBAK2wlw0103。