找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
1、索引是一种数据结构,可以利用索引来快速访问数据库中的信息
索引的类型
普通索引
查看索引
show INDEX FROM empt;
创建索引
CREATE INDEX xiaoshan on empt(sid);
desc empt;
删除索引
ALTER TABLE empt DROP INDEX xiaoshan;

唯一索引:他与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值
创建唯一索引
CREATE UNIQUE INDEX aa on empt(sid);
主键索引,其实就是主键约束,一般会在建表的时候直接添加了主键约束
创建主键索引
ALTER TABLE empt add PRIMARY KEY(sid);
删除主键索引
ALTER TABLE empt DROP PRIMARY KEY;

2、数据库视图
1、视图本身是一张虚拟表,在数据库中并没有真实存在
2、视图的更新和删除数据,也会影响基础表的数据
3、基础表的数据更改,也会影响到视图的数据
创建视图
SELECT sid,name,age FROM empt;
CREATE VIEW linchong AS(SELECT sid,name,age FROM empt);
UPDATE linchong SET name = 'zhangsan' WHERE sid = 1789;
UPDATE empt SET name = '张三' WHERE sid = 1789;
删除视图
DROP VIEW linchong;
创建完视图后,使用show tables查看数据库中的表,视图也会显示在结果中
SHOW TABLES;

数据库语言分类
DDL:数据库的定义语言(对表和表的结构进行操作)
create,alter table,drop
DML:数据库的操作语言(对表的数据进行操作)
insert into,delete,update,select

数据库的常见约束
not null:非空约束
primary key:主键约束
auto_increment:自增长约束
default:默认值约束
foreign key:外键约束
SHOW CREATE table dcs1; :查看建表语句

3、外键
一般在设计表结构的时候,就设计好了外键的约束,用来保持数据的一致性和完整型
SHOW CREATE table dcs1;
create table dcs1(id int(4)PRIMARY key,name varchar(10))ENGINE=INNODB;
创建dcs1,修改数据类型为INNODB

create table dcs2(sid int(4)primary key,sname varchar(10),CONSTRAINT fk_sid
FOREIGN key(sid)REFERENCES dcs1(id))ENGINE=INNODB;
fk_***:外键的名称 ---fk_sid
FOREIGN key(子表的字段):创建外键并对应子表中的某个字段
REFERENCES:后面跟的是父表的表名(父表的字段)--父表对应的是dcs1,父表的主键字段名对应的是id字段

插入数据:如果dcs1和dcs2存在外键的约束,主表中不存在的数据,在子表中插入不了
删除数据:如果dcs1和dcs2存在外键的约束,如果想删除主表的数据,需要先删除子表中对应的数据

4、存储过程
存储过程的优点
1、可以多次调用
2、可以通过存储过程在表中插入大量的数据,取代手工插入insert操作
3、工作中一般涉及到批量数据的校验,会用到存储过程造数据

存储过程的固定格式
create procedure #创建存储过程
begin #存储过程的开始
存储过程的内容
end #存储过程的结束

call 存储过程名称(参数):调用存储过程

drop procedure + 存储过程名称:删除存储过程

创建存储过程
DROP PROCEDURE IF EXISTS dcs20; #在执行创建新的存储过程之前,把原有的存储过程删除,保证健壮性
CREATE PROCEDURE dcs20(n int)  #创建存储过程,n是变量,int是变量的数据类型
BEGIN #开始
drop TABLE if EXISTS aa; #如果存在aa表就删除它
CREATE TABLE aa(id int(5)PRIMARY KEY auto_increment,score int(5));
INSERT INTO aa VALUES(1,88),(2,75),(3,79),(4,95),(5,85),(6,63),(7,90),(8,99);
#SELECT * FROM aa; #查询aa表中的所有数据
SELECT * FROM aa WHERE id = n; #带参数查询
END

CALL dcs20(8) #调用存储过程

分享至 : QQ空间
收藏

0 个回复

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