数据库 索引与数据完整性

  这是代码,很乱,以后整理

  

create database 测试
use 测试
create table 学生
(
姓名 nchar(3),
学号 char(12)
)

create nonclustered index name_index on 学生(姓名)

use 测试
exec sp_helpindex 学生
use 测试
exec sp_rename ‘学生.name_index‘,‘student_name_index‘,‘index‘
use 测试
drop index student_name_index on 学生
use 测试
create table 选课
(
 学号 char(10),
 课程编号 varchar(10),
 成绩 float
)
use 测试
alter table 选课 alter column 学号 char(10) not null
alter table 选课 alter column 课程编号 varchar(10) not null
alter table 选课
add constraint pk_st_id_course_id primary key(学号,课程编号)
alter table 选课
drop constraint pk_st_id_course_id
use 测试
create table 课程
(
课程编号 varchar(10) primary key,
 课程名称 varchar(30) not null,
 课程类别 char(4),
 学分 smallint
)
create rule course_rule
as @sort=‘选修‘ or @sort=‘必修‘
create rule credit_rule
as @value>0
create rule my_character_rule
as @value like ‘[a-f]%[0-9]‘
exec sp_bindrule course_rule, ‘课程.课程类别‘
exec sp_bindrule credit_rule, ‘课程.学分 ‘
exec sp_unbindrule ‘课程.课程类别‘
exec sp_unbindrule ‘课程.学分 ‘
drop rule course_rule,credit_rule
create default nationality_default as ‘汉族‘
exec sp_helptext nationality_default
use 测试
alter table 学生
add 民族 varchar(10) not null
exec sp_bindefault nationality_default, ‘学生.民族‘
exec sp_unbindefault ‘学生.民族‘
drop default nationality_default

alter table 选课
add constraint fk_st_id foreign key (学号) references 学生(学号),
constraint fk_course_id foreign key (课程编号)references 课程(课程编号)

alter table 学生 alter column 学号 char(10) not null

alter table 学生
add constraint sd primary key  (学号)
create table 学生_2
(
st_id char(10),
st_name char(10),
st_identity char(18),
constraint pk primary key (st_id),
constraint uk_identity  unique (st_identity),
)
use 测试
alter table 课程
with nocheck
add constraint course_number
check(课程编号 like ‘C[0-9][0-9][0-9]‘)

use 测试
alter table 学生
add constraint scholarship_default default ‘0‘ for 有否奖金
use 测试
alter table 学生
add 有否奖金 int 
时间: 2024-10-12 15:28:33

数据库 索引与数据完整性的相关文章

数据库索引总结

一.为什么要创建索引呢(优点)? 这是因为,创建索引可以大大提高系统的性能. 第一,   通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性. 第二,   可以大大加快数据的检索速度,这也是创建索引的最主要的原因. 第三,   可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义. 第四,   在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间. 第五,   通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能. 二.建立方向索引的不利因

转:数据库索引的作用和优点缺点

为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能. 第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性. 第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因. 第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义. 第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间. 第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能. 也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列

Mysql数据库索引

索引(Index)是帮助mysql高效获取数据的数据结构.对于高性能非常关键. 索引的重要性主要体现在数据量非常大的时候.规模小,负载轻的数据库即使没有索引也可以获到好的查询效果 例如: 1 mysql>select first_name from actor where actor_id=5; 改索引列位于actor_id列,因此mysql会使用索引找到actor_id为5的行. 索引有很多种类型,各自有各自的特点.索引实在存储引擎层实现的,而不是服务器层. (1).B-Tree索引 谈论引擎

第二百八十八节,MySQL数据库-索引

MySQL数据库-索引 索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构.类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可. 如果没有创建索引查找数据时,是全表扫描的,也就是向查字典一样没有目录,靠一页一页的翻到目标数据位置,这样如果数据量大会相当耗时, 索引就是快速帮助用户找到目标数据,节省时间 索引简介 索引是以B+tree方式的树形结构存放数据的 详情,可以网上搜索一下B+tree MySQL中常见索引有: 普通索引 唯一索引 主键索引 组合索

深入浅出数据库索引原理

前段时间,公司一个新上线的网站出现页面响应速度缓慢的问题, 一位负责这个项目的但并不是搞技术的妹子找到我,让我想办法提升网站的访问速度 ,因为已经有很多用户来投诉了.我第一反应觉的是数据库上的问题,假装思索了一下,摆着一副深沉炫酷的模样说:"是不是数据库查询上出问题了, 给表加上索引吧",然后妹子来了一句:"现在我们网站访问量太大,加索引有可能导致写入数据时性能下降,影响用户使用的".当时我就楞了一下, 有种强行装逼被拆穿的感觉,在自己的专业领域居然被非专业的同学教

数据库索引B+树

面试时无意间被问到了这个问题:数据库索引的存储结构一般是B+树,为什么不适用红黑树等普通的二叉树? 经过和同学的讨论,得到如下几个情况: 1. 数据库文件是放在硬盘上,每次读取数据库都需要在磁盘上搜索,因此需要考虑磁盘寻道时间,我们都知道磁盘寻道开销是非常大的.同时,索引一般也是非常大的,内存不能放下,因此也会放在磁盘上.(另外,还与局部性原理与磁盘预读有关系). 2. B+树所有的关键字都出现在叶子节点的链表(稠密索引)中,且链表中的关键字是有序的.非叶子节点只起索引作用(稀疏索引). 叶子节

数据库索引介绍及使用【转】

数据库索引介绍及使用 一.索引的概念 索引就是加快检索表中数据的方法.数据库的索引类似于书籍的索引.在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息.在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库. 二.索引的特点 1.索引可以加快数据库的检索速度 2.索引降低了数据库插入.修改.删除等维护任务的速度 3.索引创建在表上,不能创建在视图上 4.索引既可以直接创建,也可以间接创建 5.可以在优化隐藏中,使用索引 6.使用查询处理器执行SQL语句,在一个表

MongoDB数据库索引

前面的话 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录.这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的.本文将详细介绍MongoDB数据库索引 引入 索引能够提高查询效率,如何体现呢?接下来使用性能分析函数explain()来进行分析说明 首先,插入10万条数据 接着,不创建索引,来寻找time范围在100和200之间的文档 由图中所知,tot

数据库索引的实现原理

1 什么是索引 数据库索引,是数据库管理系统中一个排序的数据结构. 对数据记录建立索引后,每条索引记录包含:(1)值与相应 数据记录 被索引列的值一样的键(2)相应数据记录的地址. “索引的实现通常使用B树及其变种B+树”,即采用B树等对 索引记录 按键进行排序. 根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引(唯一).主键索引(唯一非空)和聚集索引(行间逻辑顺序与物理顺序一致,提供更快数据访问). 2 使用索引的利弊 利:加快查询速度 弊:索引需要占用空间:创建和维护索引(插入.