数据库存储过程,Mysql视图,Mysql语句
Posted dearYou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库存储过程,Mysql视图,Mysql语句相关的知识,希望对你有一定的参考价值。
相关链接: https://www.cnblogs.com/chenpi/p/5133648.html https://www.cnblogs.com/huanongying/p/7021555.html
事务的隔离级别是针对链接挂而言的,不同链接(Connection)可以有不同的隔离级别。
事务并发问题:
读脏数据:一个事务读到了其他事务被回滚的数据。
不可重复读:一个事务多次读同一条记录,由于其他事务的修改,读到的结果不一致。
幻读:一个事务多次读取满足条件的记录,由于其他事务进行增删操作,读到的数目不同。
不可重复读需要锁行,幻读需要锁表。
mysql事务隔离的四个级别:
读未提交(read-uncommitted):会出现脏读、幻读、不可重复读
read-committed :不会出现脏读,会出现幻读、不可重复读
repeatable-read:不会出现脏读、不可重复读、幻读
serializable:不会出现脏读、幻读、不可重复读
mysql默认的事务隔离级别是 repeatable-read
SQL,结构化存储语言,有自己的语法规则。存储过程使得,一系列sql语句可以通过函数调用的形式进行使用。
sql语句是运行时编译执行的,而存储过程可以预编译,性能快一些。
mysql 变量表示形式,@varName
use life; set @param = "ddd"; set @param2 = 1; select @param, @param2;
mysql的存储过程:
mysql 定义存储过程的时候,如果过程体是很多条语句,需要使用begin end,但是在begin end中间写;会报错,说begin没有配套的end。解决方式是DELIMITER // 。。。DELIMITER ;
mysql的DELIMITER 表示解释器在遇到什么符号的时候可以开始执行。
drop procedure if exists selectById; DELIMITER // create procedure selectById( a int) begin select * from family where _id =a; end// DELIMITER ; set @a = 1; call selectById(@a);
sql视图:select的结果的结构叫做视图,视图和基本表有区别。视图通过基本表或视图运算得到,它引用基本表的数据,不存储具体的数据。
视图方便操作,减少复杂的查询语句。
对视图进行的增删改操作要符合基本表的约束,例如:使用insert、delete操作视图来操作基本表,需要保证未出现在视图中的列都允许空。(!delete 也需要)
mysql部分数据类型 tinyint 1字节,int 4字节,bigint 8字节,float 4字节,double 8字节。
char(n) 定长字符串,varchar(n)不定长字符串,text 长文本数据( 5.0.3以上版本 varchar长度可以很大, 可使用varchar 存储长文本,节省空间 )
创建数据库,创建表
drop database if exists life; create database life; use life; drop table if exists family; create table family ( fullName varchar(8), info varchar(300) ); alter table family add column _id int not null primary key auto_increment; insert into family (fullName, info) values("father","love food"); insert into family (fullName, info) values("mother", "love flowers"); insert into family (fullName, info) values("brother", "sunny boy"); insert into family (fullName, info) values("sister", "shy girl"); drop table if exists worklife; create table worklife( _id int not null primary key auto_increment, _name varchar(40), detail varchar(800) ); insert into worklife (_name, detail) values ("first_c", "say goodbye to school"); insert into worklife (_name, detail) values ("second_c", "say goodbye to first leader"); insert into worklife (_name, detail) values ("known", "spring is coming");
修改表结构:
alter table t_name add column col_name col_type;
alter table t_name drop column col_name ;
alter table t_name add primary key (col_name);
alter table t_name drop primary key (col_name);
增删改查
insert into t_name values (all col_values)
insert into t_name (interested col_names) values (col_values)
select * from t_name where condition_words;
update t_name set field1 = field1+3
select t_col_name as v_col_name from t_name where
select avg(t_col_name) as v_col_name from t_name where
求和函数sum,求平均数avg 最大值max,最小值min
delete from t_name where
以上是关于数据库存储过程,Mysql视图,Mysql语句的主要内容,如果未能解决你的问题,请参考以下文章
MYSQL数据库重点:流程控制语句自定义函数存储过程触发器事件视图
MySQL 系列你不知道的 视图触发器存储过程函数事务索引语句