MYSQL中SHOW的使用整理收藏

好记性不如乱笔头吧....下面收藏整理了mysql中show 的使用技巧....有需要的博友可以看看哈

a. show tables或show tables from database_name; // 显示当前数据库中所有表的名称
b. show databases; // 显示mysql中所有数据库的名称
c. show columns from table_name from database_name; 或show columns from database_name.table_name;   // 显示表中列名称
d. show grants for [email protected]calhost;   //   显示一个用户的权限,显示结果类似于grant 命令
e. show index from table_name;   // 显示表的索引
f. show status [like ‘‘];   // 显示一些系统特定资源的信息,例如,正在运行的线程数量
g. show [session/global] variables [like ‘‘]; // 显示系统变量的名称和值

h. show   processlist; // 显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。
i. show table status; // 显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间
j. show privileges;   // 显示服务器所支持的不同权限
k. show create database database_name; // 显示create database 语句是否能够创建指定的数据库
l. show create table table_name; // 显示create database 语句是否能够创建指定的数据库
m. show engies bdb logs;   // 显示安装以后可用的存储引擎和默认引擎。
n. show innodb status; // 显示innoDB存储引擎的状态
o. show logs; // 显示BDB存储引擎的日志
p. show warnings; // 显示最后一个执行的语句所产生的错误、警告和通知
q. show errors; // 只显示最后一个执行语句所产生的错误
r. show create table tablename; //显示建表的详细信息及语法和引擎
s. show table status [from database];   //显示本数据库中所有表的详细信息

-----------------------------------------------
Mysql存储过程:
show create procedure sp_name --显示某一个存储过程的详细信息

一下午研究了两个内容:触发器与过程.
触发器是在执行某种操作(插入,更新,删除)时(前,后)进行的操作. 这个功能完全可以由C语言实现,而且更简单. mysql中触发器的使用还要涉及到变量之类的,不如用C实现起来简单,所以这里就不介绍了.
过程(procedure)相当于C语言中的子函数:
1,创建:
Mysql的show命令create procedure procedure_name() select * from table_name;
2,调用:
Mysql的show命令call procedure_name;
3,查看:
Mysql的show命令查看过程的内容有三种方法:
Mysql的show命令 1,show create procedure procedure_name;
Mysql的show命令 2,show procedure status like ‘procedure_name‘
Mysql的show命令 3,select * from mysql.proc where name=‘procedure_name‘
4,删除:

Mysql的show命令drop procedure procedure_name;
一些存储过程以及函数的例子
delimiter |
定义procedure
create procedure p2_test1 (OUT para1 int)
begin
select sum(val) into para1 from test1;
end
|
调用procedure
call p2_test1(@sum)|
select @sum|

alter procedure没有研究出来

定义函数
create function f_test1(name char(20)) returns char(20)   //参数没有IN,OUT,都是IN
begin
return concat(‘Hello ‘,name,‘ !‘);
end
|
调用函数
select f_test1(‘hongjian‘)|

三种不同的show的用法
show procedure status
show function status
show triggers    //注意,没有status

语法:
CREATE PROCEDURE sp_name ([IN |OUT |INOUT] param type,...)
begin
routine_body
end

CREATE FUNCTION sp_name (para,...) RETURNS type
begin
routing_body
end
mysql5支持的存储过程语句
声明 描述

CREATE PROCEDURE 建立一个存放在MySQL数据库的表格的存储过程。
REATE FUNCTION 建立一个用户自定义的函数,尤其是返回数据的存储过程。
ALTER PROCEDURE 更改用CREATE PROCEDURE 建立的预先指定的存储过程,其不会影响相关存储过程或存储功能。.
ALTER FUNCTION 更改用CREATE FUNCTION 建立的预先指定的存储过程,其不会影响相关存储过程或存储功能。.
DROP PROCEDURE 从MySQL的表格中删除一个或多个存储过程。
DROP FUNCTION 从MySQL的表格中删除一个或多个存储函数。
SHOW CREATE PROCEDURE 返回使用CREATE PROCEDURE 建立的预先指定的存储过程的文本。这一声明是SQL:2003规范的一个MySQL扩展。
SHOW CREATE FUNCTION 返回使用CREATE FUNCTION建立的预先指定的存储过程的文本。这一声明是SQL:2003规范的一个MySQL扩展。
SHOW PROCEDURE STATUS 返回一个预先指定的存储过程的特性,包括名称、类型、建立者、建立日期、以及更改日期。这一声明是SQL:2003规范的一个MySQL扩展。
SHOW FUNCTION STATUS 返回一个预先指定的存储函数的特性,包括名称、类型、建立者、建立日期、以及更改日期。这一声明是SQL:2003规范的一个MySQL扩展。
CALL 调用一个使用CREATE PROCEDURE建立的预先指定的存储过程。
BEGIN ... END 包含一组执行的多声明。
DECLARE 用于指定当地变量、环境、处理器,以及指针。
SET 用于更改当地和全局服务器变量的值。
SELECT ... INTO 用于存储显示变量的纵列。
OPEN 用于打开一个指针。
FETCH 使用特定指针来获得下一列。
CLOSE 用于关闭和打开指针。
IF 一个An if-then-else-end if 声明。
CASE ... WHEN 一个 case声明的结构
LOOP 一个简单的循环结构;可以使用LE***E 语句来退出。
LE***E 用于退出IF,CASE,LOOP,REPEAT以及WHILE 语句。
ITERATE 用于重新开始循环。
REPEAT 在结束时测试的循环。
WHILE 在开始时测试的循环。
RETURNS 返回一个存储过程的值
建一个存储过程
create procedure p1(appid varchar(50))
begin
select APPNAME from APPINFO where ID=appid;
end
在mysq1中不支持create or replace procedure p1()

