【mysql中 if语句的使用】教程文章相关的互联网学习教程文章

Mysql语句优化

mysql中的in语句是把外表和内表作hash 连接,而exists语句是对外表作loop循环,每次loop循环再对内表进行查询。exists与in性能的好坏不能一概而论,要根据表的大小,索引来决定。一.如果查询的两个表大小相当,那么用in和exists差别不大。 如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in: 例如:表A(小表),表B(大表)1:select * from A where cc in (select cc from B) 效率低,用到了A表上c...

MySQL导出所有账号的GRANTS语句

MYSQL_BASE=/opt/mysqlMYSQL_DATA=/dataMYSQL_USER=rootMYSQL_PASSWORD=password123MYSQL_PORT=3306MYSQL_LOGIN="${MYSQL_BASE}/bin/mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} -S ${MYSQL_DATA}/${MYSQL_PORT}/mysql.sock" for i in ${MYSQL_LOGIN} -N -e "select user,host from mysql.user;"| awk ‘{print "‘\‘‘" $1 "‘\‘‘" "@" "‘\‘‘" $2 "‘\‘‘"}‘; do ${MYSQL_LOGIN} -N -e " show grants for $i;"; done#里...

mysql查询语句分析 explain用法【代码】【图】

explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。使用方法,在select语句前加上explain就可以了,如:explain select * from statuses_status where id=11;explain列的解释table:显示这一行的数据是关于哪张表的type:这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、indexhe和allpossible_keys:显示可能应用在这张表中的...

MySQL的SQL语句 - 数据操作语句(13)- 子查询(6)【代码】

行子查询 标量或列子查询返回单个值或一列值。行子查询是子查询的变体,返回单行,可以返回多个列值。行子查询比较的合法运算符包括:1. = > < >= <= <> != <=>两个例子: 1. SELECT * FROM t1 2. WHERE (col1,col2) = (SELECT col3, col4 FROM t2 WHERE id = 10); 3. SELECT * FROM t1 4. WHERE ROW(col1,col2) = (SELECT col3, col4 FROM t2 WHERE id = 10); 对于这两个查询,如果表 t2 包含 id = 10 的一行记录,则子...

mysql中利用sql语句修改字段名称,字段长度等操作【图】

在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改表或字段的注释,把同字段属性调整到一块儿。这些操作可以在phpmyadmin或者别的mysql管理工具中完成,但是我们有时为了更方便的管理,会选择写sql语句来实现。1.修改字段的长度语法:ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型(修改后的长度)例子:将字段的长度由10改为20 ALTER TABLE attence MODIFY COLU...

MySQL循环语句之while循环测试【代码】

mysql 操作同样有循环语句操作,网上说有3中标准的循环方式: while 循环 、 loop 循环和repeat循环。还有一种非标准的循环: goto。 鉴于goto 语句的跳跃性会造成使用的的思维混乱,所以不建议使用。这几个循环语句的格式如下: WHILE……DO……END WHILE REPEAT……UNTIL END REPEAT LOOP……END LOOP GOTO。目前我只测试了 while 循环: delimiter $$    // 定义结束符为 $$ drop procedure if exists wk; // 删除 已有的 ...

解决mysql 允许执行 XA RECOVER语句(atomikos 解决分布式事务报错)

当前访问mysql的账号root缺少系统权限,执行以下sql语句即可GRANT XA_RECOVER_ADMIN ON *.* TO root@‘%‘ ; 查看mysql当前访问用户的权限 show grants for 用户名@‘主机地址(%代表任意ip)‘ 参考:https://blog.csdn.net/qq_43028054/article/details/93138503mysql权限介绍链接:https://blog.csdn.net/qq_20387013/article/details/89875332 原文:https://www.cnblogs.com/jsfh/p/13404223.html

MySQL检索数据-SELECT查询语句【代码】【图】

