当前位置:文档之家› 数据库实验实验指导

数据库实验实验指导

数据库实验实验指导
数据库实验实验指导

第7章常用实用类

实验1 比较日期的大小

1.实验目的:

本实验的目的是让学生掌握Date类和Calendar类的常用方法。

2.实验要求:

编写一个Java应用程序,用户从键盘输入两个日期,程序将判断两个日期的大小关系以及两个日期之间的间隔天数。

3.程序模板:

按模板要求,将【代码1】~【代码8】替换为Java程序代码。

DateExample.java

import java.util.*;

public class DateExample {

public static void main(String args[ ]) {

Scanner read=new Scanner(System.in);

System.out.println("输入第一个日期的年份:");

int yearOne=read.nextInt( );

System.out.println("输入该年的月份:");

int monthOne=read.nextInt( );

System.out.println("输入该月份的日期:");

int dayOne=read.nextInt( );

System.out.println("输入第二个日期的年份:");

int yearTwo=read.nextInt( );

System.out.println("输入该年的月份:");

int monthTwo=read.nextInt( );

System.out.println("输入该月份的日期:");

int dayTwo=read.nextInt( );

Calendar calendar=【代码1】//初始化日历对象

【代码2】// 将calendar的时间设置为yearOne年monthOne月dayOne日

long timeOne=【代码3】// calendar表示的时间转换成毫秒

【代码4】// 将calendar的时间设置为yearTwo年monthTwo月dayTwo日

long timeTwo=【代码5】// calendar表示的时间转换成毫秒

Date date1=【代码6】// 用timeOne作为参数构造date1

Date date2=【代码7】// 用timeTwo作为参数构造date2

if(date2.equals(date1))

System.out.println("两个日期的年、月、日完全相同");

else if(date2.after(date1))

System.out.println("您输入的第二个日期大于第一个日期");

else if(date2.before(date1))

System.out.println("您输入的第二个日期小于第一个日期");

long 相隔天数=【代码8】// 计算两个日期相隔天数

System.out.printf("%d年%d月%d日和%d年%d月%d日相隔%d天",

yearOne,monthOne,dayOne, yearTwo,monthTwo,dayTwo, 相隔天数);

}

}

4.实验指导与检查:

向指导老师演示程序的运行效果。

5.实验报告:

实验报告的格式如下(可要求学生填写并由实验指导老师签字):

学号:班级:姓名:时间:

实验2 随机布雷

1.实验目的:

本实验的目的是让学生掌握LinkedList类的常用方法。

2.实验要求:

首先编写一个Block类,Block对象具有String类型和boolean类型的成员变量,Block对象可以使用setName(String)方法、getName()方法、isMine()、setBlooean(boolean)方法来设置对象的名字、返回对象的名字,返回对象的boolean类型成员的值、设置对象的boolean类型成员的值。

在主类中,要求用一个Block类型二维数组模拟8×8的方阵,即二维数组的每个单元是一个Block对象,然后将二维数组的各个单元中的对象存放到一个链表中。

要求在8×8的方阵中随机布雷25个。

3.程序模板:

按模板要求,将【代码1】~【代码9】替换为Java程序代码。

MineExample.java

import java.util.*;

class Block {

String name;

boolean boo=false;

public void setName(String name) {

【代码1】// 将参数name传值给成员变量

}

public String getName() {

【代码2】// 返回成员变量name

}

boolean isMine( ) {

【代码3】// 返回成员变量boo

}

public void setBoolean(boolean boo) {

【代码4】// 将参数boo传值给成员变量boo

}

}

public class MineExample {

public static void main(String args[ ]) {

int mine=25;

Block block[ ][ ]=new Block[8][8];

for(int i=0;i<8;i++) {

for(int j=0;j<8;j++) {

block[i][j]=new Block( );

}

}

LinkedList list=【代码5】// 创建list

for(int i=0;i<8;i++) {

for(int j=0;j<8;j++) {

【代码6】//将block[i][j]添加到list

}

}

while(mine>=0) {

int size=【代码7】// 返回list中节点个数

int randomIndex=(int)(Math.random( )*size);

Block b=【代码8】// 返回list中索引值为randomIndex的节点中的对象

b.setName("@");

b.setBoolean(true);

【代码9】// list删除索引值为randomIndex的节点

mine--;

}

for(int i=0;i<8;i++) {

for(int j=0;j<8;j++) {

if(block[i][j].isMine() )

{ }

else {

int mineNumber=0;

for(int k=Math.max(i-1,0);k<=Math.min(i+1,7);k++) {

for(int t=Math.max(j-1,0);t<=Math.min(j+1,7);t++) {

if(block[k][t].isMine() )

mineNumber++;

}

}

block[i][j].setName(""+mineNumber);

}

}

}

for(int i=0;i<8;i++) {

for(int j=0;j<8;j++) {

System.out.printf("%2s",block[i][j].getName() );

}

System.out.printf("%n");

}

}

}

4.实验指导与检查:

向指导老师演示程序的运行效果。

5.实验报告:

实验报告的格式如下(可要求学生填写并由实验指导老师签字):

学号:班级:姓名:时间:

实验3 使用TreeSet排序

1.实验目的:

本实验的目的是让学生掌握TreeSet类的使用。

2.实验要求:

编写一个Java应用程序,用户从键盘输入5个学生的姓名和分数,按成绩排序输出学生的姓名和分数。

3.程序模板:

按模板要求,将【代码1】~【代码4】替换为Java程序代码。

TreeSetExample.java

import java.util.*;

