视图、索引、事务

视图

Create  VIEW 名字 As   sql语句

不是一张真实的表,可以当作一张表来使用。一般不会进行更新操作。

索引

维护有代价

加索引能够快速的查到某项数据,替代了全表扫描

索引是一个“内置表”,该表的数据是对某个真实表的某个(些)字段的数据做了“排序”之后的存储形式。

其作用是:极大提高表查找数据的速度!——其效率(速度)可以匹敌二分查找(非常著名的算法)。

注意:索引在提高查找速度的同时,降低增删改的速度。对创建(设计)表来说,建立索引是非常简单的事,形式如下:

索引类型 (字段名1,字段名2, .... ) //可以使用多个字段建立索引,但通常是一个

MySQL目前主要有以下几种索引类型:

1.普通索引

2.唯一索引

3.主键索引

4.组合索引

1、普通索引:key(字段名1,字段名2, .... ):它只具有索引的基本功能——提速(其他索引不但有提速还有额外功能)

2、唯一索引:unique key (字段名1,字段名2, .... ) duplicate

3、主键索引:primary key (字段名1,字段名2, .... ) unique key + not null

CREATE TABLE product(
    id INT PRIMARY KEY auto_increment,
    `name` VARCHAR(10),
    address VARCHAR(50),
    KEY(`name`)
);

存储过程

-- 存储过程  类似于java中函数
CREATE TABLE product(
    id INT PRIMARY KEY auto_increment,
    `name` VARCHAR(10),
    address VARCHAR(50),
    KEY(`name`)
);

在“;”处不能够称之为一条完整的SQL语句,所以需要将结束条件重新定义,通过delimiter。

触发器

是一个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件触发。

触发器经常用于加强数据的完整性约束和业务规则等。

CREATE TABLE student_total(
    total INT
);
SELECT * FROM student_total;
​
INSERT INTO student(`name`, age, gender) VALUES('xxxx11',20,'男'); 
--触发器
DELIMITER $$
CREATE TRIGGER student_insert_trigger
AFTER INSERT ON student FOR EACH ROW
BEGIN
    UPDATE student_total SET total=total+1;
END $$
DELIMITER ;

char 与 varchar区别

char:定长,char(M),M代表宽度,即:可容纳的字符数 0<=M<=255。

char(10):可存10个字符

varchar:变长,varchar(M), 0<=M<=65535

区别:char是定长:M个字符,如果存的小于M个字符,实占M个字符。

varchar:M个字符,存的小于M个字符,设定为N,N<M,实占N个字符。

选择原则:1、空间利用率。2、速度上:定长的速度快。

varchar利用率永远达不到100%,不适合存储像性别这种一个字符的内容

数据库存储引擎

常用:Myisam ,批量插入、查询速度快, 不支持事务, 锁表

Innodb, 批量插入、查询相对较慢,支持事务, 锁行. (默认)

事务

概念:事物是指逻辑上的一组操作,组成这组操作的各个单元,要么全部执行成功,要么全部实行失败。

例:李三: --->支出 500, 李三 -500

赵四: ---->收到500, 赵四 +500

开启事务: start transaction;

Sql....

Sql....

Commit 提交

rollback 回滚

注意: 当一个事务commit,或者rollback就结束了

事务基本原理

1、不用事务,直接作用于表

 

2、用了事务之后

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值