找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手

索引 视图 数据库约束 存储过程

[复制链接]
1.什么是索引 测试不常用
一个索引是存储在表中的数据结构,索引在表的列名上创建。索引中包含了一
个列的值,这些值保存在一个数据结构中。数据库使用索引的方式与使用书的
目录很相似:通过搜索索引找到特定的值,然后随指针到达包含该值的行。
重点:索引是一种数据结构
2 索引的作用
可以利用索引快速访问数据库中的特定信息.
3.索引分类
3.1 普通索引
3.2 唯一索引
3.3 主键索引
索引
select * from dcs;
一、普通索引:这是最基本的索引,它没有任何限制
创建单个字段索引:create index xiaoliu on grade(name);给emp表中的sid创建索引
xiaoliu
同时创建两个字段的索引 create index xiaowu on grade(name,class);
show index from grade(表名); 查看索引
删除索引:alter table 表名 drop index 索引名;
alter table grade drop index xiaowu;删除xiaowu这个索引
二、唯一索引:它与前面的普通索引类似,不同的就是:索引列的值必须唯一,
但允许有空值
创建索引:create unique index xiaoyang on grade(sid);
查索引:show index from grade;
删除索引:alter table geade drop index xiaoyang;
三主键索引:它是一种特殊的唯一索引,不允许有空值。一般是在建表的时
候同时创建主键索引
创建索引:alter table grade add primary key(sid);
查索引:show index from grade
删除主键索引:alter table grade drop PRIMARY key(sid)
主键索引和主键约束其实是绑在一起的,如果有了主键索引,那么必会产
生主键约束,或者说主键约束是主键索引的一个特征视图
创建数据库视图 create view yy as (select sid,name,age from emp); 给emp表的sid name,age 创
建视图为yy
update yy set name="zhangsan" where sid=1789; 修改视图信息,基本表随之改变
select * from emp;
update emp set name="张三" where sid=1789; 修改基本表数据,视图随之改变
Show tables 查看视图 创建的视图都在表的最下面。
drop view 视图名; 删除视图
数据库中的DDL和DML
DDL //数据库定义语言 (对表结构和表字段进行操作)
create alter table
drop
DML //数据库操作语言 (对表数据进行操作)
insert
DELETE
select
UPDATE
数据库约束
主键约束——primary key
非空约束——not null
自增长约束——auto increment
默认值约束——default——前四种都是对表结构的约束
外键约束——foreign key 对表与表之间的约束
表1 姓名 年龄 身份证号 语文 数学 英语
表2 姓名 年龄 身份证号 语文 篮球
show create table +表名 查看建表语句
create table xiy1(id int(4)PRIMARY key,name varchar(10)) ENGINE=INNODB ; 创建xiy表,修改
类型为innodb
数据库有的版本有时默认存储引擎为MyISAM,这时我们外键就会不起作用,所
以我们在建表时要将存储引擎改为Innodbcreate table xiy2(sid int(5) primary key,sanme varchar(10),constraint xiaoyang
foreign key(sid) references xiy1(id)) engine=innodb;-->创建xiy2表同时创建外键约束
xiy1和xiy2存在外键约束,xiy1主表 xiy2子表
如果主表不存在的数据,在子表中是无法插入跟该数据相关的任何数据
主表一般存放:基础数据
DELETE from xiy1 where id=1;
如果要删除主表的数据,需要先删除与主表相关的子表数据;
alter table xiy2 drop foregin key xiaoyang; ==》删除外键
存储过程
1.什么是存储过程
存储过程是完成特定功能的sql语句集合。通过编译后存储在数据
库中,通过指定的存储过程名称调用执行它。
存储过程=sql语句集合+控制语句
Mysql5.0版本后支持存储过程
固定格式 create procedure 存储过程名称(参数名 数据类型)
#创建存储过程
end#存储过程结束
call 存储过程名称()#调用存储过程
例:
drop procedure if exists dcs16;#如果存在dcs16这个存储过程则删除
create procedure dcs16()#创建dcs16的存储过程
begin#存储过程开始
#写sql集合
drop table if exists mm;#如果mm表存在则删除,为了增强代码的健壮性
create table mm(id int(5)primary key auto_increment,score int(10));
insert into mm values(1,89),(2,76);
insert into mm values(3,75),(4,92);
insert into mm values(5,89),(6,83);
insert into mm values(7,79),(8,74);
select * from mm;
end#存储过程结束
call dcs16();#调用存储过程

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册