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视图 事务 游标 索引及其使用相关推荐

  1. mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天

    mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...

  2. mysql游标进阶_mysql进阶(三)游标简易教程

    mysql游标简易教程 从mysql V5.5开始,进行了一次大的改变,就是将InnoDB作为默认的存储引擎.InnoDB支持事务,而且拥有相关的RDBMS特性:ACID事务支持,数据完整性(支持外键 ...

  3. mysql 为游标赋值_mysql 存储过程之游标

    游标按我的理解就是用在sql编程中对查询结果集的解析,类比jdbc中的resultset对象.FETCH 一行游标指针就往下面移动一行,直到所有行被遍历完成. 游标的使用分为4步: 1.定义游标,指定 ...

  4. mysql实验视图及索引_MySQL视图及索引

    视图 视图就是一个表或多个表的查询结果,它是一张虚拟的表,因为它并不能存储数据. 视图的作用.优点: 限制对数据的访问 让复杂查询变得简单 提供数据的独立性 可以完成对相同数据的不同显示 //创建.修 ...

  5. mysql二级索引_mysql 什么是二级索引

    ALTER TABLE t1 ADD INDEX(or CREATE INDEX) ALTER TABLE t1 ADD FULLTEXT INDEX ALTER TABLE t1 ADD COLUM ...

  6. mysql优化varchar索引_MySQL优化--概述以及索引优化分析

    一.MySQL概述 1.1.MySQL文件含义 通过如下命令查看 show variables like '%dir%'; MySQL文件位置及含义 名称 值 备注 basedir /usr/ 安装路 ...

  7. MySQL支持的四种索引_Mysql常见四种索引的使用

    提到mysql优化,索引优化是必不可少的.其中一种优化方式 --索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升. 我们知道项目性能的瓶颈主要是在"查(select)&q ...

  8. mysql锁机制和索引_MySql锁机制及索引 · 十年饮冰,难凉热血

    一:ACID 原子性:对数据库的修改,要么都执行,要么都不执行 一致性:事务开始和结束时,都必须保持一致状态,事务结束时,索引等也必须完全正确 隔离性:事务处理过程中的中间状态对外部都是不可见的,反之 ...

  9. mysql原生建立索引_MySQL学习笔记之索引

    索引是存储引擎用于快速找到记录的一种数据结构. 索引对于良好的性能非常关键.尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要.在数据量较小且负载较低时,不恰当的索引对性能的影响可能还不明显,但 ...

最新文章

  1. 划重点了!网络推广网站在建设时期该如何进行优化?
  2. 跨浏览器的CSS固定定位{position:fixed}
  3. const的使用CC++
  4. 大话数据结构 06:栈 顺序存储结构
  5. CentOS 7 定时计划任务设置
  6. php链接javascript,javascript - 添加类=“行为链接”到活动页面 - PHP或JS - SO中文参考 - www.soinside.com...
  7. markdown引入代码_markdown简单使用之插入代码段
  8. 通俗易懂!视觉slam第四部分——slam刚体三维空间运动
  9. 内容可编辑且随内容自增长的div
  10. PLC和MCU单片机有什么差异
  11. MyBatis创建视图
  12. word文件转pdf转换器11.0注册码
  13. Java指定屏幕区域截屏
  14. 校OJ P1220 -- zyf的现状
  15. 基于LSTM算法的股票预测详解
  16. 整站SEO优化方案:整站优化的方案的流行格式
  17. 技术到管理岗位的角色转换:从优秀骨干到优秀管理者
  18. gluster volume
  19. Google 就业岗分析
  20. 利用Cadence软件中的Model Editor工具和元器件的模型文本文件创建Spice模型

热门文章

  1. Go语言学习笔记(一)Let's 干吧
  2. Swift 中的 @autoclosure
  3. 减少HQL 的MAP数
  4. 服务器端linux发行版的选择
  5. mysqldump 导入数据库可能遇到错误
  6. 智能家居数据获得美好生活的6种方法
  7. 《Ember.js实战》——2.3 计算属性
  8. 正确配置Linux系统ulimit值的方法【转】
  9. sql中exists,not exists的用法
  10. Dispatch_queue