删除存储过程
drop procedure p1;

若要查看当前数据库中所有已存在的存储过程,则输入:show procedure status;
若要查看某一个存储过程,则输入:show create procedure proc_name;

//使用游标
create procedure p3()
begin
//可以把相同类型的变量放在一起声明
declare sum,t,no_more_record Integer;
DECLARE cursor_total CURSOR FOR select Total from PNUMBER;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_record=1;//此处必须先声明no_more_record
//必须把所有变量都声明完后,才能给变量赋值
set sum=0,t=0,no_more_record=0;//可以在同一行给多个变量赋值
open cursor_total;
repeat
fetch cursor_total into t;//mysql在取下一条记录时,若为空,则将no_more_record赋为1,但其记录还是最后一条记录
if(no_more_record!=1) then
set sum=sum+t;
end if;
until no_more_record
end repeat;//此处必须有分号
close cursor_total;
set no_more_record=0;
end
时间: 2024-10-19 07:31:49

MYSQL中SHOW的使用整理收藏的相关文章

mysql中常用的语句整理

mysql中常用的语句: 1:创建带自增长的主键的表 DROP TABLE IF EXISTS user_login ; CREATE TABLE user_login (   user_id INT  UNSIGNED NOT NULL AUTO_INCREMENT,   user_name VARCHAR(50) DEFAULT NULL,   PRIMARY KEY user_id ) ENGINE=MYISAM  AUTO_INCREMENT=0  DEFAULT CHARSET=utf

MySQL中使用SHOW PROFILE命令分析性能的用法整理(配合explain效果更好,可以作为优化周期性检查)

这篇文章主要介绍了MySQL中使用show profile命令分析性能的用法整理,show profiles是数据库性能优化的常用命令,需要的朋友可以参考下 show profile是由Jeremy Cole捐献给MySQL社区版本的.默认的是关闭的,但是会话级别可以开启这个功能.开启它可以让MySQL收集在执行语句的时候所使用的资源.为了统计报表,把profiling设为1 mysql> SET profiling = 1; 之后在运行一个查询 mysql> SELECT COUNT(DIS

整理了以下四种在MySQL中修改root

整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助! 方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 方法2:用mysqladmin mysqladmin -u root password "newpass" 如果root已经设置过密码,采用如下方法 mysqladmin -u root password o

MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题 收藏 MySQL中涉及的几个字符集

MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的.character-set-database:数据库字符集.character-set-table:数据库表字符集.优先级依次增加.所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集.character-set-client:客户端的字符

《PHP框架Yii学习》系列技术文章整理收藏

<PHP框架Yii学习>系列技术文章整理收藏 1Yii Framework框架获取分类下面的所有子类方法 2YII模块实现绑定二级域名的方法 3Yii框架官方指南系列43——专题:URL(创建.路由.美化及自定义) 4Yii入门教程之目录结构.入口文件及路由设置 5Yii核心组件AssetManager原理分析 6Yii使用ajax验证显示错误messagebox的解决方法 7Yii框架中memcache用法实例 8Yii中CGridView关联表搜索排序方法实例详解 9yii实现CheckB

《PHP框架ThinkPHP学习》系列技术文章整理收藏

<PHP框架ThinkPHP学习>系列技术文章整理收藏 1修改ThinkPHP缓存为Memcache的方法 2Thinkphp实现MySQL读写分离操作示例 3ThinkPHP调用百度翻译类实现在线翻译 4使用ThinkPHP+Uploadify实现图片上传功能 5Thinkphp使用mongodb数据库实现多条件查询方法 6ThinkPHP实现多数据库连接的解决方法 7改写ThinkPHP的U方法使其路由下分页正常 8ThinkPHP实现将SESSION存入MYSQL的方法 9ThinkPH

mysql中bigint、int、mediumint、smallint 和 tinyint的取值范

mysql数据库设计,其中,对于数据性能优化,字段类型考虑很重要,搜集了些资料,整理分享出来,这篇为有关mysql整型bigint.int.mediumint.smallint 和 tinyint的语法介绍,如下:1.bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字),无符号的范围是0到 18446744073709551615.一位为 8 个字节. 2.int 一个正常大小整数.有符号

mysql中bigint、int、mediumint、smallint 和 tinyint的取值范围

mysql数据库设计,其中,对于数据性能优化,字段类型考虑很重要,搜集了些资料,整理分享出来,这篇为有关mysql整型bigint.int.mediumint.smallint 和 tinyint的语法介绍,如下:1.bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字),无符号的范围是0到 18446744073709551615.一位为 8 个字节. 2.int 一个正常大小整数.有符号

mysql中各个模块如何协同工作

mysql各个模块如何协同工作的,我们通过启动mysql.客户端连接.请求query,得到返回结果,最后退出.这个过程来看一下. 执行启动mysql命令后,mysql的初始化模块从配置文件中读取系统参数与命令行参数,并按参数来初始化整个系统.同时各个存储引擎也被启动,并进行各自的初始化工作. 当整个系统初始化结束后,连接管理模块接手,连接管理模块启动处理客户端连接请求的监听程序,包括tcp/ip网络监听,还有unix的socket.此时mysql server基本启动完成,准备好接受客户端请求.