public class TreeSetExample {

public static void main(String args[ ]) {

TreeSet mytree=new TreeSet();

for(int i=0;i<5;i++) {

Scanner read=new Scanner(System.in);

System.out.println("学生的姓名:");

String name=read.nextLine( );

System.out.println("输入分数(整数):");

int score=read.nextInt( );

【代码1】// 向mytree添加Student对象}

Iterator te=【代码2】// mytree返回Iterator对象

while(【代码3】) // 判断te中是否存在元素

{

Student stu=【代码4】// 返回te中的下一个元素

System.out.println(""+https://www.doczj.com/doc/ba9686956.html,+" "+stu.english);

}

}

}

class Student implements Comparable {

int english=0;

String name;

Student(int e,String n) {

english=e;

name=n;

}

public int compareTo(Object b) {

Student st=(Student)b;

return (this.english-st.english);

}

}

4.实验指导与检查:

向指导老师演示程序的运行效果。

5.实验报告:

实验报告的格式如下(可要求学生填写并由实验指导老师签字):

实验4 使用TreeMap排序

1.实验目的:

本实验的目的是让学生掌握TreeMap类的使用。

2.实验要求:

编写一个Java应用程序,用户从键盘输入5个学生的姓名和数学分数、英语分数。程序分别按英语、数学和总分排序输出学生的姓名和分数。

3.程序模板:

按模板要求,将【代码1】~【代码15】替换为Java程序代码。

TreeMapExample.java

import java.util.*;

class MyKey implements Comparable {

int number=0;

MyKey(int number) {

this.number=number;

}

public int compareTo(Object b) {

MyKey st=(MyKey)b;

if((this.number-st.number)==0)

return -1;

else

return (this.number-st.number);

}

}

class Student {

String name=null;

int englishScore,mathScore;

Student(int e,int m,String name) {

englishScore=e;

mathScore=m;

https://www.doczj.com/doc/ba9686956.html,=name;

}

}

public class TreeMapExample {

public static void main(String args[ ]) {

TreeMap treemap1=new TreeMap();

TreeMap treemap2=new TreeMap();

TreeMap treemap3=new TreeMap();

for(int i=1;i<=5;i++) {

Scanner read=new Scanner(System.in);

System.out.println("学生的姓名:");

String name=read.nextLine( );

System.out.println("输入英语分数(整数):");

int englishScore=read.nextInt( );

System.out.println("输入数学分数(整数):");

int mathScore=read.nextInt( );

Student stu=new Student(englishScore,mathScore,name);

【代码1】// 向treemap1添加“键/值”对,其中值为stu,要求按英语成绩排序

【代码2】// 向treemap2添加“键/值”对,其中值为stu,要求按英语成绩排序

【代码3】// 向treemap3添加“键/值”对,其中值为stu,要求按英语成绩排序}

System.out.println("按英语成绩排序:");

Collection collection=【代码4】// treemap1返回实现Collection接口的对象

Iterator iter=【代码5】// collection返回的Iterator

while(【代码6】) // 判断iter中是否存在元素

{

Student te =【代码7】// 返回iter中的下一个元素

System.out.printf("姓名:%s,英语:%d,数学:%d\n",https://www.doczj.com/doc/ba9686956.html,,te.englishScore,te.mathScore);

}

System.out.println("按数学成绩排序:");

collection=【代码8】// treemap2返回实现Collection接口的对象

iter=【代码9】// collection返回的Iterator

while(【代码10】) // 判断iter中是否存在元素

{

Student te =【代码11】// 返回iter中的下一个元素

System.out.printf("姓名:%s,数学:%d,英语:%d\n",https://www.doczj.com/doc/ba9686956.html,,te.mathScore,te.englishScore);

}

System.out.println("按总分排序:");

collection=【代码12】// treemap3返回实现Collection接口的对象

iter=【代码13】// collection返回的Iterator

while(【代码14】) // 判断iter中是否存在元素

{

Student te =【代码15】// 返回iter中的下一个元素

System.out.printf("姓名:%s,总分:%d\n",https://www.doczj.com/doc/ba9686956.html,,te.englishScore+te.mathScore);

}

}

}

4.实验指导与检查:

向指导老师演示程序的运行效果。

5.实验报告:

实验报告的格式如下(可要求学生填写并由实验指导老师签字):

第8章多线程

实验1 线程的状态

1.实验目的:

本实验的目的是让学生掌握线程的四种状态。

2.实验要求:

编写一个Java应用程序,在主线程中再创建两个线程,要求线程经历四种状态:新建、运行、中断和死亡。

3.程序模板:

按模板要求,将【代码1】~【代码10】替换为Java程序代码。

ThreadExample.java

class Tortoise extends Thread {

int sleepTime=0,liveLength=0;

Tortoise(int sleepTime,String name,int liveLength) {

this.sleepTime=sleepTime;

this.liveLength=liveLength;

【代码1】// 设置线程的名字为name

}

public void run() {

while(true) {

liveLength--;

System.out.printf("@");

try

{

【代码2】// 让线程调用sleep()方法进入中断状态,sleepTime毫秒后线程

// 重新排队,等待CUP资源

}

catch(InterruptedException e) {

}

if(liveLength<=0) {

System.out.printf(getName()+"进入死亡状态\n");

【代码3】// 结束run()方法的语句

}

}

}

}

class Rabbit extends Thread {

int sleepTime=0,liveLength;

Rabbit(int sleepTime,String name,int liveLength) {

this.sleepTime=sleepTime;

this.liveLength=liveLength;

【代码4】// 设置线程的名字为name

}

public void run() {

while(true) {

liveLength--;

System.out.printf("*");

try

{

【代码5】// 让线程调用sleep()方法进入中断状态,sleepTime毫秒后

// 线程重新排队,等待CPU资源

}

catch(InterruptedException e) { }

if(liveLength<=0) {

System.out.printf(getName()+"进入死亡状态\n");

【代码6】// 结束run()方法的语句

}

}

}

}

public class ThreadExample {

public static void main(String args[ ]) {

Rabbit rabit;

rabit=【代码7】// 新建线程rabit

Tortoise tortoise;

tortoise=【代码8】// 新建线程tortoise

【代码9】// 启动线程tortoise

【代码10】// 启动线程rabit

}

}

4.实验指导与检查:

向指导老师演示程序的运行效果。

5.实验报告:

实验报告的格式如下(可要求学生填写并由实验指导老师签字):

学号:班级:姓名:时间:

实验2 使用Rannable接口

1.实验目的:

本实验的目的是让学生学习用Tread类创建线程,掌握哪些数据是线程之间共享的,哪些线程是线程独有的。

2.实验要求:

编写一个Java应用程序,

3.程序模板:

按模板要求,将【代码1】~【代码10】替换为Java程序代码。

BankExample.java

class Bank implements Runnable {

【代码1】// 声明一个int类型变量money,初值为100

Thread zhang,keven;

Bank() {

【代码2】// 创建zhang,Bank对象为zhang的目标对象

【代码3】// 设置zhang线程的名字为“会计”

【代码4】// 创建keven,Bank对象为keven的目标对象

【代码5】// 设置keven线程的名字为“出纳”

}

public void run() {

【代码6】// 声明一个int类型变量i,初值为0

while(true) {

if(【代码7】) // 判断线程zhang是否正在占有CPU资源

{

i=i+1;

money=money+1;

System.out.printf("\n%s将money的值改为%d\t",zhang.getName(),money);

System.out.printf("%s的局部变量i=%d\n",zhang.getName(),i);

if(i>=6) {

System.out.printf("%s线程进入死亡状态\n",zhang.getName());

【代码8】// 使得线程zhang进入死亡状态

}

try{ Thread.sleep(1000);

}

catch(InterruptedException e) { }

}

else if(【代码9】) // 判断线程keven是否正在占有CPU资源

{

i=i-1;

money=money-1;

System.out.printf("\n%s将money的值改为%d\t",keven.getName(),money);

System.out.printf("%s的局部变量i=%d\n",keven.getName(),i);

if(i<=-6) {

System.out.printf("%s线程进入死亡状态\n",keven.getName());

【代码10】// 使得线程keven进入死亡状态

}

try{ Thread.sleep(1000);

}

catch(InterruptedException e) { }

}

}

}

}

public class BankExample {

public static void main(String args[ ]) {

Bank bank=new Bank();

bank.zhang.start();

bank.keven.start();

}

}

4.实验指导与检查:

向指导老师演示程序的运行效果。

5.实验报告:

实验报告的格式如下(可要求学生填写并由实验指导老师签字):

实验3 吵醒休眠的线程

1.实验目的:

本实验的目的是让学生掌握线程的interrupt()方法。

2.实验要求:

编写一个Java应用程序,在主线程中有3个线程:zhangWorker,wangWorker和boss。线程zhangWorker和wangWorker分别负责在命令行输出“搬运苹果”和“搬运香蕉”,这两个线程分别各自输出20行,每输出一行信息就休息10秒钟,但是boss线程负责不让zhangWorker和wangWorker休息。

3.程序模板:

按模板要求,将【代码1】~【代码7】替换为Java程序代码。

ShopExample.java

class Shop implements Runnable {

Thread zhangWorker,wangWorker,boss;

Shop() {

【代码1】// 创建boss,Shop对象为boss目标对象

【代码2】// 创建zhangWorker,Shop对象为boss目标对象

【代码3】// 创建wangWorker,Shop对象为boss目标对象

zhangWorker.setName("张工");

wangWorker.setName("王工");

boss.setName("老板");

}

public void run() {

int i=0;

if(Thread.currentThread()==zhangWorker) {

while(true) {

try{ i++;

System.out.printf("\n%s已搬运了%d箱苹果\n",zhangWorker.getName(),i);

if(i==3)

return;

【代码4】// zhangWorker休眠10秒(10000毫秒)

}

catch(InterruptedException e) {

System.out.printf("\n%s让%s继续工作",

boss.getName(),zhangWorker.getName());

}

}

}

else if(Thread.currentThread()==wangWorker) {

while(true) {

try{ i++;

System.out.printf("\n%s已搬运了%d箱香蕉\n",wangWorker.getName(),i);

if(i==3)

return;

【代码5】// wangWorker休眠10秒(10000毫秒)

}

catch(InterruptedException e) {

System.out.printf("\n%s让%s继续工作",

boss.getName(),wangWorker.getName());

}

}

}

else if(Thread.currentThread()==boss) {

while(true) {

【代码6】// 吵醒zhangWorker

【代码7】// 吵醒wangWorker

if(!(wangWorker.isAlive()||zhangWorker.isAlive())) {

System.out.printf("%n%s下班",boss.getName());

return;

}

}

}

}

}

public class ShopExample {

public static void main(String args[]) {

Shop shop=new Shop();

shop.zhangWorker.start();

shop.wangWorker.start();

shop.boss.start();

}

}

4.实验指导与检查:

向指导老师演示程序的运行效果。

5.实验报告:

实验报告的格式如下(可要求学生填写并由实验指导老师签字):

学号:班级:姓名:时间:

实验4 排队买票

实验目的:

本实验的目的是让学生掌握怎样处理多线程中的同步问题,学会使用wait()、notify()和notifyAll()方法。

2.实验要求:

编写一个Java应用程序,模拟5个人排队买票。售票员只有1张5元的钱,电影票五元钱一张。假设5个人的名字及排队顺序是:赵、钱、孙、李、周。“赵”拿1张二十元的人民币买2张票,“钱”拿1张二十元的人民币买1张票,“孙”拿1张十元的人民币买1张票,“李”拿1张十元的人民币买2张票,“周”拿1张五元的人民币买1张票,要求售票员按如下规则找零:

①二十元买2张票,找零:1张十元;不许找零:2张五元。

②二十元买1张票,找零:1张十元,1张五元;不许找零:3张五元。

③十元买1张票,找零:1张五元。

3.程序模板:

按模板要求,将【代码1】~【代码7】替换为Java程序代码。

SaleExample.java

class TicketSeller // 负责卖票的类

{

int fiveNumber=1,tenNumber=0,twentyNumber=0;

public synchronized void sellTicket(int receiveMoney,int buyNumber) {

if(receiveMoney==5) {

fiveNumber=fiveNumber+1;

System.out.printf("\n%s给我5元钱,这是您的1张入场卷",

Thread.currentThread().getName());

}

else if(receiveMoney==10&&buyNumber==2) {

tenNumber=tenNumber+1;

System.out.printf("\n%s给我10元钱,这是您的2张入场卷",

Thread.currentThread().getName());

}

else if(receiveMoney==10&&buyNumber==1) {

while(【代码1】) // 给出线程需等待的条件

{ try { System.out.printf("\n%30s靠边等",Thread.currentThread().getName());

【代码2】// 线程进入等待状态

System.out.printf("\n%30s结束等待\n",Thread.currentThread().getName());

}

catch(InterruptedException e) { }

}

fiveNumber=fiveNumber-1;

tenNumber=tenNumber+1;

System.out.printf("\n%s给我10元钱,找您5元,这是您的1张入场卷",

Thread.currentThread().getName());

}

else if(receiveMoney==20&&buyNumber==1) {

while(【代码3】) // 给出线程需等待的条件

{ try { System.out.printf("\n%30s靠边等",Thread.currentThread().getName());

【代码4】// 线程进入等待状态

System.out.printf("\n%30s结束等待",Thread.currentThread().getName());

}

catch(InterruptedException e) { }

}

fiveNumber=fiveNumber-1;

tenNumber=tenNumber-1;

twentyNumber=twentyNumber+1;

System.out.printf("\n%s给20元钱,找您一张5元和一张10元,这是您的1张入场卷",

Thread.currentThread().getName());

}

else if(receiveMoney==20&&buyNumber==2) {

while(【代码5】) // 给出线程需等待的条件

{ try { System.out.printf("\n%30s靠边等\n",Thread.currentThread().getName());

【代码6】// 线程进入等待状态

System.out.printf("\n%30s结束等待",Thread.currentThread().getName());

}

catch(InterruptedException e) { }

}

tenNumber=tenNumber 1;

twentyNumber=twentyNumber+1;

System.out.printf("\n%s给20元钱,找您一张10元,这是您的2张入场卷",

Thread.currentThread().getName());

}

【代码7】// 通知等待的线程结束等待

}

}

class Cinema implements Runnable // 实现Runnable接口的类

{

Thread zhao,qian,sun,li,zhou; // 电影院中买票的线程

TicketSeller seller; // 电影院的售票员

Cinema() {

zhao=new Thread(this);

qian=new Thread(this);

sun=new Thread(this);

li=new Thread(this);

zhou=new Thread(this);

zhao.setName("赵");

qian.setName("钱");

sun.setName("孙");

li.setName("李");

zhou.setName("周");

seller=new TicketSeller();

}

public void run() {

if(Thread.currentThread()==zhao)

seller.sellTicket(20,2);

else if(Thread.currentThread()==qian)

seller.sellTicket(20,1);

else if(Thread.currentThread()==sun)

seller.sellTicket(10,1);

else if(Thread.currentThread()==li)

seller.sellTicket(10,2);

else if(Thread.currentThread()==zhou)

seller.sellTicket(5,1);

}

}

public class SaleExample {

public static void main(String args[]) {

Cinema cinema=new Cinema();

cinema.zhao.start();

try{ Thread.sleep(1000);

}

catch(InterruptedException e) { }

cinema.qian.start();

try{ Thread.sleep(1000);

}

catch(InterruptedException e) { }

cinema.sun.start();

try{ Thread.sleep(1000);

}

catch(InterruptedException e) { }

cinema.li.start();

try{ Thread.sleep(1000);

}

catch(InterruptedException e) { }

cinema.zhou.start();

}

}

4.实验指导与检查:

向指导老师演示程序的运行效果。

5.实验报告:

实验报告的格式如下(可要求学生填写并由实验指导老师签字):学号:班级:姓名:时间:

实验5 线程联合

1.实验目的:

本实验的目的是让学生掌握线程的联合。

2.实验要求:

编写一个Java应用程序,在主线程中再创建3个线程:“运货司机”、“装运工”和“仓库管理员”。要求线程“运货司机”在占有CPU资源后立刻联合线程“装运工”,也就是让“运货司机”一直等到“装运工”完成工作才能开车,而“装运工”在占有CPU资源后立刻联合线程“仓库管理员”,也就是让“装运工”一直等到“仓库管理员”打开仓库才能开始搬运货物。

3.程序模板:

按模板要求,将【代码1】和【代码2】替换为Java程序代码。

JoinExample.java

class JoinThread implements Runnable {

Thread 运货司机,装运工,仓库管理员;

String step[ ]={"打开车锁","把握方向盘","挂挡","踩油门","开车"};

JoinThread() {

运货司机=new Thread(this);

装运工=new Thread(this);

仓库管理员=new Thread(this);

运货司机.setName("运货司机");

装运工.setName("装运工");

仓库管理员.setName("仓库管理员");

}

public void run(){

if(Thread.currentThread()==运货司机) {

System.out.printf("\n%s等%s", 运货司机.getName(),装运工.getName());

try{ 【代码1】// 占有CPU资源期间联合线程:装运工

}

catch(InterruptedException e) { }

for(int i=0;i

System.out.printf("\n%s%s", 运货司机.getName(),step[i]);

try{ 运货司机.sleep(500);

}

catch(InterruptedException ee) { }

}

}

else if(Thread.currentThread()==装运工) {

System.out.printf("\n%s等%s",装运工.getName(),仓库管理员.getName());

try{ 【代码2】// 占有CPU资源期间联合线程:仓库管理员

}

catch(InterruptedException e) { }

for(int i=1;i<=10;i++) {

System.out.printf("\n%s搬运第%d箱货物到货车", 装运工.getName(), i);

try{ 装运工.sleep(1500);

}

catch(InterruptedException ee) { }

}

}

else if(Thread.currentThread()==仓库管理员) {

for(int i=1;i<=5;i++) {

System.out.printf("\n%s打开第%d道门", 仓库管理员.getName( ), i) ;

try{ 仓库管理员.sleep(1000);

}

catch(InterruptedException e) { }

}

}

}

}

public class JoinExample {

public static void main(String args[ ]) {

JoinThread a=new JoinThread ( );

a.运货司机.start( );

a.装运工.start( );

a.仓库管理员.start( );

}

}

4.实验指导与检查:

向指导老师演示程序的运行效果。

5.实验报告:

实验报告的格式如下(可要求学生填写并由实验指导老师签字):

学号:班级:姓名:时间:

数据库实验

数据库实验 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

数据库原理实验指导 实验前准备: 请设计一个企业销售管理据库,其中需要保存的信息如下: 员工信息,包括:员工编号、员工姓名、性别、所属部门、职称、到职日、生日、薪水、填表日期; 客户信息,包括:客户号,客户名称,客户住址,客户电话、邮政编码; 产品信息,包括:产品编号,产品名称; 员工和客户可以签订订单,每签订一个订单,就要保存订单信息,包括:订单编号、客户号、业务员编号、订单金额、订货日期、出货日期、发票号码。 此外,每个订单可能涉及到多种产品,每种产品可能被多个订单订购。因此需要每个订单中每类产品的销售明细,包括每种产品的销售数量、单价、订单日期; 要求: (1)给出系统的ER图(可以用word或其它画图工具,如Visio画),要求画出所有的实体,联系,属性以及联系的类型; (2)将ER图转换为关系模型; 实验一 实验名称:数据定义(2课时) 一、实验目的

1、理解数据库模式的概念,通过使用SQL SERVER企业管理器或者My Sql建立数据库和基本表。模式为人事表、客户表、销售表、销售明细表、产品表。熟悉SQL SERVER企业管理器的使用,并将得到的表生成脚本,然后保存。 2、理解上述基本表之间的关系,建立关系表。 3、掌握修改表结构的基本方法 4、掌握索引和视图的创建方法 二、实验环境 MS SQL SERVER或者My Sql。 三、实验内容与步骤 1、建立一个数据库和五张表的表结构。 (1)/*员工人事表employee */ Create datebase sale; create table employee( emp_no char(5) Not null primary key, emp_name char(10) Not null, sex char(1) Not null,

数据库原理上机实验指导

数据库原理上机实验指导 一、实验目的和要求 1.实验目的 力图通过本实践课程的学习,使学生掌握数据库管理系统的基本概念、操作方法和管理方法,能够根据用户应用需求设计出合理的数据库应用系统逻辑模型方案,并且实现之。 2.实验要求 本实践课程主要介绍Microsoft SQL Server 2000系统的基本概念、基本知识;讲述数据库管理系统的安装、操作、设计、管理等基本概念及其操作方法;学习如何创建和管理数据库系统的步骤,为承担DBA角色作好准备。重点要求掌握Transact-SQL语言,学会数据库应用系统逻辑模型的设计和实现。 要求学生实验前认真准备,实验后提供实验报告,给出详细实验结果以及设计依据。 实验报告的格式应采用统一封面,统一的实验报告纸。封面应包括:课程名称、实验序号、名称、专业、班级、姓名、同组实验者、实验时间。实验报告内容应包括:实验名称、目的、内容、实验步骤、实验记录、数据处理(或原理论证、或实验现象描述、或结构说明等)。 二、实验环境介绍 1.硬件设备要求 微型计算机,最好具有局域网环境 2.软件设备要求 Windows 2000或Windows XP操作系统; MS SQL Server 2000数据库管理系统。 三、实验内容和学时分配 1.实验内容 实验1:服务器管理 实验2:创建和管理数据库 实验3:Transact-SQL语言——数据查询 实验4:Transact-SQL语言——数据定义与数据更新 实验5:数据库安全与保护——用户管理和权限管理 实验6:数据库安全与保护——数据完整性 实验7:数据库安全与保护——数据库的一致性和并发性 实验8:数据库安全与保护——数据库的备份与恢复 实验9:存储过程和触发器 实验10:嵌入式SQL的使用

#(16课时)数据库实验指导书

《数据库原理及使用》实验指导书 (适用于计算机科学和技术、软件工程专业) 热风器4 计算机科学和技术学院 2011年12月 ⒈本课程的教学目的和要求 数据库系统产生于20世纪60年代末。30多年来,数据库技术得到迅速发展,已形成较为完整的理论体系和一大批实用系统,现已成为计算机软件领域的一个重要分支。数据库原理是计算科学和技术专业重要的专业课程。 本课程实验教学的目的和任务是使学生通过实践环节深入理解和掌握课堂教学内容,使学生得到数据库使用的基本训练,提高其解决实际问题的能力。 ⒉实验教学的主要内容 数据库、基本表、视图、索引的建立和数据的更新;关系数据库的查询,包括单表查询、连接查询、嵌套查询等;数据库系统的实现技术,包括事务的概念及并发控制、恢复、完整性和安全性实现机制;简单数据库使用系统的设计实现。 ⒊实验教学重点 本课程的实验教学重点包括: ⑴数据库、基本表、视图、索引的建立和数据的更新; ⑵SQL的数据查询; ⑶恢复、完整性和安全性实现机制; ⑷简单数据库使用系统的设计实现; 4教材的选用 萨师煊,王珊.数据库系统概论(第四版).北京:高等教育出版社.2006,5 实验1创建数据库(2学时) 实验目的 1.学会数据表的创建; 2.加深对表间关系的理解; 3.理解数据库中数据的简单查询方法和使用。 实验内容 一、给定一个实际问题,实际使用问题的模式设计中至少要包括3个基本表。使用问题是供应商给工程供应零件(课本P74)。 1.按照下面的要求建立数据库: 创建一个数据库,数据库名称可以自己命名,其包含一个主数据文件和一个事务日志文件。注意主数据文件和事务日志文件的逻辑名和操作系统文件名,初始容量大小为5MB,

pb实验指导

实验一数据库的创建与连接 目的和要求 (1)掌握PowerBuidler9.0数据库的创建与连接方法; (2)创建一个SQL Server数据库,为其配置ODBC数据源和DBProfile,然后在PowerBuilder环境中连接数据库; (3)创建数据库中的表,管理表并输入数据到表中。 上机准备 (l)启动Windows操作系统,如果在Windows操作系统的控制面板中没有安装ODBC32,必须进行ODBC的安装; (2)进人PowerBuilder 9.0集成环境,熟悉系统环境; (3)创建的应用个人应用mypb; (4)复习创建数据库的有关内容。 上机步骤 1..创建SQL Server 数据库 创建SQL Server数据库的步骤: (1)运行SQL Server 服务; (2)运行SQL Server 企业管理器; (3)创建student数据库; (4)在student数据库中,创建student表(见表1)。 2.配置ODBC 数据源 配置ODBC数据源的步骤: (1)在PowerBuilder数据库画板的窗口中,双击ODBC项下Utlities项的“ODBC Administrator”项,将弹出“ODBC数据源管理器”对话框: (2)选择“用户DSN”页,在该页的列表框中,列出了已有的数据源,若要修改已有的数据源,可以中击“配置”按钮进行修改。这里,我们需要添加一个ODBC数据源,所以,中击“添加”按钮创建新数据源,将出现标题为“创建新数据源”的对话框; (3)在“创建新数据源”的对话框中提供了一个系统支持的数据库驱动程序列表框,选择合适的驱动程序。这儿我们选择SQL Server,单击“完成”按钮,将弹出“创建SQL Server 新数据源”对话框; (4)输入新的数据源名称,这里为mydb。然后,选择想连接的SQL Server服务器,可选择local,然后单击“下一步”按钮; (5)选择SQL Server验证,登录ID 为sa,密码默认为空,然后单击“下一步”按钮; (5)更改默认的数据库为student,然后单击“下一步”按钮; (5)默认系统值,然后单击“完成”按钮;

福建工程学院《实验指导书(数据库系统原理及应用)》

数据库系统原理 实验指导书 (本科)

目录 实验一数据定义语言 (1) 实验二SQL Sever中的单表查询 (3) 实验三SQL Serve中的连接查询 (4) 实验四SQL Serve的数据更新、视图 (5) 实验五数据控制(完整性与安全性) (7) 实验六语法元素与流程控制 (9) 实验七存储过程与用户自定义函数 (11) 实验八触发器 (12)

实验一数据定义语言 一、实验目的 1.熟悉SQL Server2000/2005查询分析器。 2.掌握SQL语言的DDL语言,在SQL Server2000/2005环境下采用Transact-SQL实现表 的定义、删除与修改,掌握索引的建立与删除方法。 3.掌握SQL Server2000/2005实现完整性的六种约束。 二、实验内容 1.启动SQL Server2000/2005查询分析器,并连接服务器。 2.创建数据库: (请先在D盘下创建DB文件夹) 1)在SQL Server2000中建立一个StuDB数据库: 有一个数据文件:逻辑名为StuData,文件名为“d:\db\S tuDat.mdf”,文件初始大小为5MB,文件的最大大小不受限制,文件的增长率为2MB; 有一个日志文件,逻辑名为StuLog,文件名为“d:\db\StuLog.ldf”,文件初始大小为5MB,文件的最大大小为10MB,文件的增长率为10% 2)刷新管理器查看是否创建成功,右击StuDB查看它的属性。 3.设置StuDB为当前数据库。 4.在StuDB数据库中作如下操作: 设有如下关系表S:S(CLASS,SNO, NAME, SEX, AGE), 其中:CLASS为班号,char(5) ;SNO为座号,char(2);NAME为姓名,char(10),设姓名的取值唯一;SEX为性别,char(2) ;AGE为年龄,int,表中主码为班号+座号。 写出实现下列功能的SQL语句。 (1)创建表S; (2)刷新管理器查看表是否创建成功; (3)右击表S插入3个记录:95031班25号李明,男性,21岁; 95101班10号王丽,女性,20岁; 95031班座号为30,名为郑和的学生记录; (4)将年龄的数据类型改为smallint; (5)向S表添加“入学时间(comedate)”列,其数据类型为日期型(datetime); (6)对表S,按年龄降序建索引(索引名为inxage); (7)删除S表的inxage索引; (8)删除S表; 5.在StuDB数据库中, (1)按照《数据库系统概论》(第四版)P82页的学生-课程数据库创建STUDENT、COURSE 和SC三张表,每一张表都必须有主码约束,合理使用列级完整性约束和表级完整性。 并输入相关数据。 (2)将StuDB数据库分离,在D盘下创建DB文件夹下找到StuDB数据库的两个文件,进行备份,后面的实验要用到这个数据库。 6.(课外)按照《数据库系统概论》(第四版)P74页习题5的SPJ数据库。创建SPJ数据 库,并在其中创建S、P、J和SPJ四张表。每一张表都必须有主码约束,合理使用列级完整性约束和表级完整性。要作好备份以便后面的实验使用该数据库数据。 三、实验要求:

Oracle 数据库上机试验指导2(答案)

实验二代码参考: 1.-- 创建学生表 create table student ( studid char(6) primary key, studname varchar2(16) not null, gender char(4) check(gender in('男','女')), addr varchar2(256) ); -- 创建课程表 create table course ( courseid char(6) primary key, coursename varchar2(32) not null unique, teacher varchar2(16) , score number check(score in (1,3,5)) ); -- 创建选课表 create table courSelc ( recid number(4) primary key, studid char(6), courseid char(6), score number(2) check(score >=0 and score <=100), constraint fk_stud foreign key(studid) references student(studid), constraint fk_cour foreign key(courseid) references course(courseid) ); 2. alter table student modify studName null; 3.1 alter table course modify courseName null; 3.2 alter table course add examdate date; 4.insert into course values('M1001','数学','奥巴马','3',to_date('2012-1- 1','yyyy-mm-dd')); insert into course values('J2002','军事理论','拿破仑','5',to_date('2012-1-1','yyyy-mm-dd'));

数据库系统概论实验指导(第六版)

数据库系统概论实验指导 (第六版) 计算机学院 2010/09

改版履历

目录 目录 (3) 1.实验概要 (4) 1.1.实验说明 (4) 1.2.实验环境和配置 (4) 1.3.上机要求 (4) 2.实验1:数据库/表的基本操作和表级约束 (5) 2.1.目的和要求 (5) 2.2.实验准备 (5) 2.3.实验内容 (5) 3.实验2:库级约束和基本表的数据操作 (8) 3.1.目的和要求 (8) 3.2.实验准备 (8) 3.3.实验内容 (8) 4.实验3:视图操作和安全性控制 (10) 4.1.目的和要求 (10) 4.2.实验准备 (10) 4.3.实验内容 (10) 5.实验4:存储过程/触发器/ODBC数据库编程 (12) 5.1.目的与要求 (12) 5.2.实验准备 (12) 5.3.实验内容 (12) 6.实验5:数据库综合实验 (14) 6.1.目的与要求 (14) 6.2.实验准备 (14) 6.3.实验内容 (14) 5.3.1.题目一:零件交易中心管理系统 (15) 5.3.2.题目二:图书管理系统 (15) 5.3.3.题目三:民航订票管理系统 (15) 5.3.4.题目四:学生学籍管理系统 (15) 5.3.5.题目五:车站售票管理系统 (16) 5.3.6.题目六:企业人事管理系统 (16) 5.3.7.题目七:电话交费管理系统 (16) 5.3.8.题目八:医药销售管理系统 (16) 7.附录:实验报告格式 (17)

1.实验概要 1.1.实验说明 内容:本课程实验分5次完成,每次完成一部分。具体内容参考本指导的后半部分。 成绩:每次实验100分,最后取所有实验的平均分作为实验的总成绩。评分标准如下: 上述每一项按照百分制给出分值,最后按照比率计算每次实验的最终成绩。 实验报告 每次实验需提交电子版的实验报告(最后一次实验需提交设计文档,源程序等相关资料)。每次实验结束时,将写好的实验报告,提交给各班辅导老师。如果确有困难没有完成的情况下,课后自己完成之后提交到辅导老师的邮箱里。由辅导老师根据课堂上机实验检查状况和实验报告的内容给出每次实验的成绩。 实验报告的内容包括:实验内容、实验步骤、程序源码、运行结果(可以是程序的输出,也可以是运行画面的抓屏,抓屏图片要尽可能的小,否则文件太大)。每份实验报告是一个WORD文档。实验报告命名规则如下:DBx(实验次数)_XXXXXX(学号)_姓名例如:052978的学生的第一次实验报告文件名: DB1_052978_李宁注意:请每个人保存好自己的实验报告的电子版,直到该门课考试成绩公布之后。 1.2.实验环境和配置 SQL Server 2008(Microsoft SQL Server 2008 Express With Advance Service) 1.3.上机要求 ●上机之前,请做好预习,需要写一个简单的预习报告,格式不限。 ●严格遵守实验室的各项规定。

数据库实验指导书++数据库系统概论(第四版)++王珊、萨师煊

目录 实验一熟悉POWER DESIGNER (2) 实验二SQL SERVER 2000的安装与使用 (6) 实验三创建数据库、表 (17) 实验四SQL SERVER2000查询分析器 (29) 实验五SQL语言的DDL (38) 实验六SQL语言的DML初步 (40) 实验七DML的数据查询 (43) 实验八SQL语言综合练习 (48) 实验九嵌入式SQL ...................... 错误!未定义书签。实验十数据库设计....................... 错误!未定义书签。

实验一熟悉Power Designer 一、实验目的 1、掌握安装并破解PD的方法。 2、通过阅读和分析应用实例“学生选课系统CDM”,了解和熟悉Power Designer CDM及其相关知识。 3.掌握运用Power Designer工具建立CDM的方法。 4.初步掌握从Power Designer CDM生成相应的PDM的方法。 二、实验内容及实验步骤 1、PD环境的介绍 Power Designer的4种模型文件: (1) 概念数据模型(CDM) CDM 表现数据库的全部逻辑的结构,与任何的软件或数据储藏结构 无关。一个概念模型经常包括在物理数据库中仍然不实现的数据对 象。它给运行计划或业务活动的数据一个正式表现方式。 (2)物理数据模型(PDM) :PDM 叙述数据库的物理实现。 藉由PDM ,你考虑真实的物理实现的细节。你能修正PDM 适合你的表现或物理约束。 (3)面向对象模型(OOM) 一个OOM包含一系列包,类,接口, 和他们的关系。这些对象一起形成所有的( 或部份) 一个软件系统的逻辑的设计视图的类结构。 一个OOM本质上是软件系统的一个静态的概念模型。 (4)业务程序模型(BPM) BPM 描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述程序,流程,信息和合作协议之间的交互作用 2、创建CDM(以学生选课系统为例) (1)新建一个CDM,命名为CssCdm(css,Course SelectionSystem ) (2)创建“学生”、“课程”实体和“选课”联系,并命名 (3)为各实体和联系创建属性 学生(学号,姓名,性别,年龄)

数据库上机实验总结(含代码)

实验一 (1)无条件单表查询 select sname NAME,'year of birth:' BIRTH,2004-sage BIRTHDAY,LOWER(sdept) DEPARTMENT FROM student; (2)有条件单表查询 SELECT sname,sdept,sage FROM student WHERE sage NOT BETWEEN 20 AND 23; (3)单表嵌套(一层)查询 SELECT sno,sname,sdept FROM student WHERE sdept IN(SELECT sdept FROM student WHERE sname='刘晨'); (4)复合条件多表查询 SELECT student.sno,sname,cname,grade FROM student ,sc,course WHERE student.sno=sc.sno AND https://www.doczj.com/doc/ba9686956.html,o=https://www.doczj.com/doc/ba9686956.html,o; (5)使用COUNT()的单表查询 SELECT COUNT(*) FROM student; (6)使用AVG()的单表查询 SELECT AVG(grade) '平均成绩' from SC where CNO='1'; (7)查询结果分组 SELECT cno,COUNT(sno) '人数' FROM sc GROUP BY cno; (8)查询结果排序 SELECT * FROM student ORDER BY sdept,sage DESC; (9)使用通配符的查询 SELECT sname,sno,ssex FROM student WHERE sname NOT LIKE'刘%'; (10)使用换码字符的单表查询 SELECT cno,ccredit FROM course WHERE cname LIKE 'DB\_Design'ESCAPE'\'; (11)插入单个元组 插入一个新学生元组 Insert into student (sno,sname,ssex,sdept,sage) values ('200215128','陈冬','男','IS',18) (12)插入子查询结果 对每一个系,求学生平均年龄,并把结果存入数据库 Create table dept_age(sdept char(15),avg_age int) Insert into dept_age(sdept,avg_age) select sdept,avg(sage) from student group by sdept (13)修改某个元组的值 将学生200215121的年龄改为22岁 Update student set sage=’22’ where sno=’200215121’ (14)修改多个元组的值

数据库实验报告

数据库实验报告

数据库原理及应用(本科)实验指导书 -计算机信息教研室- 二○一二年五月 精心整理,用心做精品0

目录 实验1 创建数据库与数据表 (2) 实验2 简单查询和连接查询 (10) 实验3 嵌套查询和集合查询 (12) 实验4 数据完整性 (14) 精心整理,用心做精品1

时间:机房号:得分: 实验1 创建数据库与数据表 实验目的: 1.熟悉SQL SERVER环境; 2.掌握数据库和数据表的创建和删除,实践SQL的CREATE、ALTER 和DROP命令; 3.掌握数据表的创建和数据记录的插入方法。 实验内容: 1. 创建教学管理“JXGL”数据库,并建立学生STUDENT、课程COURSE 和选修SC三个数据表,各表中的数据如下所示: 学生STUDENT: Sno Sname Ssex Sage Sdept 95001 李勇M 20 CS 95002 刘晨 F 19 IS 95003 王敏 F 18 MA 95004 张立M 18 IS 课程COURSE: Cno Cname Cpno Ccredit 1 数据库 5 4 2 数学 2 3 信息系统 1 4 4 操作系统 6 3 5 数据结构7 4 6 数据处理 2 精心整理,用心做精品2

7 C语言 6 4 选修SC: Sno Cno Grade 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95002 3 80 2. 创建供应系统“GYXT”数据库,其中包括供应商表S、零件表P、工程项目表J和供应情况表SPJ四个数据表,各表中数据如下所示。 供应商S: SNO SNAME CITY S1 精益天津 S2 万胜北京 S3 东方北京 S4 丰泰隆上海 S5 康健南京 零件P: PNO PNAME COLOR WEIGHT P1 螺母红12 P2 螺栓绿17 P3 螺丝刀蓝14 P4 螺丝刀红14 P5 凸轮蓝40 P6 齿轮红30 工程项目J: JNO JNAME CITY J1 三建北京 J2 一汽长春 J3 弹簧厂天津 J4 造船厂天津 精心整理,用心做精品3

大型数据库系统(SQL Server 2005)--实验指导讲义

实验一SQL Server 2005数据库服务器界面使用及数据库原理知 识的应用 1.实验目的 (1)通过使用SQL Server 2005的控制界面感受SQL Server 2005。 (2)熟悉SQL Server 2005所需的软、硬件要求。 (3)熟悉SQL Server 2005支持的身份验证种类。 (4)掌握SQL Server 2005服务的几种启动方法。 (5)掌握SQL Server Management Studio的常规使用。 (6)掌握关系数据库的逻辑设计方法——E-R图。 2.实验准备 (1)了解SQL Server Management Studio的常规使用。 (2)了解SQL Server 2005所需的软、硬件要求。 (3)了解SQL Server 2005支持的身份验证种类。 (4)了解SQL Server 2005服务的几种启动方法。 (5)了解关系数据库的逻辑设计方法——E-R图。 3.实验内容 (1)分别使用“Windows身份验证模式”和“SQL Server和Windows身份验证模式”登录SQL Server 2005集成控制台。 (2)利用SQL Server Configuration Manager配置SQL Server 2005服务器。 (3)利用SQL Server 2005创建的默认帐户,通过注册服务器向导首次注册服务器。 (4)试着创建一些由SQL Server 2005验证的账户,删除第一次注册的服务器后用新建的账户来注册服务器。 (5)为某一个数据库服务器指定服务器别名,然后通过服务器别名注册该数据库服务器。 (6)熟悉和学习使用SQL Server Management Studio。 (7)设计E-R图。参照书上19页的优化模式,要求注明实体的主码、联系的类型和主码。

数据库实验报告

合肥师范学院实验报告册 2014 / 2015 学年第2学期 系别计算机学院 实验课程数据库原理 专业 班级 姓名 学号 指导教师

实验一——数据库基本操作 一、实验目的 1.熟悉MS SQL SERVER运行界面,掌握服务器的基本操作。 2.掌握界面操作方法完成用户数据库建立、备份和还原。 3.建立两个实验用的数据库,使用企业管理器和查询分析器对数据库和表进行基本操作。 二、实验预习内容 在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。 1.熟悉SQL SERVER 2000 的运行环境,练习服务器基本操作:打开、停止、关闭。 2.使用SQL SERVER 2000 中的企业管理器完成以下任务。 数据库名称:STC 表:STU(sno char(9), sname varchar(50), ssex char(2) , sage int, sdept char(2) ); COUTSES(cno char(3), cname varchar(50), cpno char(3), credit int ); SC(sno char(9), cno char(3), grade int ); 说明:以上为表结构,以sno char(9)为例,说明sno属性设置为字符类型,宽度为9,int指整型数据。 1)建立数据库STC,分别建立以上三张表,并完成数据录入。(表结构及数据参见教材)2)分析并建立各表的主码,用下划线在上面表结构中标出主码。 3)建立各表之间的关联,请简述操作步骤。 (1)CREATE TABLE Stu ( sno char(9), sname varchar(50), ssex char(2), sage int, sdept char(2) ); CREATE TABLE COURSE ( cno char(3), cname varchar(50), cpno char(3), credit int); CREATE TABLE SC ( sno char(9), cno char(3), grade int); 4)参考实验指导书的【第5章数据库的备份和还原】,使用企业管理器对数据库STC 进行备份,并尝试在个人电脑与机房电脑上进行还原,请简述备份、还原操作的步骤。

桂林理工《数据库原理及应用》实验指导(改版)

数据库原理及应用(本科)实验指导书 -计算机信息教研室- 桂林理工大学信息科学与工程学院 二○一二年五月

目录 实验 1 创建数据库与数据表 (2) 实验2 简单查询和连接查询 (10) 实验3 嵌套查询和集合查询 (12) 实验4 数据完整性 (14)

时间:机房号:得分: 实验1 创建数据库与数据表 实验目的: 1.熟悉SQL SERVER环境; 2.掌握数据库和数据表的创建和删除,实践SQL的CREATE、ALTER和DROP命令; 3.掌握数据表的创建和数据记录的插入方法。 实验内容: 1. 创建教学管理“JXGL”数据库,并建立学生STUDENT、课程COURSE和选修SC 三个数据表,各表中的数据如下所示: 学生STUDENT: Sno Sname Ssex Sage Sdept 95001 李勇M 20 CS 95002 刘晨 F 19 IS 95003 王敏 F 18 MA 95004 张立M 18 IS 课程COURSE: Cno Cname Cpno Ccredit 1 数据库 5 4 2 数学 2 3 信息系统 1 4 4 操作系统 6 3 5 数据结构7 4 6 数据处理 2 7 C语言 6 4 选修SC: Sno Cno Grade 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95002 3 80 2. 创建供应系统“GYXT”数据库,其中包括供应商表S、零件表P、工程项目表J 和供应情况表SPJ四个数据表,各表中数据如下所示。

供应商S: SNO SNAME CITY S1 精益天津 S2 万胜北京 S3 东方北京 S4 丰泰隆上海 S5 康健南京 零件P: PNO PNAME COLOR WEIGHT P1 螺母红12 P2 螺栓绿17 P3 螺丝刀蓝14 P4 螺丝刀红14 P5 凸轮蓝40 P6 齿轮红30 工程项目J: JNO JNAME CITY J1 三建北京 J2 一汽长春 J3 弹簧厂天津 J4 造船厂天津 J5 机车厂唐山 J6 无线电厂常州 J7 半导体厂南京 供应情况SPJ: SNO PNO JNO QTY S1 P1 J1 200 S1 P1 J3 100 S1 P1 J4 700 S1 P2 J2 100 S2 P3 J1 400 S2 P3 J2 200 S2 P3 J4 500 S2 P3 J5 400 S2 P5 J1 400 S2 P5 J2 100 S3 P1 J1 200

数据库系统实验

实验指导书 班级:090402 姓名:郑锦坤

序言 数据库是数据管理的最新技术,是计算机科学的重要分支。通过学习重点让大家掌握数据库技术的程序设计思想和方法,学习开发管理系统的技术,并结合PB8.0以上版本和SQL SERVER 2000以上版本上机环境编程测试。 为了达到这个目的,这里安排五个实验单元。 实验报告的内容 1.题目 描述每个实验的内容是什么。 2.需求分析 用E-R图描述数据库的模式设计及每个关系模式的建立;描述数据字典及程序数据流;每个事件、函数或过程 的头和规格说明; 3.源程序清单和结果 源程序要加注释,要有测试数据及结果。

实验1:学习SQL 语句与SQL SERVER的数据库环境(4学时) 本次实验的主要目的在于学会使用SQL SERVER环境建 库的方法,学会SQL SERVER企业管理器和查询分析器的使用,通过数据库操纵环境,了解库的建立、表的建立、数据库 的查询实现方法。实验数据如下: Student SC

实验报告 1 日期: 一.SQL语句实验题目: 1.建立课程表 2.建立学生表 3.建立选课表 4.查询所有学生的详细信息

SELECT Student.SCLASS, Student.SNO,Student.SNAME, Student.SSEX, Student.SAGE , Student.SDEPT,https://www.doczj.com/doc/ba9686956.html,O,SC.GRADE,https://www.doczj.com/doc/ba9686956.html,AME,Course.CPNO,Course. CCREDIT FROM Course,Student,SC WHERE SC.SCLASS=Student.SCLASS AND SC.SNO=Student.SNO AND https://www.doczj.com/doc/ba9686956.html,O=https://www.doczj.com/doc/ba9686956.html,O 5.查询1班的学生号学及姓名 SELECT SNO,SNAME FROM Student WHERE SCLASS='1' 6.查询‘刘晨’的出生年 7.查询姓‘刘’的学生的详细情况

数据库实验指导书

数据库实验指导书 电气与电子工程学院

实验项目 实验一认识DBMS及数据库的建立 实验二交互式SQL(数据库查询与更新) 实验三数据控制(安全性部分) 实验四数据控制(完整性部分)

实验一认识DBMS及数据库的建立 一、实验目的: 1.掌握使用SQL SERVER企业管理器及SQL语言创建数据库与表。 2.掌握使用SQL SERVER企业管理器及SQL语言修改数据库与表。 3.掌握使用SQL SERVER企业管理器及SQL语言删除数据库与表。 二、实验内容及步骤: 1.通过用企业管理器创建一个指定多个数据文件和日志文件的数据库,该数据库名称为jiaoxuedb,要求: 有1个10MB和1个20MB的数据文件和2个10MB的事务日志文件。数据文件逻辑名称为jiaoxuedb1和jiaoxuedb2,物理文件名为jiaoxuedb1.mdf和jiaoxuedb2.mdf。主文件是jiaoxuedb1,由primary指定,两个数据文件的最大尺寸分别为无限大和100MB,增长速度分别为10%和1MB。事务日志文件的逻辑名为jiaoxuedblog1和jiaoxuedblog2,物理文件名为jiaoxuedblog1.df和jiaoxuedblog2.ldf,最大尺寸均为50MB,文件增长速度为1MB。 2.用企业管理器在jiaoxuedb数据库中建立如下表: 学生表: jiaoxuedbdent 课程表: Course 选课表: SC

3.查看表格:显示当前数据库中所有对象的信息。 4.利用企业管理器删除表: 在企业管理器中,展开指定的数据库和表格项,用右键单击要删除的表,从快捷菜单中选择“除去表”选项,则会出现除去对象对话框。单击“全部删除”按钮,即可去除表。

数据库上机实验报告

《数据库技术与应用》上机实验报告 姓名:谢优贤 学号:020******* 专业班级:安全工程1003班

通过这次上机实验,我做了学生信息管理系统数据库,通过创建表、查询、窗体、报表和宏对输入数据库中的学生的基本信息进行整理和操作,以便得到我们想要的信息。学生信息管理系统可以实现对学生的基本信息:学号、姓名、联系方式、性别、成绩等的查询,还有对教师的情况进行比较了解从而可以帮助学生更好地选课和学习,省去了纸质档案管理不方便的方面。 通过窗体的创建和美化,使我们在操作数据时有一个简洁明了美观的窗口,简化了用户的操作程序,方便用户的使用。报表的创建可以使用户想要的数据很好地呈现在纸上。使用宏命令还使数据库有了设置密码的功能,很好的保护了数据的使用权限;也可以使用宏命令打开我们希望打开的窗口。 一、主要上机内容 1. 数据库的创建: 我使用自行创建数据库的方式进行创建,数据库文件名为学生信息管理系统。数据库要实现的主要功能:学生基本信息及学习成绩情况的统计,通过窗体进行学生信息的查询、学生信息及成绩的普通查询、打印学生信息报表等。 2. 表的创建: 基本表为学生信息表、学生成绩表、教师信息表、课程信息表等均使用设计器创建表学生信息表的记录: 学生信息表结构: 在学生信息表中设置了学号为主键,为了方便输入又在学号字段中设置了掩码(如下图)

学生年龄一般不会太大或太小,于是为了防止填写信息时出错,添加了有效性规则 性别只有男和女之分,于是为了方便,选择了查询向导 同样在入学日期和电话字段也设置了输入掩码 头像属于图片类型,其数据类型为“OLE对象”,所得荣誉和自我介绍选择了“备注”类

数据库实验指导及报告-2015正式版

编号:2015版 《数据库原理及应用》 实验报告 实验报告作者(姓名及学号): 实验指导教师:鲍芳 实验时间:2015-2016 秋季实验班级:自动化电气13级班 实验中心三号楼 广东工业大学

(MS SQL SERVER 2005) 第一次实验注意事项: 1.携带U盘;本实验使用MS SQL SERVER 2005; 2.在“我的电脑\|管理\服务及应用\SQLSERVER配置管理器\SQLSERVER2005服务” 菜单下启动“SQL SERVER(MSSQLSERVER)”服务,双击应用程序“SQL Server Management Studio”,注意“服务器名称”不要使用缺省设置,通过“浏览更多” 及展开“数据库引擎”选择本机号码,点击“连接”; 3.在“对象资源管理器”窗口显示有绿色箭头;在对象资源管理器中附加myCapeCodd 数据库:鼠标右键点击“数据库”选择“附加”,指明数据文件.mdf的位置(均指向U盘的某个文件夹);附加成功后在数据库目录下可见myCapeCodd; 4.点击“新建查询”即可在窗口输入相关SQL语句,可以用截图软件保存查询结果。(注意MS SQL SERVER 2008 不支持数据库.mdf.及log文件指向U盘。) 2015数据库原理及应用实验安排(实验一至实验七) 在实验四至实验七中,务必对提交的SQL语句返回的查询结果与人工检索的结果相对比,以此方式验证SQL语句的正确性。 以下实验内容涉及学生自己创建数据库。 5.在对象资源管理器中创建自己的数据库:鼠标右键点击“数据库”选择“新建数据 库”,名称取为“电气X班XXX学生成绩管理数据库”;在“新建数据库”时要指明数据文件及事务日志的位置(均指向U盘的某个文件夹),不要使用缺省设置; 6.在“新建查询”下输入SQL语句,注意先选择对应的“电气X班XXX学生成绩管 理数据库”,而不是缺省的master数据库;检查及执行该语句,注意每次输入新的SQL语句时先清空输入界面;注意在半角状态输入空格,若在全角状态输入空格容易导致出错; 7.创建数据库中的表后(注意刷新),在对象资源管理器窗口可见该表及其所拥有的 键及约束:学生:键:1,约束:1;课程:键:1;选课:键:3,约束:1 8.在对象资源管理器中“数据库”子菜单使用“附加”命令选中.mdf文件(对应的.log

《数据库系统原理》实验指导书范文

《数据库系统原理》实验指导书 计算机科学与技术与学院计算机科学与技术系 二○一二年

目录 实验一认识DBMS ..................................................................................... 错误!未定义书签。实验二交互式SQL(4小时) ................................................................. 错误!未定义书签。实验三数据库完整性(2小时) ........................................................... 错误!未定义书签。实验四数据库安全性(2小时) ........................................................... 错误!未定义书签。

实验一认识DBMS 一、实验目的 1.通过对某个商用数据库管理系统的安装使用,初步了解DBMS的工作环境和系统构架。在此推荐SQL SERVER2005。 2.熟悉DBMS的安装、配置及使用。 3.搭建今后实验的平台。 二、实验平台 操作系统:Windows XP。 数据库管理系统:SQL SERVER2005。选择安装各个数据库管理系统之前,请仔细看清硬件的配置要求。 三、实验内容和要求 1.根据安装文件的说明安装数据库管理系统。在安装过程中记录安装的选择,并且对所作的选择进行思考,为何要进行这样的配置,对今后运行数据库管理系统会有什么影响。 2.学会启动和停止数据库服务。 在正确安装SQL SERVER2005后,SQL SERVER数据库引擎服务会在系统启动时自动启动。如果要手动地启动和停止数据库引擎服务,可以通过SQL SERVER配置管理器(SQLSERVER CONFIGURATION MANAGER)来进行管理。SQL SERVER配置管理器综合了SQLSERVER 2000中的服务管理器、服务器网络适用工具和客户端网络实用工具的功能。 打开 SQL SERVER配置管理器工具,单击“SQL SERVER2005服务”节点,其中的“SQL SERVER”服务就是我们所说的数据库引擎。与SQL SERVER 2000一样,可以通过这个配置管理器来启动、停止所安装的服务,如“SQLSERVER(MSSQLSERVER)”。 3.了解RDBMS系统的体系结构。 SQL SERVER2005是一款具有“客户机/服务器”架构的关系型数据库管理系统,它使用T-SQL语言在客户机和服务器之间传递客户机的请求和服务器的响应。 数据库体系结构:又划分为数据库逻辑结构和数据库物理结构。数据库逻辑结构主要应用于面向用户的数据组织和管理,如表、视图、存储过程和触发器、约束等。数据库物理结构主要应用于面向计算机的数据组织和管理,如数据以表文件的形式存放在硬盘上。 4.了解RDBMS的管理和使用。例如SQL SERVER Management Studio是SQL SERVER 2005种最重要的管理工具,它融合了SQL SERVER2000的查询分析器和企业管理器、OLAP分析器等多种工具的功能,为管理人员提供了一个简单的实用工具,使用这个工具既可以用图形化的方法,也可以通过编写SQL语句来实现数据库的操作。 5.初步了解RDBMS的安全性,这里主要是服务器用户的登录和服务器预定义角色。可以尝试建立一个新的登录名,赋予其数据库管理员的角色,今后的实验可以用该登录名来创建数据库用户。

数据库实验报告

计算机与信息学院 实验报告 专业班级 计科3班 学生姓名及学号 2014217151 李勤阳课程教学班号 任课教师 实验指导教师 实验地点 计算机楼303 20 16 ~20 17 学年第一学期

实验一数据库的创建和删除 一. 实验目的: 1. 了解SQL Server数据库的环境。 2. 掌握使用SQL 语句创建数据库的方法。 二.实验要求 1. 掌握通过查询分析器进行交互式SQL语句的使用方法。 2. 理解SQL Server中的共享架构dbo。 3.注意操作结果的截图与保存,供撰写实验报告使用。 三.实验内容 1. 使用SQL语句创建数据库EDUC。 数据库的参数要求: 数据库名称:EDUC 数据库存储路径:将数据库文件存储在D:\jxgl\目录中。 (注,如果该目录不存在,需在D盘新建一个名为jxgl的文件夹) 其他参数要求: 数据文件的初始大小:10M 最大:60M 按5%的比例自动增长。 日志文件的初始大小:4M 最大:10M 增量为1M。 2. 将新创建的数据库设置为当前数据库。 四.实验步骤

1.创建数据库EDUC的SQL语句: 示例:创建数据库userdb1 maxsize=5 , filegrowth=1)create database userdb1 on (name=userdb1_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 filename='d:\sql_data\userdb1.mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M filegrowth=1)--数据文件每次增长1M log on ( name=userdb1_log, filename='d:\sql_data\userdb1.ldf ' , size=2 , reate database EDUC on (name=EDUC_data, filename='E:\jxgl\EDUC.mdf', size=10, maxsize=60, filegrowth=5%) log on ( name=EDUC_log, filename='E:\jxgl\EDUC.ldf ',

相关主题
文本预览
相关文档 最新文档