students表 1. 检索单个列SELECT name FROM students 返回结果:2. 检索多个列--用逗号分隔列名SELECT name,age,class FROM students返回结果:3. 检索所有列--使用星号*通配符SELECT*FROM students返回结果: 4. 检索不同的行(返回结果去重)--使用DISTINCTSELECTDISTINCT class FROM students返回结果:5. 限制结果--使用LIMIT子句,限制结果显示从第0行开始的1条数据SELECT*FROM students LIMIT 0,1--也可以写作LIMIT 1或LIMIT...

Mysql储存过程3:if语句【代码】

--if/else语句if 条件 then SQL语句 else SQL语句elseifSQL语句 endif;createprocedure test1(numberint )beginifnumber>10thenselectuser();elseselect‘please input a number > 10‘;endif;end$mysql>createprocedure test1(->numberint-> )->begin->ifnumber>10then->selectuser();->else->select‘please input a number > 10‘;->endif;->end$ Query OK, 0 rows affected (0.00 sec)mysql> call test1()$ ERROR 1318 (42000)...

MySQL查看SQL语句执行效率

Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。Explain语法:explain select … from … [where ...]例如:explain select * from news;输出:+----+-------------+-------+-------+-------------------+---------+---------+-------+------+-------+| id | select_type |...

如何记录MySQL执行过的SQL语句【代码】

很多时候,我们需要知道 MySQL 执行过哪些 SQL 语句,比如 MySQL 被注入后,需要知道造成什么伤害等等。只要有 SQL 语句的记录,就能知道情况并作出对策。服务器是可以开启 MySQL 的 SQL 语句记录功能,从而就能间接地检测到客户端程序的行为。涞水县梁以纸业开启方法很简单:编辑/etc/my.cnf文件,在[mysqld]节下面添加:log=/var/lib/mysql/sql_row.log行(日志的路径自己根据需要定义)。[mysqld] datadir=/var/lib/mysql socke...

复习mysql语句

1.创建用户 create user ‘lai‘@‘localhost‘ identified by ‘123‘;2.修改用户 rename user ‘lai‘@‘localhost‘ to ‘tong‘@‘localhost‘;3.删除用户 drop user ‘tong‘@‘localhost‘;4.查看权限show grants for ‘tong‘@‘localhost‘;5.授予权限 grant select on db1.student to ‘tong‘@‘localhost‘;6.取消权限revoke select on db1.student from ‘tong‘@‘localhost‘;7.创建表与主键和 外键create table col...

mysql基础语句【代码】【图】

/*由于目前mysql工具多而且方便,例如 SQLyog,所以其实建数据库建表(甚至增删改查)只需在这类工具中操作即可,这样还可以把错误降到最低。只有遇到较为棘手或者编程中才会用到以下语句不然就尽量采用mysql工具来操作防止出错。*/#建立数据库aaa,aaa有个xg_role表,设计表xg_role如下: #mysql在windows中字段名称不区分#mysql在linux,unix中字段名称要区分的#mysql中"#"是的单行注释,而"/* 注释内容 */"是多行注释。/* 增 */INS...

Mysql编写sql语句的小技巧【代码】

1、查询数据(保证查询性能)SELECT* 和 SELECT t.id , t.name:后者性能其实总体优于前者。2、在查询的时候最好给表起个 别名,方便找到表中要查询的字段。执行sql的进行多条件查询的时候,使用类如Navicat 之类的工具,按照下面这种格式写查询sql:SELECT cus.uuid , cus.customerId FROM `customer` cus where1=1and cus.uuid=‘‘-- and cus.customerId=‘‘and cus.customerName=‘‘or cus.authState=‘‘-- or cus.createT...

MYSQL的常用命令和增删改查语句和数据类型

连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 显示所有数据库: show databases; 打开数据库:use [库名] 当前选择的库状态:SELECT DATABASE(); 创建数据表:CREATE TABLE [表名]([字段名] [字段类型]([字段要求]) [字段参数], ......); 显示数据表字段:describe 表名; 当前库数据表结构:show tables; 更改表格  ALTER TABLE [表名] ADD COLUMN [字段名] DATATYPE 说明:...