mysql 获取游标索引_MYSQL视图 事务 游标 索引及其使用
select * from(select nid,name from tb1 where nid > 2) As A where A.NAME > 'alex';
#创建视图
create view vi As
select nid,name from A WHERE nid > a;
#删除视图
drop view vi
#修改视图
alter view vi As
select A.nid,B.NAME FROM A
left join B ON A.id = B.nid
left join C ON A.id = C.nid
WHERE
A.id > 2
AND C.nid < 5
#使用视图
select * from vi
#事务
delimiter //
create procedure p1(
OUT p_return_code tinyint
)
BEGIN
DECLEAR exit handler for sqlexception
BEGIN
--ERROR
set p_return_code = 1;
rollback;
END;
DECLEAR exit handler for sqlwarning
BEGIN
--WARNING
set p_return_code = 2;
rollback;
END;
START TRANSACTION;
DELETE from tb1;
insert into tb(name) values ('seven');
COMMIT;
--SUCCESS
set p_return_code = 0;
END\\
delimiter ;
#游标
delimiter //
create procedure p3()
begin
declare ssid int; --自定义变量1
declare ssname varchar(50); --自定义变量2
DECLARE done INT DEFAULT FALSE;
DECLARE my_cursor CURSOR FOR select sid,sname from student;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = True;
open my_cursor;
xxoo: LOOP
fetch my_cursor into ssid,ssname;
if done then
leave xxoo;
END IF;
insert into teacher(tname) values(ssname);
end loop xxoo;
close my_cursor;
end //
delimiter ;
#动态执行SQL
delimiter \\
CREATE PROCEDURE p4(
in nid int
)
BEGIN
PREPARE prod FROM 'select * from student where nid > ?';
EXECUTE prod USING @nid;
DEALLOCATE prepare prod;
END\\
delimiter ;
#删除存储过程
drop procedure proc_name;
#执行存储过程
--无参数
call proc_name()
--有参数
call proc_name(1,2)
--有参数,有in, out, inout
set @t1=0;
set @t2=3;
call proc_name(1,2,@t1,@t2)
#自定义函数
delimiter \\
create function f1(
i1 int,
i2 int)
return int
BEGIN
declare num int;
set num = i1 + i2;
return(num);
END \\
delimiter ;
#删除函数
drop function func_name;
#执行函数
#1.获取返回值
declare @i VARCHAR(32);
select UPPER('alex') into @i;
SELECT @i;
#2.在查询中使用
select f1(li,nid), name from tb2;
#支持事务的存储过程
set @i = 0;
call p1(@i);
select @i;
class UserInfoRespository:
def get_all(self):
sql = 'select * from uesrinfo'
return fetchall()
def get_one_by_user_pwd(self, username, password):
sql = 'select * from userinfo where username=%s and password=%s'
cursor.execute(sql,username,password)
return cursor.fetchone()
def add():
sql = "insert into userinfo(...) values (...)"
conn.commit()
obj = UserInfoRespository()
obj.get()
#索引
#创建表+索引
普通索引:加速查询
create table in1(
nid int not null auto_increment primary key,
name varchar(32) not null,
email varchar(64) not null,
extra text,
index ix_name (name)
)
#创建索引
create index index_name on table_name(column_name);
#删除索引
drop index_name on table_name;
#查看索引
show index from table_name;
#如果创建索引时BLOB和TEXT类型,必须指定length
create index ix_extra on ini(extra(32))
2.唯一索引
加速查询和唯一约束(可含null)
创建表+唯一索引
create table in1(
nid int not null auto_increment primary key,
name varchar(32) not null,
email varchar(64) not null,
extra text,
unique ix_name (name)
)
#创建唯一索引
create unique index 索引名 on 表名(列名);
#删除唯一索引
drop unique index 索引名 on 表名;
3.主键索引
加速查询和唯一约束(不可含null)
create table in1(
nid int not null auto_increment primary key,
name varchar(32) not null,
email varchar(64) not null,
extra text,
index ix_name (name)
)
OR
create table in1(
nid int not null auto_increment,
name varchar(32) not null,
email varchar(64) not null,
extra text,
primary key(nid),
index ix_name (name)
)
#创建主键
alter table 表名 add primary key(列名);
#删除主键
alter table 表名 drop primary key;
alter table 表名 modify 列名 int, drop primary key;
#组合索引
创建组合索引
create index ix_name_email on in3(name, email);
repeat循环
delimiter \\
CREATE PROCEDURE proc_repeat()
BEGIN
DECLARE i INT ;
SET i = 0;
repeat
select i;
set i = i + 1;
until i >= 5
end repeat;
END\\
delimiter ;
loop循环
BEGIN
declare i int default 0;
loop_label:loop
set i = i + 1;
if i < 8 then
iterate loop_label;
end if;
if i >= 10 then
leave loop_label;
end if;
select i;
end loop loop_label;
END
#动态执行SQL语句
delimiter \\
DROP PROCEDURE IF EXIST proc_sql \\
CREATE PROCEDURE proc_sql ()
BEGIN
declare p1 int;
set p1 = 11;
set @p1 = p1;
PREPARE prod FROM 'select * from tb2 where nid > ?';
EXECUTE prod USING @p1;
DEALLOCATE prepare prod;
END\\
delimiter;
mysql 获取游标索引_MYSQL视图 事务 游标 索引及其使用相关推荐
- mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天
mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...
- mysql游标进阶_mysql进阶(三)游标简易教程
mysql游标简易教程 从mysql V5.5开始,进行了一次大的改变,就是将InnoDB作为默认的存储引擎.InnoDB支持事务,而且拥有相关的RDBMS特性:ACID事务支持,数据完整性(支持外键 ...
- mysql 为游标赋值_mysql 存储过程之游标
游标按我的理解就是用在sql编程中对查询结果集的解析,类比jdbc中的resultset对象.FETCH 一行游标指针就往下面移动一行,直到所有行被遍历完成. 游标的使用分为4步: 1.定义游标,指定 ...
- mysql实验视图及索引_MySQL视图及索引
视图 视图就是一个表或多个表的查询结果,它是一张虚拟的表,因为它并不能存储数据. 视图的作用.优点: 限制对数据的访问 让复杂查询变得简单 提供数据的独立性 可以完成对相同数据的不同显示 //创建.修 ...
- mysql二级索引_mysql 什么是二级索引
ALTER TABLE t1 ADD INDEX(or CREATE INDEX) ALTER TABLE t1 ADD FULLTEXT INDEX ALTER TABLE t1 ADD COLUM ...
- mysql优化varchar索引_MySQL优化--概述以及索引优化分析
一.MySQL概述 1.1.MySQL文件含义 通过如下命令查看 show variables like '%dir%'; MySQL文件位置及含义 名称 值 备注 basedir /usr/ 安装路 ...
- MySQL支持的四种索引_Mysql常见四种索引的使用
提到mysql优化,索引优化是必不可少的.其中一种优化方式 --索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升. 我们知道项目性能的瓶颈主要是在"查(select)&q ...
- mysql锁机制和索引_MySql锁机制及索引 · 十年饮冰,难凉热血
一:ACID 原子性:对数据库的修改,要么都执行,要么都不执行 一致性:事务开始和结束时,都必须保持一致状态,事务结束时,索引等也必须完全正确 隔离性:事务处理过程中的中间状态对外部都是不可见的,反之 ...
- mysql原生建立索引_MySQL学习笔记之索引
索引是存储引擎用于快速找到记录的一种数据结构. 索引对于良好的性能非常关键.尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要.在数据量较小且负载较低时,不恰当的索引对性能的影响可能还不明显,但 ...
最新文章
- 划重点了!网络推广网站在建设时期该如何进行优化?
- 跨浏览器的CSS固定定位{position:fixed}
- const的使用CC++
- 大话数据结构 06:栈 顺序存储结构
- CentOS 7 定时计划任务设置
- php链接javascript,javascript - 添加类=“行为链接”到活动页面 - PHP或JS - SO中文参考 - www.soinside.com...
- markdown引入代码_markdown简单使用之插入代码段
- 通俗易懂!视觉slam第四部分——slam刚体三维空间运动
- 内容可编辑且随内容自增长的div
- PLC和MCU单片机有什么差异
- MyBatis创建视图
- word文件转pdf转换器11.0注册码
- Java指定屏幕区域截屏
- 校OJ P1220 -- zyf的现状
- 基于LSTM算法的股票预测详解
- 整站SEO优化方案:整站优化的方案的流行格式
- 技术到管理岗位的角色转换:从优秀骨干到优秀管理者
- gluster volume
- Google 就业岗分析
- 利用Cadence软件中的Model Editor工具和元器件的模型文本文件创建Spice模型