精华内容
下载资源
问答
  • 基本表建立:3、 基本表的修改:4、索引的建立与删除四、实验方法五、收获体会 实验2 数据库及数据库表的建立 、 实验目的 本实验的目的是使学生熟悉SQL Server 2008的企业管理器的用法,初步了解SQL Server查询...

    实验2 数据库及数据库表的建立

    一、 实验目的

    本实验的目的是使学生熟悉SQL Server 2008的企业管理器的用法,初步了解SQL Server查询分析器的使用方法,熟悉SQL SERVER的常用数据类型、完整性约束,索引的定义与维护。加深对SQL数据定义语言理解,掌握数据库的创建以及基本表的创建与修改。

    二、实验时数 2学时

    三、实验内容

    1.首先创建一个学生数据库stu_db

    Create database stu_db;
    use stu_db;
    

    2.基本表的建立:

      1. 建立一个学生表S1,它由学号sno、姓名sname、性别ssex、年龄sage、所在系sdept五个属性组成,其中学号属性不能为空,并且其值是唯一的。
      use stu_db
      create table S1
      (
      	sno char(10) unique not null,
      	sname varchar(8),
      	ssex char(2),
      	sage int,
      	sdept varchar(30)
      )
      
      1. 建立一个“学生表S2,它由学号sno、姓名sname、性别ssex、年龄sage、所在系sdept五个属性组成,其中学号属性不能为空,并创建检查约束(sage>0)。
      create table S2
      (
      	sno char(10) not null,
      	sname varchar(8),
      	ssex char(2),
      	sage int check(sage>0),
      	sdept varchar(30),
      	
      )
      
      1. 建立一个学生表S,它由学号sno、姓名sname、性别ssex、年龄sage、所在系sdept五个属性组成,要求学号为主键,ssex有默认的值为 ‘男’。
      create table S 
      (
      	sno char(10) primary key,
      	sname varchar(8),
      	ssex char(2) default '男',
      	sage int,
      	sdept varchar (30),
      	check (sage>0),
      )
      
      1. 建立“课程表C”,包括课程号cno,课程名称cname,先修课程cpno,学分credit,要求建立主键
      create table C
      (
      	cno char(4) primary key,
      	cname varchar(30),
      	cpno varchar(30),
      	credit int
      )
      
      1. 建立“成绩表SC”包括学号sno,课程号cno,成绩grade,要求建立主键及与S及C表联接的外键。
      create table SC
      (
      	sno char(10),
      	cno char(4),
      	grade int,
      	primary key(sno,cno),
      	foreign key(cno) references C(cno),
      	foreign key(sno) references S(sno),
      )
      

    3、 基本表的修改:

      1. 在sc表中增加一列“任课教师rkjs”。
      alter table SC add rkjs varchar(10)
      
      1. 删除sc表中rkjs一列。
      alter table SC drop column rkjs 
      
      1. 将s1表的sname一列允许空值的属性更改成不允许为空,将列sname的长度由char(8)改为char(10)。
      alter table S1 
      alter column sname char(10) not null 
      
      1. 增加SC表的列grade增加一个约束要求cj>0 and cj<=100。
      alter table SC add check(grage>0 and grage <=100)
      
      1. 建立一个临时表:#temp(sno char(10),sname char(8));再将其删除。(提示:临时表名称为:#表名,其余和创建普通表一样)。
      create table #temp
      (
      	sno char(10),
      	sname char(8)
      )
      
      

    4、索引的建立与删除

    • a) create unique index stu_sno on s1(sno)

    • b) create index sno_cno on SC(sno asc,cno desc)

    • c) drop index SC.sno_cno

    四、实验方法

    用图形用户界面方式和SQL查询分析器完成以上的任务。并检查所做的操作表现。

    五、收获体会

    通过这次实验,我熟悉了SQL server的企业管理器的用法,学会了基本表的建立、删除、和修改,还对索引和视图有了一定的了解,加深了对数据库的理解。

    展开全文
  • 实验2 数据库及数据库表的建立 一、实验目的 ...加深SQL数据定义语言理解,掌握数据库创建以及基本表的创建与修改。 二、实验时数 2学时 三、实验内容 1、首先创建一个学生数据库stu_db...

    实验2  数据库及数据库表的建立

    一、实验目的

    本实验的目的是使学生熟悉SQL Server 2008的企业管理器的用法,初步了解SQL Server查询分析器的使用方法,熟悉SQL SERVER的常用数据类型、完整性约束,索引的定义与维护。加深对SQL数据定义语言理解,掌握数据库的创建以及基本表的创建与修改。

    二、实验时数  2学时

    三、实验内容

    1、首先创建一个学生数据库stu_db,在此数据库中创建以下基本表。

    Create database stu_db;

    2、基本表的建立

         1)建立一个“学生”表Student1,它由学号xh、姓名xm、性别xb、年龄nl、所在系xi五个属性组成,其中学号属性不能为空,并且其值是唯一的。

    2)建立一个“学生”表Student2,它由学号xh、姓名xm、性别xb、年龄nl、所在系xi五个属性组成,其中学号属性不能为空,并创建检查约束(nl>0)。

    3)建立一个“学生”表Student3,它由学号xh、姓名xm、性别xb、年龄nl、所在系xi五个属性组成,要求学号为主键,xb有默认的值为 ‘男’

    4)建立“课程kc”包括课程号kch,课程名称kcmc,先修课程xxkc,学分xf,要求建立主键

    5)建立“成绩登记表cjdj”包括学号xh,程号kch,成绩,要求建立主键及与student及kc表联接的外键

    3、基本表的修改

    1)在cjdj表中增加一列“任课教师rkjs”

    2)删除cjdj表中rkjs一列

    3)将student1表的xm一列允许空值的属性更改成不允许为空,将列xm的长度由char(8)改为char(10)

    4)增加cjdj表的列cj增加一个约束要求cj>0 and cj<=100

    5)建立一个临时表,再将其删除

    4、索引的建立与删除

     1)create unique index stu_xh on student(xh)

    2)create index xh_kch on cj(xh asc,kch desc)

    3)drop index cj.xh_kch

    四、实验方法

    用图形用户界面方式和SQL查询分析器完成以上的任务。并检查所做的操作表现。

    五、收获体会

         这次数据库的实验让我对图形用户界面方式和SQL查询分析器有了初步的认识与了解,首先是建了五张表,然后是对它们的修改和索引的建立与删除,让我对书本上的概念有了更直观的认识,这次实验让我收获了许多经验,让我了解到了一些基本语句的重要性。

     

     

    展开全文
  • 数据库索引

    2018-03-26 21:16:00
    索引是数据库列或多列的值进行排序的种结构,使用索引可快速访问数据库中的特定信息。如果想按特定职员的姓来查找他或...建立索引的目的是加快对表中记录的查找或排序。为设置索引要付出代价的:是...
    索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。
    索引的一个主要目的就是加快检索表中数据的方法,亦即能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构。

    基本特点

    建立索引的目的是加快对表中记录的查找或排序。为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。数据库索引就是为了提高表的搜索效率而对某些字段中的值建立的目录 。
    创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
    因为,增加索引也有许多不利的方面。第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

    转载于:https://www.cnblogs.com/anatman/p/8653986.html

    展开全文
  • Oracle视图与索引

    2019-11-30 22:10:26
    实验目的: 1、理解索引和位图索引的基本概念 2、掌握索引和位图索引的创建方法,并使用索引查询过程...为了保证索引产生前后,查询效果的正确比对,应建立一个存在大量数据的测试。这个测试的数据来源于SYS...

    实验目的:
        1、理解索引和位图索引的基本概念
        2、掌握索引和位图索引的创建方法,并使用索引对查询过程产生的影响进行分析
        3、理解视图的基本概念
        4、掌握视图的创建方法,并对视图中数据查询与更新进行操作,明确其使用的注意事项。

    实验步骤:

    1、创建有特点的大数据表。
    为了保证索引产生前后,查询效果的正确比对,应建立一个存在大量数据的测试表。这个测试表的数据来源于SYS模式下的all_objects视图,其中包括本数据库实例中的全部对象的基本描述,具体包括对象的所有者、对象名称、创建日期等信息。
    创建测试表的具体过程:
      1)以sys账号登录数据库
        cmd>sqlplus sys/oracle321@orcl as sysdba  (注意sys登录需要注明sysdba身份)


      2)以创建查询表的方式在scott模式下创建包括‘SYS’、‘PUBLIC’、‘SCOTT’三个用户的全部对象
        SQL>  CREATE TABLE scott.DemoTable as
        SQL>2 SELECT * FROM all_objects
        SQL>3 WHERE owner IN ('SYS','PUBLIC','SCOTT');
         注意用户名字母必须大写。


      3) 切换到scott账号进行下一步操作。
         conn scott/tiger@orcl;

    2、查询统计数据表的各数据量大小,了解大数据表中的基本情况。
      1)了解测试表的字段构成
        DESC demoTable;

      1)查询各用户记录数
        SELECT owner, count(*) 记录数
        FROM demoTable
        GROUP BY owner;


      2)查询各列记录值的个数
        SELECT count(DISTINCT owner) 所有者数量
            ,count(DISTINCT OBJECT_TYPE) 对象类型数量
            ,count(DISTINCT OBJECT_name) 对象名称数量
        FROM demoTable;

    3、分析表,开启追踪
    analyze table demoTable compute statistics;
    set autotrace trace explain  --开启追踪
    注意:关闭追踪的方法为  set autotrace off;  

    4、对比创建索引前后的查询操作的差异
    1)无索引时执行查询(注意:名称中字母都要大写)
        SELECT * FROM demoTable where object_name = 'EMP';


        SELECT * FROM demoTable where owner ='SCOTT';

    2)创建object_name索引后执行
        --创建索引
        CREATE INDEX idx_objectName ON demoTable(object_name);


        --执行查询
        SELECT * FROM demoTable where object_name = 'EMP';


        SELECT * FROM demoTable where owner ='SCOTT';


        SELECT count(*) FROM demoTable where owner ='SCOTT';

    小结:创建索引只对索引字段出现在where语句中有效。

    3)创建owner索引后执行
        --创建索引
        CREATE INDEX idx_owner ON demoTable(owner);


        --执行查询
        SELECT * FROM demoTable where object_name = 'EMP';


        SELECT * FROM demoTable where owner ='SCOTT';


        SELECT count(*) FROM demoTable where owner ='SCOTT';


    小结:创建索引在出现列值出现大量重复时无效,但对聚合操作有效。

    4)创建位图索引后执行
        --删除原有owner索引
        DROP INDEX idx_owner;


        --创建位图索引
        CREATE BITMAP INDEX idx_owner_bitmap ON demoTable(owner);


        --执行查询
        SELECT * FROM demoTable where object_name = 'EMP';


        SELECT * FROM demoTable where owner ='SCOTT';


        SELECT count(*) FROM demoTable where owner ='SCOTT';


    小结:位图索引对聚合操作会产生影响

    5、索引的应用小结
       索引类似于座次表,是对数据(记录中的特定字段的值)的位置进行排序优化后的树状存储结构,
    一定是在大数据的环境下有效
    索引的优点:提高数据查询指定字段  效率,先建立指定字段的索引,并且指定字段的值具有离散性高的特点
    缺点:占用空间、降低数据更新的效率
    适用于查询多,更新少的大数据环境


    6、创建视图
    CREATE VIEW vw_test AS
    select *
    from emp
    where sal+nvl(comm,0) > 2500;

    CREATE VIEW vw_SalSummary as
    select dname,avg(sal) avgSal,min(sal) minSal,max(sal) maxSal
    from dept,emp
    where dept.deptno = emp.deptno
    group by dname;

    7、更新视图
    UPDATE vw_test set sal= 1000;
    UPDATE vw_salSummary set avgSal=1000;

    8、视图的应用小结
    视图优点:可以简化应用,方便权限管理,整合多来源数据、面向应用重组数据
    视图中只能在简单视图中进行更新,但有可能更新数据后导致视图记录数发生变化。

    展开全文
  • 索引和视图创建

    2018-11-10 21:34:14
    实验目的:  1、理解索引和位图索引的基本概念  2、掌握索引和位图索引的创建方法,并使用索引查询...为了保证索引产生前后,查询效果的正确比对,应建立一个存在大量数据的测试。这个测试的数据来源于SYS模...
  • 索引与位图索引

    2017-06-27 14:44:54
    实验目的: 1、理解索引和位图索引的基本概念 2、掌握索引和位图索引的创建方法,并使用索引查询过程...为了保证索引产生前后,查询效果的正确比对,应建立一个存在大量数据的测试。这个测试的数据来源于S
  • 索引与视图的创建与应用 实验目的: 1、理解索引和位图索引的基本概念 2、掌握索引和位图索引的...为了保证索引产生前后,查询效果的正确比对,应建立一个存在大量数据的测试。这个测试的数据来源于SYS模式下的...
  • 实验目的: 1、理解索引和位图索引的基本概念 2、掌握索引和位图索引的创建方法,并...为了保证索引产生前后,查询效果的正确比对,应建立一个存在大量数据的测试。这个测试的数据来源于SYS模式下的all_objects视...
  • 实验目的:  1、理解索引和位图索引的基本概念  2、掌握索引和位图索引的创建方法,并使用索引查询...为了保证索引产生前后,查询效果的正确比对,应建立一个存在大量数据的测试。这个测试的数据来源于SYS...
  • oracle视图与索引

    2018-11-17 13:33:00
    实验目的: 1、理解索引和位图索引的基本概念 2、掌握索引和位图索引的创建方法,并使用索引查询过程产生的影响进行分析 3、理解视图的基本概念 4、掌握视图的创建方法,并视图中数据查询与更新进行操作,明确其...
  • 索引与视图

    2017-06-02 19:38:41
    – 实验目的: – 1、理解索引和位图索引的基本概念 – 2、掌握索引和位图索引的创建方法,并使用索引查询过程产生的影响进行分析 ...– 为了保证索引产生前后,查询效果的正确比对,应建立一个存在大量数据的
  • 数据库基本操作

    2010-01-26 11:20:00
    数据库、表、索引的定义目的:通过本实验加深SQL Server 2000环境下数据定义语言的理解,能够熟练地建立数据库,并通过SQL语句来创建和修改基本表、创建和取消索引。二、内容:使用SQL Server 2000软件,练习...
  • 只需要很少编程知识你就能使用PHP建立一个真正交互WEB站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点行列。我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想。 1...
  • 索引和B+Tree结构1.索引是什么?...索引需要占物理空间,除了数据占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚集索引那么需要的空间就会更大。2.索引的目的是什么答:为了高...
  • 但是由于上述四项基本业务活动都是通过书号(即关键字)进行 所以要用B树书号建立索引,以获得高效率 (3) 系统要实现操作及其功能定义如下: 1 采编入库:新购入种书,经分类和确定数好之后登记到图书馆...
  • 1.index索引 B+能做的 • 全键值 • 键值范围 • 键前缀查找 索引目的:提高查询效率 索引的另一面(问题) 磁盘空间的开销 ...索引的建立必须慎重,个索引的必要性都应该经过仔细分析,要有建立的依
  • 文章标题

    2017-06-11 17:54:06
    实验目的: 1、理解索引和位图索引的基本概念 2、掌握索引和位图索引的创建方法,并使用索引查询过程产生...为了保证索引产生前后,查询效果的正确比对,应建立一个存在大量数据的测试。这个测试的数据来源于S
  • CruiseYoung提供带有详细书签电子书籍目录 ... SQL Server 2008数据库...虽然无法自由地表达自己想法,然而,翻译快乐就在于:使另一个好想法能让更多人了解。当然,由于时间紧张,译者水平有限,错误粗糙...
  • 5.3.1 创建基本表结构 175 5.3.2 添加唯一性约束 183 5.3.3 构建默认约束 189 5.3.4 添加关系(外键) 195 5.3.5 处理排序规则和排序 205 5.3.6 计算列 209 5.3.7 实现用户定义数据类型 212 5.3.8 文档化...
  • 13) 查询每一门课程成绩都大于等于80分学生学号、姓名和性别,把值送往另一个已经存在的基本表STU(SNO,SNAME,SSEX)中 14) 把所有学生学号和课程号连接追加到新表中 15) 所有学生年龄增1 16) 统计3门...
  • 索引是通过数据建立方便查询的搜索结构来达到加快查询效率的目的. 视图是从基本表中选取数据的逻辑窗口.是一个虚表.,可以简化和定制用户数据的需求. 索引:聚簇萦是数据按索引关键字进行物理排序. 非聚簇...
  • 1.8.4 在同一查询中多次引用同一个表 27 1.8.5 使用衍生 28 1.8.6 使用UNION组合结果集 29 1.9 使用APPLY来为每行调用值函数 30 1.9.1 使用CROSS APPLY 30 1.9.2 使用OUTER APPLY 32 1.10 数据源...
  • 角色是一组权限集合,将角色赋给一个用户,这个用户就拥有了这个角色中所有权限。  系统预定义角色 预定义角色是在数据库安装后,系统自动创建一些常用角色。下面我们就简单介绍些系统角色:  CONNECT...
  •  EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中行并消除所有重复行而派生出一个结果。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。  C: INTERSECT 运算符  INTERSECT 运算符通过只...
  • 但是由于上述四项基本业务活动都是通过书号(即关键字)进行,所以要用B树〈24树〉书号建立索引,以获得高效率。 〈3〉系统应实现操作及其功能定义如下: 采编入库z新购入种书,经分类和确定书号之后登记到...
  • 在实现中,assertion就是在程序中一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式值为true;如果该值为false,说明程序已经处于不正确状态下,系统将给出警告或退出。...
  • 入门学习Linux常用必会60命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    hda1中“1”代表hda一个硬盘分区 (partition),hda2代表hda第二主分区,第一个逻辑分区从hda5开始,依此类推。此外,可以直接检查 /var/log/messages文件,在该文件中可以找到计算机开机后系统已辨认出来...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 121
精华内容 48
关键字:

对一个基本表建立索引的目的