精华内容
下载资源
问答
  • 数据库实验报告数据库实验报告数据库实验报告数据库实验报告数据库实验报告数据库实验报告
  • 要求学生熟练使用SQL Server Management Studio、T-SQL创建管理数据库与表。 二、实验内容 1、创建数据库、查看和修改数据库的属性、修改数据库的名称、删除数据库; 2、创建和删除数据表、修改表结构。 1、创建...

    *数据库课程实验

    实验一 数据库与表的创建与管理

    一、实验目的
    要求学生熟练使用SQL Server Management Studio、T-SQL创建和管理数据库与表。

    二、实验内容
    1、创建数据库、查看和修改数据库的属性、修改数据库的名称、删除数据库; 2、创建和删除数据表、修改表结构。

    1、创建数据库
    在 SQL Server 2008 中创建数据库的方法有两种,一是利用 SQL Server Management Studio 创建数据库,二是使用 T-SQL 语句创建数据库。
    实验 1.1 利用 SQL Server Management Studio 创建 TPCH 数据库,其数据库名 为“TPCH”,初始大小为 3MB,最大为 50MB,数据库按 1MB 比例自动增长;日志文 件的初始大小为 1MB,最大可增长到 20MB,按 10%增长。数据库的逻辑文件名为 “TPCH”、物理文件名为“TPCH.mdf”,存放路径为“D:\数据库实验”。日志文件的 逻辑文件名为“TPCH_Log.ldf”、存放路径为“D:\数据库实验”。
    操作步骤如下: ①在“对象资源管理器”中选中“数据库”文件夹,然后右击,在弹出的快捷 菜单中选择“新建数据库”命令,弹出“新建数据库”对话框,如图所示。 ②在“新建数据库”对话框的“数据库名称”文本框中输入“TPCH”,并修改 数据库中数据文件的文件名、初始大小,保存位置等信息。 ③单击“确定”按钮,就可以创建 TPCH 数据库。如果在 SQL Server Management Studio 窗口中出现了 TPCH 数据库标志,则表明建库工作已经完成。
    在这里插入图片描述
    实验 1.2 使用 T-SQL 语句创建 TPCH1 数据库,其数据库名为“TPCH1”,其 他同 TPCH 数据库设置。
    单击“常用”工具栏中的“新建查询”按钮,就可以新建一个数据库引擎查询 文档。
    然后在查询文档中输入创建数据库语句。
    在这里插入图片描述

    2、查看和修改数据库属性
    对于已经建好的数据库,有时还需要对它的属性参数进行查看和修改。
    实验 1.3 使用 SQL Server Management Studio 查看和修改数据库属性。 查看和修改 TPCH 数据库属性的步骤如下:
    ① 在“对象资源管理器”中展开“数据库”文件夹,右击“TPCH”,在弹出的 快捷菜单中选择“属性”命令,弹出“数据库属性—TPCH”对话框。 ②在该对话框中选择“文件”,就可以对数据库文件进行修改。用户可以增加 数据库文件,也可以删除数据库文件,还可以修改数据库文件的逻辑名、大小、增 长率。 ③选择“文件组”,可以查看当前数据库的文件组情况,并且可以增加、删除 文件组,修改文件信息。 ④在该对话框中还可以对选项、权限等进行设置。
    在这里插入图片描述

    3、修改数据库名称
    ①使用 SQL Server Management Studio 修改数据库名称。 在“对象资源管理器”窗口中右击需要改名的数据库,从弹出的快捷菜单中选 择“重命名”命令。当数据库名称处于可编辑状态时,输入新名即可。
    ②利用 T-SQL 语句修改数据库名称。 语法格式如下: ALTER DATABASE 原数据库名称 MODIFY NAME = 新数据库名称 例如,将 TPCH1 数据库名称“TPCH1”改为“TPCHSJK”: ALTER DATABASE TPCH1 MODIFY NAME = TPCHSJK ③利用系统存储过程 sp_renamedb 进行修改,语句格式如下: sp_renamedb [@old_name=] ‘old_name’,[@new_name=]‘new_name’ 例如,将 TPCHSJK 数据库名称“TPCHSJK”改为“TPCHDB”: exec sp_renamedb ‘TPCHSJK’,'TPCHDB’

    4、删除数据库
    删除数据库的方法有两种:
    ①利用 SQL Server Management Studio 删除数据库 进入 SQL Server Management Studio 界面,然后选择要删除的数据库,右击, 在弹出的快捷菜单中选择“删除”命令,弹出“删除对象”对话框,在该对话框中 单击“确定”按钮即可。
    ②利用 T-SQL 语句删除数据库 在查询窗口输入以下代码:
    DROP DATABASE 数据库名
    正确输入后,按键盘上的 F5 键或单击“执行”按钮执行该 SQL 语句,这样就删除了指定的数据库。

    5、表的创建
    在 SQL Server 2008 中创建表的方法有两种,一是利用 SQL Server Management Studio 创建表,二是使用 T-SQL 语句创建表。

    实验 1.4 在 TPCH 数据库中,使用 SQL Server Management Studio 创建 8个表,其结构如图所示:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    联合主键(orderkey,linenumber)
    具体步骤如下:
    ①在 SQL Server Management Studio 的对象管理器中单击数据库前面的“+” 号,选择“表”并右击,在弹出的快捷菜单中选择“新建表”命令,打开设计表字 段对话框。
    ②设计表的字段。在设计表字段对话框中有 3 个参数,即列名、数据类型和允 许 NULL 值。 “列属性”显示在设计表字段对话框的底部窗格中,包含“常规”和“表设计 器”两部分。 展开“常规”可显示“名称”、“长度”、“默认值或绑定”、“数据类型”、 “允许 NULL 值”选项。 展开“表设计器”,可 看到“标识规范”、“标识种子”、“标识增量”、“计 算列规范”、“公式”、“简洁数据类型”、“排序规则”。
    ③设计好表的字段后,单击“关闭”按钮(或直接单击“保存”按钮),弹出是否要保存的提示对话框。
    ④单击“是”,弹出选择名称的提示对话框,在这里输入表的名字,单击 “确 定”按钮,表就建好了。
    说明:外码约束,可以通过创建数据库关系图来实现。 ①在SQL Server Management Studio 的对象管理器中单击“数据库”前面的“+” 号,选择“数据库关系图”并右击,在弹出的快捷菜单中选择“新建数据库关系图” 命令,添加需要外码约束的表,此例中 8 个表全部选择添加。 ②选择主表的主码字段,按住鼠标左键不放,拖动到外码表的外码字段,松开 鼠标,弹出“表和列”对话框,在对话框中,进一步确认主表主码字段和外码表外 码字段,没有问题点击“确认”按钮,

    在这里插入图片描述
    在这里插入图片描述

    实验 1.5 在 TPCH1 中,利用 T-SQL 语句创建数据表。 因为表之间有外码约束存在,所以要注意创建表的顺序。
    ① 创建地区表 Region 的代码:
    CREATE TABLE dbo.Region
    (
    regionkey int NOT NULL PRIMARY KEY,
    name char(25) NULL,
    comment varchar(152) NULL
    )

    ② 创建国家表 Nation 的代码:
    CREATE TABLE dbo.Nation
    (
    nationkey int NOT NULL PRIMARY KEY,
    name char(25) NULL,
    regionkey int NULL REFERENCES Region(regionkey),
    comment varchar(152) NULL
    )

    ③ 创建供应商表 Supplier 的代码:
    CREATE TABLE dbo.Supplier(
    supperkey int NOT NULL PRIMARY KEY,
    name char(25) NULL,
    nationkey int NULL REFERENCES Nation (nationkey),
    phone char(15) NULL,
    acctbal real NULL,
    comment varchar(101) NULL
    )

    ④ 创建零件表 Part 的代码:
    CREATE TABLE dbo.Part(
    partkey int NOT NULL PRIMARY KEY,
    name varchar(55) NULL,
    mfgr char(25) NULL,
    brand char(10) NULL,
    type varchar(25) NULL,
    size int NULL,
    container char(10) NULL,
    retailprice real NULL,
    comment varchar(23) NULL
    )

    ⑤ 创建零件供应联系表 PartSupp 的代码:
    CREATE TABLE dbo.PartSupp(
    partkey int NOT NULL REFERENCES Part (partkey),
    suppkey int NOT NULL REFERENCES Supplier (supperkey),
    availqty int NULL,
    supplycost real NULL,
    comment varchar(199) NULL,
    PRIMARY KEY (partkey,suppkey)
    )

    ⑥ 创建顾客表 Customer 的代码:
    CREATE TABLE dbo.Customer(
    custkey int NOT NULL PRIMARY KEY,
    name varchar(25) NULL,
    address varchar(40) NULL,
    nationkey int NULL REFERENCES dbo.Nation (nationkey),
    phone char(15) NULL,
    acctbal real NULL, mktsegment char(10) NULL,
    comment varchar(117) NULL
    )

    ⑦ 创建订单表 Orders 的代码:
    CREATE TABLE dbo.Orders(
    orderkey int NOT NULL PRIMARY KEY,
    custkey int NULL REFERENCES Customer (custkey),
    orderstatus char(1) NULL,
    totalprice real NULL,
    orderdate date NULL,
    orderpriority char(15) NULL,
    clerk char(15) NULL,
    shippriority int NULL,
    comment varchar(79) NULL
    )

    ⑧ 创建订单明细表 Lineiterm 的代码:
    CREATE TABLE dbo.Lineitem(
    orderkey int NOT NULL REFERENCES Orders (orderkey),
    partkey int NULL REFERENCES Part (partkey),
    suppkey int NULL REFERENCES Supplier (supperkey),
    linenumber int NOT NULL,
    quantity real NULL,
    extendedprice real NULL,
    discount real NULL,
    tax real NULL,
    returnflag char(1) NULL,
    linestatus char(1) NULL,
    shipdate date NULL,
    commitdate date NULL,
    receiptdate date NULL,
    shipinstruct char(25) NULL,
    shipmode char(10) NULL,
    comment varchar(44) NULL,
    PRIMARY KEY (orderkey,linenumber)
    )
    在这里插入图片描述
    三、实验心得
    这次实验让我受益匪浅,我深刻意识到理论知识还是要拿出来操练,才会有不一样的感悟。在创建表的时候,出现了“此数据库缺少一个或多个使用数据库关系图所需的支持对象”,这时候你要考虑是否创建它们。当有两个主键的时候,如何同时选择让前面都有小钥匙,这就让我联想起来了Excel表格如何同时选择两列或者多个元组,就是先选择一个属性的主键,然后同时摁住Ctrl再右击设置另一个主键。但是如果你在输入表的数据类型输入错误,第一次使用数据库软件,很多知识盲区,所以就删除了错误的表,对数据进行重新输入,但是你原有的表虽然删除了,数据和表名还是保存在数据库系统中的,重新建立的表的表名就和之前的重名了,需要加入一些数字或者字符,区别于第一个表。但是这样肯定是繁琐麻烦的,一定有别的方法解决,我就右击了我需要修改数据的表,点击修改,把错误的“varbinary(199)”更换成“varchar(199)”,但是最后会出现“不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或者启用了‘阻止保存要求重新创建表的更改’选项”,其实大概就是说我无法保存我的更改,让我删除表之后重新建立,这不就又回到了问题的初始,所以我又查了资料,点击工具里面的选项打开了选项对话框,展开Designers,里面的“阻止保存要求重新创建表的更改(s)”选项被选中了,取消前面的选中即可。最后再次去修改错误的数据并保存,弹出警告窗口点击“是”就行了。但是在左面表框里显示的还是错误的数据,所以又检查了一下表的属性,属性中是正确的,所以就是修改完成了。这次创建和查询数据让我有了新的感悟,去发现问题解决问题的过程很奇妙。

    展开全文
  • v1.0可编辑可修改 v1.0可编辑可修改 PAGE PAGE # 实验二MySQL数据库操作实验 实验目的 1 掌握MySQ数据库的安装方法 2 掌握MySQ数据库的使用 3 熟悉数据库管理工具的使用 实验要求 1 利用MySQ命令创建数据库和相应的...
  • 是完整的实验内容,包括完整的代码,和一些相关的截图,具有很好的参考价值。
  • 西北师范大学计算机科学工程学院学生实验报告 学号 201371010146 专业 计算机科学工程 班级 计师1班 姓名 谢心如 课程名称 数据库 课程类型 专业 实验名称 创建与使用数据库 实验目的 1了解数据库的基本概念....
  • PAGE 1 数据库应用实践课程报告 学号 陈泽泽 姓名 031202110 年级 2012级 学院 数计学院 专业 ...\h \z \u 数据库应用实践实验一 3 数据库管理系统及其应用开发环境的创建使用 3 一实验目的 3 二实验环境 3 三实验
  • 数据库系统概论(第四版)第二章实验报告 数据库创建管理
  • 数据库实验报告学习

    千次阅读 2018-07-30 01:28:53
    数据库实验报告学习 01 数据库及数据表的创建与删除  02 SQL语言 03 SQL查询数据 04 用户权限管理 05 Oracle数据库对象 06 数据备份恢复 07数据库系统设计综合实验 实验报告要插入的表 --学生表 drop ...

    数据库实验报告学习

    01 数据库及数据表的创建与删除 

    02 SQL语言

    03 SQL查询数据

    04 用户权限管理

    05 Oracle数据库对象

    06 数据备份与恢复

    07数据库系统设计综合实验

    实验报告要插入的表

    --学生表
    drop table sc;
    drop table student;
    drop table course;

    create table Student
    (
      Sno char(9) primary key,/*列级完整性约束条件*/
      Sname char(20) unique,
      Ssex char(3), 
      Sage smallint, 
      Sdept char(20)
    );
    insert into Student(sname,ssex,sno, sage, sdept) values('李勇','男','201215121',20,'CS');
    insert into Student(sname,ssex,sno, sage, sdept) values('刘晨','女','201215122',19,'CS');
    insert into Student(sname,ssex,sno, sage, sdept) values('王敏','女','201215123',18,'MA');
    insert into Student(sname,ssex,sno, sage, sdept) values('张立','男','201215125',19,'IS');

    --select * from student;
    create table Course
    (
      Cno char(4) primary key,
      Cname char(40),
      Cpno char(4),
      Ccredit smallint,
      foreign key (Cpno)  references Course(Cno)/*表级完整性约束条件*/
    );
    --select * from course order by cno;
    insert into course values('6','数据处理',null,2);
    insert into course values('2','数学',null,2);
    insert into course values('7','PASCAL语言','6',4);
    insert into course values('5','数据结构','7',4);
    insert into course values('1','数据库','5',4);
    insert into course values('3','信息系统','1',4);
    insert into course values('4','操作系统','6',3);


    create table SC
    (
      Sno char(9), 
      Cno char(4), 
      Grade smallint, 
      primary key(Sno,Cno), 
      foreign key (Sno) references Student(Sno),
      foreign key (Cno) references Course(Cno)  
    );

    insert into sc values('201215121','1',92);
    insert into sc values('201215121','2',85);
    insert into sc values('201215121','3',88);
    insert into sc values('201215122','2',90);
    insert into sc values('201215122','3',80);

    insert into student values ('1','1','1',1,1);
    alter table student add pwd varchar2(20) default '123456';
    select *from student;
    select *from course;
    select *from sc;
    select index_name from user_indexes where table_name = 'course';
    select view_name from user_views;
    commit;

    --项目信息管理数据库DDL
    alter table Department drop constraint fk_department_manage_teacher;
    alter table MyProject drop constraint fk_myproject_pp_myproject;
    alter table MyProject drop constraint fk_myproject_projectma_teacher;
    alter table TM drop constraint fk_tm_tm_teacher;
    alter table TM drop constraint fk_tm_tm2_myproject;
    alter table Teacher drop constraint fk_teacher_belongto_department;
    drop table Department cascade constraints;
    drop table MyProject cascade constraints;
    drop table TM cascade constraints;
    drop table Tearcher cascade constraints;

    create table Department
    (
        Dno varchar2(10) not null,
        Tno varchar2(20),
        Dname nvarchar2(20) not null,
        constraint pk_department primary key (Dno)
      );
      select *from Department;
      create table Myproject
      (   
          Pno varchar2(20) not null,
          Parentpno varchar2(20),
          Tno varchar2(20) not null,
          Pname nvarchar2(30) not null,
          Pfund number(20,2),
          Pbegindate date not null,
          Ptimespan integer not null,
          constraint pk_myproject primary key(pno)
      );
      select *from Myproject;
      create table Tm
      (
          Tno varchar2(20) not null,
          Pno varchar2(10) not null,
          WorkDays integer ,
          constraint pk_tm primary key(Tno,Pno)
      );
      select *from Tm;
      create table Teacher
      (
         Tno varchar2(20) not null,
         Dno varchar2(10) not null,
         Tname nvarchar2(20) not null,
         Tsex varchar2(3) not null,
         Tsalary number(30,2), 
         Tbirthday date not null,
         constraint pk_teacher primary key(Tno)
      );
      select *from Teacher;
      alter table Department add constraint fk_department_manage_teacher  foreign key(Tno) references Teacher(Tno);
      alter table Myproject add constraint fk_myproject_pp_myproject  foreign key(Parentpno) references Myproject(Pno);
      alter table Myproject add constraint fk_myproject_projectma_teacher  foreign key(Tno) references Teacher(Tno);
      alter table TM add constraint fk_tm_tm_teacher  foreign key(Tno) references Teacher(Tno);
      alter table TM add constraint fk_tm_tm2_myproject  foreign key(Pno) references Myproject(Pno);
      alter table Teacher add constraint fk_teacher_belongto_department  foreign key(Dno) references Department(Dno);
      
      insert into department(dno,dname) values('d001','计算机科学系');
      insert into department(dno,dname) values('d002','网络工程系');
      insert into department(dno,dname) values('d003','软件工程系');
      select *from department;
      insert into teacher(tno,tname,tsex,tsalary,tbirthday,dno) values('t001','张三','男',3000,To_date('7-7月-1977','DD-mon-yyyy'),'d001');
      insert into teacher(tno,tname,tsex,tsalary,tbirthday,dno) values('t002','李四','女',3600,To_date('21-10月-1979','DD-mon-yyyy'),'d001');
      insert into teacher(tno,tname,tsex,tsalary,tbirthday,dno) values('t003','王五','女',5600,To_date('7-7月-1981','DD-mon-yyyy'),'d002');
      insert into teacher(tno,tname,tsex,tsalary,tbirthday,dno) values('t004','刘晨','女',5800,To_date('7-7月-1985','DD-mon-yyyy'),'d002');
      insert into teacher(tno,tname,tsex,tsalary,tbirthday,dno) values('t005','王小二','男',3500,To_date('7-7月-1981','DD-mon-yyyy'),'d003');
      insert into teacher(tno,tname,tsex,tsalary,tbirthday,dno) values('t006','李小龙','男',5687,To_date('7-12月-1990','DD-mon-yyyy'),'d003');
      insert into teacher(tno,tname,tsex,tsalary,tbirthday,dno) values('t007','熊猫','男',6000,To_date('27-11月-1980','DD-mon-yyyy'),'d003');
      insert into teacher(tno,tname,tsex,tsalary,tbirthday,dno) values('t008','李小小','女',5687,To_date('17-10月-1980','DD-mon-yyyy'),'d001');
      select *from teacher;
      --myproject 数据
      insert into myproject(Pno,Pname,Pfund,Pbegindate,ptimespan,parentpno,tno) values ('p0001','信息安全技术研究',30,TO_date('7-12月-2012','DD-mon-yyyy'),3,null,'t001');
      insert into myproject(Pno,Pname,Pfund,Pbegindate,ptimespan,parentpno,tno) values ('p0002','云计算研究',40,TO_date('7-12月-2008','DD-mon-yyyy'),4,null,'t003');
      insert into myproject(Pno,Pname,Pfund,Pbegindate,ptimespan,parentpno,tno) values ('p0003','信息中心网络研究',30,TO_date('7-12月-2012','DD-mon-yyyy'),6,null,'t006');
      insert into myproject(Pno,Pname,Pfund,Pbegindate,ptimespan,parentpno,tno) values ('p0004','对等网络研究',30,TO_date('7-12月-2010','DD-mon-yyyy'),3,null,'t006');
      select *from myproject;
      --tm 数据
      insert into tm(tno,pno,workdays) values('t001','p0001',180);
      insert into tm(tno,pno,workdays) values('t001','p0002',180);
      insert into tm(tno,pno,workdays) values('t001','p0004',360);
      insert into tm(tno,pno,workdays) values('t001','p0003',540);
      insert into tm(tno,pno,workdays) values('t002','p0001',720);
      insert into tm(tno,pno,workdays) values('t002','p0002',90);
      insert into tm(tno,pno,workdays) values('t002','p0004',90);
      insert into tm(tno,pno,workdays) values('t003','p0001',180);
      insert into tm(tno,pno,workdays) values('t003','p0002',360);
      insert into tm(tno,pno,workdays) values('t003','p0003',360);
      insert into tm(tno,pno,workdays) values('t003','p0004',360);
      insert into tm(tno,pno,workdays) values('t004','p0001',180);
      insert into tm(tno,pno,workdays) values('t004','p0002',180);
      insert into tm(tno,pno,workdays) values('t003','p0003',360);
      insert into tm(tno,pno,workdays) values('t005','p0004',180);
      insert into tm(tno,pno,workdays) values('t005','p0002',720);
      insert into tm(tno,pno,workdays) values('t006','p0004',360);
      insert into tm(tno,pno,workdays) values('t006','p0002',180);
      insert into tm(tno,pno,workdays) values('t006','p0003',720);
      select *from tm;
      update department set tno='t006'where tno='d003';
      commit;
     

    展开全文
  • 数据库实验报告.doc

    2021-06-22 00:59:09
    实验1-实验10 创建数据库 创建数据表 管理表数据 简单数据查询 复杂数据查询 视图 SQL程序设计 索引 数据库的维护
  • Sql Server 数据库实验报告

    千次阅读 多人点赞 2019-11-28 15:25:37
    数据库原理 实验报告 目录 实验一 SQL Server的安装和配置 4 一、实验目的 4 二、实验内容 4 三、实验步骤 4 四、实验代码和结果 4 五、实验总结体会 4 实验二 创建数据库 5 一、实验目的 5 二、实验内容 5 三、...

    数据库原理 实验报告

    目录
    实验一 SQL Server的安装和配置 4
    一、实验目的 4
    二、实验内容 4
    三、实验步骤 4
    四、实验代码和结果 4
    五、实验总结与体会 4

    实验二 创建数据库 5
    一、实验目的 5
    二、实验内容 5
    三、实验步骤 5
    四、实验代码和结果 6
    五、实验总结与体会 6

    实验三 创建数据表 7
    一、实验目的 7
    二、实验内容 7
    三、实验步骤 7
    四、实验代码和结果 8
    五、实验总结与体会 9

    实验四 管理表数据 10
    一、实验目的 10
    二、实验内容 10
    三、实验步骤 10
    四、实验代码和结果 10
    五、实验总结与体会 13

    实验五 简单数据查询 14
    一、实验目的 14
    二、实验内容 14
    三、实验步骤 14
    四、实验代码和结果 14
    五、实验总结与体会 18

    实验六 高级数据查询 19
    一、实验目的 19
    二、实验内容 19
    三、实验步骤 19
    四、实验代码和结果 19
    五、实验总结与体会 20

    实验七 视图 21
    一、实验目的 21
    二、实验内容 21
    三、实验步骤 21
    四、实验代码和结果 21
    五、实验总结与体会 24

    实验八 索引 25
    一、实验目的 25
    二、实验内容 25
    三、实验步骤 25
    四、实验代码和结果 25
    五、实验总结与体会 26

    实验九 数据库维护 27
    一、实验目的 27
    二、实验内容 27
    三、实验步骤 27
    四、实验代码和结果 27
    五、实验总结与体会 27

    实验十 SQL程序设计 …28
    一,实验目的………………………………………………………………………………28
    二,实验内容………………………………………………………………………………28
    三,实验步骤………………………………………………………………………………28
    四,实验代码和结果………………………………………………………………………28
    五,实验总结和体会………………………………………………………………………29

    实验一 SQL Server的安装和配置

    一, 实验目的
    (1) 了解Microsoft SQL Server 2008系统。
    (2) 掌握SQL Server 2008的安装过程。
    (3)熟悉SQL Server Management Studio的工作环境。
    (4)掌握sQL Server 2008服务器注册与配置。

    二,实验内容
    (1) SQL Server 2008数据库管理系统安装。
    (2) SQL Server 2008 Management Studio 使用。
    (3) SQL Server 2008服务器配置。

    三,实验步骤
    (1)安装SQL Server 2008数据库管理系统。
    安装SQL Server 2008数据库管理系统,熟悉其安装过程。
    从微软官方下载SQL Server 2008 Enterprise Evaluation,将其安装到本地计算机,使本地计算机成为服务器和客户端工具,并采用Windows身份验证模式。
    SQL Server 2008的安装与其他Microsoft Windows系列产品类似。用户可根据向导提示,选择需要的选项一步一步地完成。安装过程中涉及的实例名、用户账户、身份验证模式、排序规则等关键内容需要我们根据安装界面的提示和实际的需要来进行设置。
    (2)启动SQL Server Management Studio.
    启动SQL Server Management Studio,熟悉其界面环境。
    在SQL Server以前的版本中主要有两个工具:图形化的管理工具(EnterpriseManager)和T-SQL编辑器(Query Analyzer)。 在SQL Server 2008 中,SQL ServerManagement Studio将Enterprise Manager和Query Analyzer两个工具结合在一一起,可以在对服务器进行图形化管理的同时编写T-SQL. SQL Server Management Sudio中的对象浏览器结合了Query Analyzer的对象浏览器和Enerpie Manager的服务器树形视图,可以浏览所有已注册的服务器。另外,对象浏览器还提供了类似与Query Analyzer的工作区,工作区中有类似语言解析器和显示统计图的功能。现在可以在编写查询和脚本的同时,在同一个工具下使用Wizards和属性页面处理对象。
    (3)注册服务器。
    服务器只有在注册后才能被纳人SQL Server Management Studio的管理范围。为了18 管理、配置和使用Microsoft SQL Server 2008 系统,必须使用Microsoft SQL Server
    Management Studio工具注册服务器。注册服务器就是为Microsoft SQL Server 客户机/服务器系统确定一台数据库所在的机器,该机器作为服务器,可以为客户端的各种请求提供服务。在SQL Server Management Studio中有一个单独可以同时处理多台服务器的注册服务器窗口,同时其不仅可以对服务器进行注册,还可以注册分析服务、报告服务、SQLServer综合服务以及移动SQL等。
    (4)配置SQL Server 2008。
    利用SQL Server 2008配置管理器,对数据库管理系统进行配置。
    启动SQL Server配置管理器,查看与SQL Server相关联的服务,并尝试启动和停止服务、配置SQL Server使用的网络协议以及从sQL Server客户端计算机管理网络连接配置。

    四,实验代码和结果

    五,实验总结和体会
    成功安装了SQL Server 2008,步骤不算复杂,但需要自己动手配置的地方很多,安装总体来说还算顺利。

    实验二 创建数据库

    一,实验目的
    (1)了解sQL Server 数据库的物理结构和逻辑结构。
    (2)掌握使用对象资源管理器创建和管理数据库。
    (3)掌握使用T-SQL语句创建和管理数据库。

    二,实验内容
    (1)利用对象资源管理器创建、修改和删除数据库。
    (2)利用T-SQL语句创建修改和删除数据库。

    三,实验步骤
    (1)启动sQL Server Management Studio,在对象资源管理器中,利用图形化的方法创
    建数据库student.
    (2)启动SQL Server Management Studio,在对象资源管理器中,利用图形化的方法修改数据库student,增加数据文件。
    其中:数据文件逻辑名student_ data2,操作系统文件的名称为C:\Program Files\Microsoft SQL Server\MSSQL10. MSSQLSERVER\ MSSQL\DATA\student_ data2. ndt,
    初始大小为50MB,最大为100MB,以30%的速度增长。
    (3)启动SQL Server Management Studio,在对象资源管理器中,利用图形化的方法删除数据库student。
    (4)启动SQL Server Management Studio,在SQL编辑器中,利用T-SQL语何
    CREATE DATABASE命令创建数据库student.
    (5) 启动SQL Server Management Studio,在 SQL编辑器中,利用T-SQL语句ALTER DATABASE命令修改数据库student,增加日志文件。
    其中:日志文件逻辑名student_ log2,操作系统文件的名称为 C:\Program Files\Microsoft SQL Server\MSSQL10. MSSQLSERVER\MSSQL\DATA\student_ data2. ldf,初始大小为3MB,最大为50MB,以1M的速度增长。
    (6)启动SQL Server Management Studio,在SQL编辑器中,利用T-SQL语句DROPDATABASE命令删除数据库student。

    四,实验代码和结果
    –创建数据库student
    CREATE DATABASE student
    ON PRIMARY
    (
    NAME=student_data,
    FILENAME=‘E:\数据库\student_data.mdf’,
    SIZE=3,
    MAXSIZE= UNLIMITED,
    FILEGROWTH=1
    )
    LOG ON
    (
    NAME=student_log,
    FILENAME=‘E:\数据库\student_log.ldf’,
    SIZE= 1,
    MAXSIZE= 20,
    FILEGROWTH=10%
    )
    –修改数据库student,增加日志文件
    alter database student
    add log file
    (
    NAME=student_log2,
    FILENAME=‘E:\数据库\student_log2.ldf’,
    SIZE= 3,
    MAXSIZE= 50,
    FILEGROWTH=1
    )
    –删除数据库student
    drop database student

    五,实验总结和体会
    除了可以通过对象资源管理器的图形化界面创建数据库外,还可以使用T-SQL语言所提供的CREATE DATABASE语句来创建数据库。通过实验个人认为,后一种方法更加简单有效。

    实验三 创建数据表

    一,实验目的
    (1)了解SQL Server表的结构特点。
    (2)了解SQL Server 2008的基本数据类型。
    (3)掌握对象资源管理器创建和管理数据表。
    (4)掌握T-SQL语句创建和管理数据表。
    (5)理解约束的概念。

    二,实验内容
    (1)在对象资源管理器创建修改和删除数据表。
    (2)利用T-SQL语句创建、修改和删除数据表。
    (3)创建主键约束、缺省约束、check约束、唯一约束和外键约束。

    三,实验步骤
    (1)启动SQL Server Management Studio,在对象资源管理器中,利用图形化的方法创建学生信息表stu_info、课程信息表course_info和学生成绩表stu_grade,其结构参考附录A。
    (2)启动SQL Server ManagementStudio,在对象资源管理器中,利用图形化的方法对数据表进行修改:
    *在数据表stu_info中,增加备注字段,字段名memo,字段类型nvarchar,字段长度
    200,允许为空。
    *在数据表stu_info中,删除备注字段memo。
    *在数据表course_info中,对于字段course_name设置UNIQUE约束。
    *在数据表stu_grade中,对于字段grade设置CHECK约束,其取值在0~100之间。
    *在数据表stu_grade中,对于字段stu_id设置FOREIGN KEY约束,其取值参考数据 表stu_info中stu_id 字段取值。
    (3)启动SQL Server Management Studio,在对象资源管理器中,利用图形化的方法删除数据表stu_grade.
    (4)启动SQL Server Management Studio,在 SQL编辑器中,利用T-SQL语句CREATE TABLE命令创建学生信息表stu_info、课程信息表course_info 和学生成绩表
    stu_grade,其结构参考附录A。
    (5)启动SQL Server Management Studio,在SQL编辑器中,利用T-SQL语句ALTER TABLE命令修改数据表:
    *在数据表stu_info中,增加身份证号码字段,字段名code,字段类型char,字段长度
    18,允许为空。
    *在数据表stu_info中,对于字段code设置UNIQUE约束。
    *在数据表stu_info中,删除身份证号码字段code.
    *在数据表stu_grade中,对于字段grade设置CHECK约束,其取值在0~100之间,
    *在数据表stu_grade中,对于字段course_id 设置FOREIGN KEY约束,其取值参 考数据表course_info中course_id字段取值。
    (6)启动SQL Server Management Studio,在SQL编辑器中,利用T-SQL语句DROP TABLE 命令删除数据表stu_info。

    四,实验代码和结果
    –创建数据表
    create table stu_info(
    stu_id char(10) not null constraint pk_stu_id primary key, --主键
    name nvarchar(20) not null,
    birthday date null,
    sex nchar(1) null default ‘男’,
    address nvarchar(20) null,
    mark int null,
    major nvarchar(20) null,
    sdept nvarchar(20) null,
    );
    GO
    CREATE TABLE course_info(
    course_id char(3) NOT NULL constraint pk_course_id primary key, --主键
    course_name nvarchar(20) NOT NULL,
    course_type nvarchar(20) NULL default ‘考试’,
    course_mark tinyint NULL,
    course_time tinyint NULL,
    pre_course_id char(3) NULL constraint fk_pre_course_id foreign key references course_info(course_id), --外键
    );
    GO
    CREATE TABLE stu_grade(
    stu_id char(10) not null CONSTRAINT fk_stu_id FOREIGN KEY REFERENCES stu_info(stu_id), --外键
    course_id char(3) not null CONSTRAINT fk_course_id FOREIGN KEY REFERENCES course_info(course_id), --外键
    grade tinyint null,
    );
    –stu_grade:stu_id与course_id合在一起作为主键
    GO
    ALTER TABLE stu_grade
    ADD CONSTRAINT pk_stu_course PRIMARY KEY(stu_id,course_id)
    –修改数据表
    GO
    ALTER TABLE stu_info
    ADD code char(18) NULL
    GO
    ALTER TABLE stu_info
    ADD CONSTRAINT un_code UNIQUE --UNIQUE约束:确保某个或某些列(非主键列)没有相同的列值
    GO
    ALTER TABLE stu_info
    DROP COLUMN code
    GO
    ALTER TABLE stu_grade
    ADD CONSTRAINT ck_grade CHECK(grade between 0 and 100) --CHECK约束:限制输入到一列或多 列的值的范围
    ----删除数据表
    –DROP TABLE stu_info

    五,实验总结和体会
    创建数据表的一般步骤为:首先定义表结构,即给表的每一列取列名,并确定每一列的数据类型、数据长度、列数据是否可以为空等;然后,为了限制某列数据的取值范围,以保证输入数据的正确性和一致性而设置约束;当表结构和约束建立完成之后,最后就可以向表中输入数据了。

    实验四 管理表数据

    一,实验目的
    (1)掌握在对象资源管理器中对数据表进行插人、修改和删除数据的操作。
    (2)掌握T-SQL语句对数据表进行插人、修改和删除数据的操作。

    二,实验内容
    (1)利用对象资源管理器向数据表中添加、修改和删除数据。
    (2)使用T-SQL语句向数据表中添加、修改和删除数据。

    三,实验步骤
    (1)启动SQL Sever Mangement Sudi,在对象资源管理器中,利用图形化的方法向学生信息表stu_info、课程信息表course. info和学生成绩表stu grade中添加数据,其数据
    内容参考附录B。
    (2)启动SQL Server Management Studio,在对象资源管理器中,利用图形化的方法对
    表数据进行修改:
    *在数据表stu_info中,将学号(stu_ id)为2007070101同学的籍贯address)改为“河
    南洛阳”。
    *在数据表stu_ grade中,将成绩(grade)小于60分的所有同学成绩增加10%。
    (3)启动SQL Server Management Studio,在对象资源管理器中,利用图形化的方法删除数据表stu_ grade中成绩(grade)小于60分的记录。
    (4) 启动SQL Server Management Studio,在SQL编辑器中,利用T-SQL语句INSERT INTO命令向学生信息表stu_ info、 课程信息表course_ info 和学生成绩表stu_grade中添加数据,其数据内容参考附录B。
    (5)启动SQL Server Management Studio,在SQL编辑器中,利用T-SQL语句UPDATE命令修改表数据:
    *在数据表stu info 中,将学号(stu_ id) 为2007070102同学的院系(sdept)改为“会计 学院”。
    *在数据表stu grade中,将成绩(grade)小于60分的所有同学成绩置空。
    (6)启动sQL Server Management Studio,在SQL 编辑器中,利用T-SQL语句DELETE命令删除数据表stu info中所有性别(sex)为空的记录。

    四,实验代码和结果
    –添加表数据
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept)
    VALUES(‘2007070101’,‘张元’,‘男’,‘1985-10-09’,‘河南许昌’,576,‘计算机科学与技术’,‘信息学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept)
    VALUES(‘2007070102’,‘张红’,‘女’,‘1985-01-14’,‘河南开封’,565,‘计算机科学与技术’,‘信息学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070103’,‘王明’,‘男’,‘1986-07-08’,‘河南洛阳’,570,‘计算机科学与技术’,‘信息学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070104’,‘李伟’,‘男’,‘1986-03-11’,‘河南郑州’,564,‘计算机科学与技术’,‘信息学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070201’,‘郑澜’,‘女’,‘1985-12-01’,‘河南平顶山’,567,‘电子商务’,‘信息学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070202’,‘赵恒’,‘男’,‘1986-03-11’,‘河南周口’,566,‘电子商务’,‘信息学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007070203’,‘张兰’,‘女’,‘1986-03-11’,‘河南许昌’,571,‘电子商务’,‘信息学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007080101’,‘李伟’,‘男’,‘1986-03-11’,‘河南郑州’,578,‘会计学’,‘会计学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007080102’,‘钱丽’,‘女’,‘1986-03-11’,‘河南安阳’,573,‘会计学’,‘会计学院’)
    INSERT INTO stu_info(Stu_id,name,sex,birthday,address,mark,major,sdept )
    VALUES(‘2007080201’,‘孙楠’,‘男’,‘1986-1-19’,‘河南南阳’,578,‘财务管理’,‘会计学院’)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘701’,‘计算机基础’,‘考试’,3,50,NULL)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘702’,‘操作系统’,‘考试’,4,50,701)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘703’,‘计算机网络’,‘考试’,4,50,701)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘704’,‘数据库原理’,‘考察’,3,50,701)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘706’,‘Java’,‘考察’,3,40,704)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘801’,‘宏观经济学’,‘考试’,4,50,NULL)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘802’,‘初级会计’,‘考试’,4,50,NULL)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘803’,‘财政学’,‘考试’,3,50,NULL)
    INSERT INTO course_info(course_id,course_name,course_type,course_mark,course_time,pre_course_id)
    VALUES(‘804’,‘会计电算化’,‘考查’,3,NULL,NULL)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070101’,‘701’,89)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070101’,‘702’,81)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070101’,‘703’,96)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070102’,‘701’,85)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070102’,‘702’,74)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070102’,‘703’,77)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070104’,‘701’,91)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007070104’,‘702’,88)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080101’,‘801’,79)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080101’,‘802’,91)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080102’,‘801’,87)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080102’,‘802’,83)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080201’,‘803’,75)
    INSERT INTO stu_grade(stu_id,course_id,grade)
    VALUES(‘2007080201’,‘804’,82)
    –修改表数据
    GO
    UPDATE stu_info
    SET sdept='会计学院’WHERE Stu_id =‘2007070102’
    GO
    DELETE FROM stu_grade WHERE grade<‘60’
    –删除stu_info中所有性别(sex)为空的记录
    GO
    DELETE FROM stu_info WHERE sex=‘男’ and sex=‘女’

    五,实验总结和体会
    如果向表中所有列都要插入数据时,字段名表可以省略,但必须保证VALUES后的各数据项位置和类型与表结构的定义完全一致,使得输入的数据真实有效。
    在插人数据时,对于允许空值的列,可以使用用NUL插入空值;对于具有默认值的列,
    可以使用 DEFAULT插人默认值。
    INSERT INTO除了能够实现一次插入一条记录以外,也可以通过子查询实现一次插入多条记录。

    实验五 简单数据查询

    一,实验目的
    (1) 掌握SELECT语句的基本语法。
    (2)掌握数据汇总的方法。
    (3) 掌握SELECT语句的GROUP BY子句的作用和使用方法。
    (4)掌握SELECT语句的ORDER BY子句的作用和使用方法。

    二,实验内容
    (1) SELECT语句的基本使用。
    (2)数据汇总。
    (3) GROUP BY子句和ORDER BY、COMPUTEBY子句的使用。

    三,实验步骤
    针对student数据库中,stu_info数据表,course_info数据表和stu_grade数据表,完成下列查询。
    (1) SELECT基本使用
    查询每个同学的所有数据。
    查询每个同学的学号、姓名和院系。
    查询学号为2070同学的姓名、性别、籍贯和院系。
    查询每个女同学的学号,姓名和院系,并将结果中各列的标题指定为学号、姓名和
    院系。
    查询计算每个同学的年龄。
    查询所有其籍贯含有“阳”的同学的姓名、性别、籍贯。
    查询课程编号702,且成绩 在70~80之间的同学的学号。
    (2)数据汇总
    查询信息学院同学入学平均分。
    查询全体同学的入学最高分和最低分。
    查询会计学院同学总人数。
    查询学号为207070101同学的各门课程总分。
    (3) GROUP BY
    查询每个院系的总人数。
    查询每位同学的平均分。
    (4) ORDER BY
    将各位同学的信息按入学成绩由高到低排列输出。
    查询每个同学的学号、姓名、课程名和成绩信息,并按成绩由低到高排列输出。

    四,实验代码和结果
    –select 基本使用
    GO
    SELECT*
    FROM stu_info
    GO
    SELECT*
    FROM stu_grade
    GO
    SELECT*
    FROM course_info
    GO
    SELECT stu_id,name,sdept
    FROM stu_info
    GO
    SELECT name,sex,address,sdept
    FROM stu_info
    WHERE stu_id=‘2007070103’
    GO
    SELECT stu_id AS’学号’,name AS’姓名’,sdept AS’院系’
    FROM stu_info
    WHERE sex=‘女’
    GO
    SELECT birthday
    FROM stu_info
    GO
    SELECT name,sex,address
    FROM stu_info
    WHERE address like ‘%阳%’
    GO
    SELECT grade
    FROM stu_grade
    WHERE course_id=702 and grade between 70 and 80
    –数据汇总
    GO
    SELECT AVG(mark)as’平均分’
    FROM stu_info
    WHERE sdept=‘信息学院’
    GO
    SELECT MAX(mark)as’最高分’,MIN(mark)as’最低分’
    FROM stu_info
    GO
    SELECT COUNT()as’会计学院总人数’
    FROM stu_info
    WHERE sdept=‘会计学院’
    GO
    SELECT sum(grade)
    FROM stu_grade
    WHERE Stu_id=2007070101
    –GROUP BY
    GO
    SELECT sdept,COUNT(
    )as’总人数’
    from stu_info
    group by sdept
    GO
    SELECT stu_id,AVG(grade)as’平均分’,COUNT()as’课程数’
    from stu_grade
    group by stu_id
    –ORDER BY
    GO
    SELECT

    FROM stu_info
    order by mark desc --desc:降序排列
    GO
    SELECT stu_info.stu_id,name,course_name,grade
    FROM stu_info,course_info,stu_grade
    WHERE stu_info.Stu_id=stu_grade.Stu_id and stu_grade.course_id =course_info.course_id
    order by grade asc --asc:升序(默认)

    五,实验总结和体会
    实验时要注意查询要求的详细描述,先确定要查询的表然后确定要输出的列和行,如果没有指定输出列,默认为输出所有列。
    在数据查询时,经常需要对表中的列进行计算,才能获得所需要的结果。在SELECT
    子句中可以使用各种运算符和函数对指定列进行运算
    在SQL语言中, ORDER BY子句用于排序。 ORDER BY子句总是在 WHERE子句(如果有的话)后面说明的,可以包含一个或多个列,每个列之间以逗号分隔,可以选择使用ASC/ DESC关键字指定按照升序降序排序。如果没有特别说明値長以升序序列进行排序的。如用于多列进行排序,各列在 ORDER BY子句中的顺序决定了排序过程中的优先级。
    使用 GROUP BY子包为每一个组产生一个汇总结果,每个组只返回一行,不返回详细信息。SELECT子句句中指定的列必须是 GROUP BY子句中指定的列,或是和聚合函数起使用。如果包含 WHERE子句,则只对满足 WHERE条件的行进行分组汇总。如果 GROUP BY子句使用关键字ALL,则 WHERE子句将不起作用。

    实验六 高级数据查询

    一,实验目的
    (1)掌握嵌套查询、连接查询的表示。

    二,实验内容
    (1) 嵌套查询的使用。
    (2) 连接查询的使用。

    三,实验步骤
    针对student数据库中,stu_info数据表,course_info数据表和stu_grade数据表,完成下列查询。
    (1)嵌套查询
    查询选修702课程的同学的学号、姓名和院系信息。
    查询没有选修702课程的同学的学号、姓名和院系信息。
    查询比会计学院的同学人学分数都高的同学的学号、姓名、专业和院系信息。
    (2)连接查询
    查询每个同学的学号、姓名、课程名和成绩信息。
    查询人学成绩大于575分的同学姓名和其选课情况(包括课程名称、课程学时和成绩)。

    四,实验代码和结果
    –嵌套查询
    GO
    SELECT stu_id,name,sdept
    FROM stu_info
    WHERE stu_id IN (
    SELECT stu_id
    FROM stu_grade
    WHERE course_id=702
    )
    GO
    SELECT stu_id,name,sdept
    FROM stu_info
    WHERE stu_id not IN (
    SELECT stu_id
    FROM stu_grade
    WHERE course_id=702
    )
    GO
    SELECT stu_id,name,major,sdept
    FROM stu_info
    WHERE mark>ALL
    (SELECT mark
    FROM stu_info
    WHERE sdept=‘会计学院’)
    AND sdept<>‘会计学院’
    –连接查询
    GO
    SELECT stu_info.Stu_id,name,course_name,grade
    FROM stu_info
    left outer join stu_grade on stu_info.Stu_id=stu_grade.Stu_id
    left outer join course_info on stu_grade.course_id=course_info.course_id
    GO
    SELECT name,course_name,course_time,grade
    FROM stu_info,course_info,stu_grade
    WHERE stu_info.Stu_id=stu_grade.Stu_id and stu_grade.course_id =course_info.course_id and mark>575

    五,实验总结和体会
    表的连接的实现可以通过两种方法:利用 SELECT语句的 WHERE子句。在FROM子句中使用JOIN关键字。由于连接是涉及多个表及其之间的引用,所以列的引用必须明确指出,对于重复的列名必须用表名限定,即 Table_name. Column_name的完整表达方式。
    所谓嵌套查询指的是在一个SELECT査询语句中包含另一个(或多个)SELECT查询语句。其中,外层的SELECT查询语句叫外部查询,内层的的SELECT査询语句叫子查询。使用子查询时需注意以下几个问题:子查询可以嵌套多层。子查询需用圆括号括起来。子查询中不能使用COMPUTE[BY]和INTO子句。子查询的SELECT语句中不能使用 Image、text或 ntext数据类型。

    实验七 视图

    一,实验目的
    (1)理解视图的重要性。
    (2)掌握在对象资源管理器中创建和管理视图。
    (3)掌握T-SQL语句创建和管理视图。

    二,实验内容
    (1)在对象资源管理器创建、修改和删除视图。
    (2)在对象资源管理器使用视图。
    (3)利用T-SQL语句创建、修改和删除视图。
    (4)利用T-SQL语句使用视图。

    三,实验步骤
    (1)启动SQL Server Management Studio,在对象资源管理器中,利用图形化的方法创建下列视图:
    视图view_male,包含学生信息表中所有男生信息。
    视图view_ stu_grade,包含每个同学的学号、姓名、课程名和成绩信息。
    视图view_ avg, 包含每个同学的学号、姓名、平均成绩信息。
    (2)启动SQL Server Management Studio,在对象资源管理器中,利用图形化的方法对视图v_ male进行修改,只显示信息学院所有男生的信息。
    (3)启动SQL Server Management Studio,在对象资源管理器中,利用图形化的方法删除视图view_ male.
    (4)启动SQL Server Management Studio,在对象资源管理器中,利用图形化的方法查询视图view_ male 中的记录信息。
    (5)启动SQL Server Management Studio,在 SQL编辑器中,利用T-SQL语句CREATE VIEW命令创建下列视图:
    视图view. female, 包含学生信息表中所有女生信息。
    视图view. count,包含每个院系的名称和学生人数信息。
    视图view sum,包含每个同学的学号、姓名、课程总成绩信息。
    (6)启动SQL Server Management Studio在SQL编辑器中,利用TSQL语句ALTER VIEW命令修改视图view _female,增加加密性。
    (7)启动SQL Server Management Studio,在SQL编辑器中,利用T-SQL语句DROP
    VIEW命令删除视图view_female.
    (8)启动SQL Server Management Studio,在SQL编辑器中通过视图,利用T-SQL语句查询下列信息:
    查询“信息学院”的学生人数。
    查询学号2007070101同学的所选课程和课程成绩信息。

    四,实验代码和结果
    –创建视图
    create view view_female
    with encryption --加密
    as
    select*
    from stu_info
    where sex=‘女’
    go
    create view view_count(sdept,count)
    as
    select sdept,count() as’学生人数’
    from stu_info
    group by sdept
    go
    create view view_sum(学号,姓名,总成绩)
    as
    select stu_info.stu_id,stu_info.name,sum(grade)
    from stu_info left outer join stu_grade
    on stu_info.stu_id=stu_grade.stu_id
    group by stu_info.stu_id,name
    go
    create view view_stu_grade
    as
    select stu_info.stu_id,name,course_name,grade
    from stu_info
    left outer join stu_grade on stu_info.Stu_id=stu_grade.Stu_id
    left outer join course_info on stu_grade.course_id=course_info.course_id
    ----删除视图
    –go
    –drop view view_female
    –查询信息
    go
    select count(
    ) as’学生人数’
    from view_female
    where sdept=‘信息学院’
    go
    select*
    from view_stu_grade
    where stu_id=‘2007070101’

    五,实验总结和体会
    视图的定义和属性信息都保存在系统数据库和系统数据表中,可以通过系统提供的存
    储过程来获取有关视图的定义信息。sp help用于返回视图的特征信息。sp_ helptext查看视图的定义文本。sp_ depends查看视图对表的依赖关系和引用的字段。
    通过本次实验,我练习了在对象资源管理器中创建、修改、删除和使用视图,以及利用T-SQL语句创建、修改、删除和使用视图,理解了视图的重要性,掌握了在对象资源管理器中和利用T-SQL语句创建和管理视图。

    实验八 索引

    一,实验目的
    (1)理解索引的概念和分类。
    (2)掌握在对象资源管理器中创建和管理索引。
    (3)掌握T-SQL语句创建和管理索引。

    二,实验内容
    (1)在对象资源管理器创建、修改和删除索引。
    (2)在对象资源管理器使用索引。
    (3)利用T-SQL语句创建、修改和删除索引。(4)利用T-SQL语句使用索引。

    三,实验步骤
    (1)启动SQL Server Management Studio,在对象资源管理器中,利用图形化的方法创建下列索引:
    *对学生信息表stu_info的name列创建非聚集索引idx_name。
    *对学生成绩表stu_ info 的stu_ id .course_ id列创建复合索引idx stu course_ id
    (2)启动SQL Server Management Studio,在对象资源管理器中,利用图形化的方法对索引idx_ name进行修改,使其成为唯一索引。
    (3)启动SQL Server Management Studio,在对象资源管理器中,利用图形化的方法删除索引idx_ stu_ course_ id。
    (4)启动SQL Server Management Studio,在 SQL编辑器中,利用T-SQL语句CREATE INDEX命令创建下列索引:
    *对课程信息表course_info的course_name列创建非聚集索引idx_course _name。
    *对学生成绩表stu_grade的stu_id、course_id列创建复合索引idx_stu course id。
    (5)启动SQL Server Management Studio,在sQL编辑器中,利用T-SQL语句对索引
    idx
    course_name进行修改,使其成为唯索引。
    (6)启动SQL Server Management Studio,在SQL编辑器中,利用系统存储过程sp_helpindex查看索引idx course _name信息。
    (7)启动SQL Server Management Sudio,在sQL编辑器中,利用T-SQL语句DROPINDEX命令删除索引idx course _name.

    四,实验代码和结果
    –创建索引
    CREATE UNIQUE NONCLUSTERED INDEX idx_course_name --唯一非聚集
    ON course_info(course_name)
    GO
    CREATE INDEX idx_stu_course_id
    ON stu_grade(stu_id,course_id)
    –查看
    GO
    Exec sp_helpindex course_info
    –删除
    GO
    DROP INDEX course_info.idx_course_name

    五,实验总结和体会
    在 SQL Server2008中,提供了多种索引类型。如果以存储结构来区分,则有“聚集索
    引”( Clustered Index,也称聚类索引、簇集索引)和“非非聚集索引”( Nonclustered Index,也称非聚类索引、非簇集索引)的的区别;如果以数据的唯一性来区别,则有“唯一索引”( Unique Ihdex)和“非唯一索引”( Nonunique Index)的不同;若以键列的个数来区分,则有“单列索引”与“多列索引”的分别。
    利用系统提供的存储过程sp_ rename可以对索引进行重命名。
    利用系统提供的存储过程sp_ helpindex可以查看索引信息,其语法格式如下:
    sp_helpindex [@objname =]’object_name’,其中,[@objname =]’object_name’表示所要查看的当前数据库中表的名称。

    实验九 数据库维护

    一,实验目的
    (1)理解备份与恢复的意义。
    (2)掌握在对象资源管理器中备份和恢复数据库。
    (3)掌握T-SQL语句备份和恢复数据库。

    二,实验内容
    (1)在对象资源管理器中备份和恢复数据库。
    (2)利用T-SQL语句备份和恢复数据库。

    三,实验步骤
    (1)启动SQL Server Management Studio, 在对象资源管理器中,利用图形化的方法对数据库student进行完整备份。
    (2)启动SQL Server Management Studio,在对象资源管理器中,利用图形化的方法,针对(1)中的完整备份,对数据库student进行恢复。
    (3)启动SQL Server Management Studio,在SQL编辑器中,利用T-SQL语句BACKUP命令对数据库student进行完整备份。
    (4)启动SQL Server Management Studio,在 sQL编辑器中,利用T-SQL语句
    RESTORE命令,针对()中的完整备份对数据库sudent 进行恢复。

    四,实验代码和结果
    –完整备份
    Backup Database student
    To Disk=‘E:\数据库\备份\student.bak’

    –恢复
    Restore Database student
    From Disk=‘E:\数据库\备份\student.bak’

    五,实验总结和体会
    数据库的备份和恢复是数据库管理员维护数据库安全性和完整性必不可少的操作,合
    理地进行备份和恢复可以将可预见的和不可预见的问题对数据库造成的伤害降到最低。当
    运行 SQL Server的服务器出现故障,或数据库遭到某种程度的破坏时,可以利用以前对数
    据库所做的备份重建或恢复数据库。
    通过这次实验,掌握了数据库备份的概念和种类,各种数据库备份的实现方法,数据库恢复模型以及从各种数据库备份中恢复数据库的方法。

    实验十 SQL程序设计

    一、实验目的
    1.熟练掌握变量的定义和赋值。
    2.掌握各种运算符。
    3.掌握流程控制语句,尤其是条件语句和循环预语句。

    二、实验内容
    1.全局变量和局部变量的定义与使用。
    2.流程控制语句的使用。

    三、实验步骤
    1.创建一名为Student_name的局部变量,并在select语句中使用该变量查找“张元”同学所选课程的成绩情况,给出相应的语句段和运行结果。
    2.将选修课程号为701的同学的成绩增加3分,同时使用全局变量@@rowcount检查获得更新的数据行数目。
    3.利用学生数据库student中的stu_grade表查找学生的成绩信息并判断是否有某学生的某门课程的成绩在90分以上的信息,若有,则显示学号、姓名、课程名和成绩,否则输出信息,说明“不存在成绩大于90分的学生!”
    4.从学生数据库student中查询所有学生选课成绩情况:姓名、课程名、成绩。要求:将学生的百分制转换为5级评分制,成绩大于等于90显示为“优秀”,成绩在80-89分显示为“良好”,“70-79”分显示为“中等”,成绩在60-69显示为“及格”,60以下显示为“不及格”,没成绩的显示为“未考”。

    四,实验代码和结果
    Declare @Student_name varchar(20)
    Set @Student_name=‘张元’
    SELECT grade
    From stu_grade,stu_info
    WHERE stu_grade.stu_id=stu_info.stu_id AND name=‘张元’
    GO
    UPDATE stu_grade
    Set grade=grade+3
    WHERE course_id=‘701’
    if @@rowcount=0
    print’警告:没有发生更新数据行!’
    else
    print @@rowcount
    GO
    if Exists(SELECT * From stu_grade where grade>90)
    SELECT stu_info.stu_id,name,course_name,grade
    From stu_grade,stu_info,course_info
    WHERE stu_grade.stu_id=stu_info.stu_id AND stu_grade.course_id=course_info.course_id AND grade>90
    else
    print’不存在成绩大于90分的学生!’
    GO
    SELECT name,course_name,grade=
    case
    When grade>=90 then’优秀’
    When grade>=80 then’良好’
    When grade>=70 then’中等’
    When grade>=60 then’及格’
    When grade>0 then’不及格’
    else ‘未考’
    END
    FROM stu_info,stu_grade,course_info
    WHERE stu_info.stu_id=stu_grade.stu_id AND stu_grade.course_id=course_info.course_id

    五,实验总结和体会
    通过这次实验的学习,掌握以下内容:常量的使用,变量的定义和和赋值,各种运算符的使用与表达式的用法以及流程控制语句的使用。

    展开全文
  • 1.创建数据库 假设SQL Server服务已启动,并以Administrator身份登录计算机(文件名称自定) 1)要求在本地磁盘D创建一个学生-课程数据库(名称为student),只有一个数据文件和日志文件,文件名称分别为stu和stu_...
    1.创建数据库

    假设SQL Server服务已启动,并以Administrator身份登录计算机(文件名称自定)
    1)要求在本地磁盘D创建一个学生-课程数据库(名称为student),只有一个数据文件和日志文件,文件名称分别为stu和stu_log,物理名称为stu_data.mdf 和stu_log.ldf,初始大小都为3MB,增长方式分别为10%和1MB,数据文件最大为500MB,日志文件大小不受限制。
    CREATE DATABASE student
    ON
    (NAME = stu,
    FILENAME = ‘D:\stu_data.mdf’,
    SIZE = 3MB,
    MAXSIZE = 500MB,
    FILEGROWTH = 10%)
    LOG ON
    (NAME = stu_log,
    FILENAME = ‘D:\stu_log.ldf’,
    SIZE = 3MB,
    MAXSIZE = unlimited,
    FILEGROWTH = 1MB)
    2)创建一个Company数据库,该数据库的主数据文件逻辑名称为Company_data,物理文件为Company.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为Company_log,物理文件名为Company.ldf,初始大小为1MB,最大尺寸为50MB,增长速度为1MB。
    CREATE DATABASE Company
    ON
    (NAME = Company_data,
    FILENAME = ‘C:\Company.mdf’,
    SIZE = 10MB,
    MAXSIZE = unlimited,
    FILEGROWTH = 10%)
    LOG ON
    (NAME = Company_log,
    FILENAME = ‘C:\Company.ldf’,
    SIZE = 1MB,
    MAXSIZE = 50MB,
    FILEGROWTH = 1MB)
    3)创建数据库DB,具有2个数据文件,文件逻辑名分别为DB_data1和DB_data2,文件初始大小均为5MB,最大为100MB,按10%增长;只有一个日志文件,初始大小为3MB,按10%增长;所有文件都存储在D盘文件夹ceshi中。
    CREATE DATABASE DB
    ON
    (NAME = DB_data1,
    FILENAME = ‘D:\ceshi\DB_data1.mdf’,
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 10%),
    (NAME = DB_data2,
    FILENAME = ‘D:\ceshi\DB_data2.mdf’,
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 10%)
    LOG ON
    (NAME = Company_log,
    FILENAME = ‘D:\ceshi\DB_log.ldf’,
    SIZE = 3MB,
    MAXSIZE = unlimited,
    FILEGROWTH = 10%)

    2.修改数据库

    1)在数据库student中增加数据文件db2,初始大小为10MB,最大大小为50 MB,按10%增长;
    ALTER DATABASE student
    ADD FILE
    ( NAME = db2,
    SIZE = 10MB,
    MAXSIZE = 50MB,
    FILENAME = ‘D:\db2.mdf’,
    FILEGROWTH = 10%)
    2)在数据库student中添加日志文件,保存在D盘中,初始大小为1MB,最大无限制,增长方式按照1MB增长;
    ALTER DATABASE student
    ADD LOG FILE
    ( NAME = df,
    SIZE = 1MB,
    MAXSIZE = unlimited,
    FILEGROWTH = 1MB,
    FILENAME = ‘D:\df.ldf’)
    3)修改数据库student主数据文件的大小,将主数据文件的初始大小修改为10Mb,增长方式为20%;
    ALTER DATABASE student
    MODIFY FILE
    ( NAME = stu,
    SIZE = 10MB,
    FILEGROWTH = 20%)

    3.删除数据库

    1)删除数据库student辅助数据文件和第二个日志文件;
    ALTER DATABASE student
    remove FILE db2
    go
    ALTER DATABASE student
    remove FILE df
    2)删除数据库company。
    DROP DATABASE Company

    4.创建及删除模式(构架)

    1)在student数据库中创建一个stu的模式给dbo用户。
    CREATE SCHEMA stu AUTHORIZATION dbo
    2)在student数据库中新建一个用户test,并给该用户创建一个默认模式。
    CREATE SCHEMA AUTHORIZATION test
    3)删除student数据库中的stu模式。
    DROP SCHEMA stu

    实验步骤

    1.Management界面方式下的操作步骤:
    1)界面方式下创建数据库
    用在windows的开始菜单中,依次选择“所有程序”→“Microsoft SQL Server 2008” →【SQL Server Management Studio】,在弹出的对话框中右击窗口左侧树形结构的资源管理器中的【数据库】,在弹出的菜单中选择【新建数据库】选项。打开新建数据库对话框,在数据库名称处填写数据库的名称。数据库文件菜单中设置数据库的文件名称和属性。
    2)界面方式查看数据库信息
    我们可以通过对象资源管理器中数据库名称上点击鼠标右键,在弹出的对话框中选择【属性】来查看修改数据库的相关信息。
    3)界面方式修改数据库
    在数据库创建后,数据文件和日志物理文件名就不能更改了,对已存在的数据库可以进行如下修改:
    改变文件的大小和增长方式
    增加或删除数据文件
    增加或删除日志文件
    增加或删除数据文件组
    通过数据库【属性】对话框,我们可以修改以上信息。
    4)界面方式下删除数据库
    资源管理器中数据库名称上点击鼠标右键,在弹出的对话框中选择【删除】
    2.T-SQL语句方式下的操作步骤:
    在【SQL Server Management Studio】窗口左上方选择【新建查询】按钮,启动SQL编辑器窗口,在光标处输入T-SQL语句,单击【执行】按钮。

    展开全文
  • 大二数据库实验报告

    万次阅读 多人点赞 2018-05-23 18:22:22
    实验一 熟悉数据库管理系统环境 实验二SQL定义语言 实验三 使用SQL语言进行简单查询 实验四 使用SQL语言进行复杂查询 实验五 SQL常用数据更新操作 实验六 综合应用\ 实验一:熟悉数据库管理系统环境 ...
  • 实验数据库及表的创建与管理 实验二 使用DDL创建修改删除表数据库索引 实验三 数据查询基础
  • 数据库实验报告

    万次阅读 多人点赞 2018-11-09 08:47:34
    用SQL语句和企业管理器建立如下的表结构并输入数据 给定表结构如下: 完成表的创建和数据的插入: 创建数据库 创建数据库 create table student( Sno int auto_increment primary key, Sname varchar(45), ...
  • 广州大学学生实验报告 实验二:数据库管理 此篇分享仅供参考学习,图禁复制,勿作他用!谢谢配合啦! 数据库原理实验之实验二:数据库管理 软件:Oracle SQL Developer 今天实验才刚开始,花几个小时做完了实验二...
  • 大三数据库实验报告

    2008-06-20 10:09:38
    实验 一 题目 数据库及基本表的建立 实验 二 题目 使用SQL语言查询管理数据 实验 三 题目 创建和使用视图 实验 四 题目 数据库规划设计 实验 五 题目 数据库的效率及优化
  • 广东工业大学实验报告 一、实验目的 1、掌握SQL SERVER的查询分析器和企业管理器的使用; 2、掌握创建数据库和表的操作; 二、实验内容和要求 1、分别使用SQL语句、企业管理器(Enterprise Manager)创建数据库...
  • 大型数据库实验报告(实验四) 实验四 视图、序列 【实验目的】 (1)掌握视图的创建管理方法; (2)掌握序列的创建及使用方法。 【实验原理】 视图的创建管理 2. 序列的创建及使用 【实验内容】 ...
  • 掌握使用管理器图形界面创建数据库。 \3. 掌握使用管理器图形界面修改数据库。 \4. 掌握使用管理器图形界面删除数据库。 \5. 掌握使用管理器图形界面创建表的结构。 \6. 掌握使用管理器图形界面修改表的结构。 \7. ...
  • 1 实验创建表、更新表和实施数据完整性 2 实验二 查询数据库 3 实验三 视图触发器 4 实验四 存储过程 5 实验五 事务游标
  • 1.设置安全认证模式 2、创建和管理登录帐户 3、创建与管理数据库用户 4、创建与管理角色 5、管理许可
  • 01 数据库及数据表的创建与删除  广州大学学生实验报告  ...
  • 数据库实验实验报告

    千次阅读 2020-03-30 17:40:52
    要求学生熟练掌握和使用 SQL 、 Transact-SQL 、 SQLServer 企业管理创建数据库、表、索引和修改表结构,并学会使用 SQL Server 查询分析器接收 Transact-SQL 语句和进行结果 分析。 二、实验内容 1) 创建数据库...
  • 分享一下近期的数据库实验 实验1:数据库表的创建与管理 实验2:数据定义索引
  • 一、 实验目的及实验环境 (1) 熟悉SQL Server 2000的环境...(5) 学会在企业管理器中创建数据库及查看数据库属性。 (6) 学会使用T-SQL语句创建数据库。 二、 实验内容及结果 【学会使用企业管理器和查询分析器管理
  • (1)熟练掌握数据库创建、表和视图的创建、数据的插入、修改、删除、查询操作、数据完整性、触发器的创建、执行操作。 (2)掌握SQL语句常见语法错误的调试方法。 二、实验内容: 按照下列要求操作,并截取相应的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,277
精华内容 6,910
关键字:

创建与管理数据库实验报告