查看一个数据库的视图情况:
show full tables in test where table_type like '%view%'
上面的语句的功能是,查看test数据库中的所有视图。
-----------------------------------------------------------
上面的三行只是一个小插曲。不过也基础的表示了show功能的强大。show可以用来查看mysql服务器的状态、数据库装态、表的状态等。
show关键字的用法可以在后面跟上in关键字。不如说文章第二行的in test,就是说把当前的这个查询的结果限制在test数据库中。
其实,在使用了use test来选择了test数据库之后,第二行的代码就可以去掉in test了,默认就是在test数据库中进行查询。
----------------------------看下面的show的用法--------------------------------
SHOW [FULL] COLUMNS FROM tbl_name [FROM db_name] [LIKE 'pattern']
SHOW CREATE DATABASE db_name
SHOW CREATE TABLE tbl_name
SHOW DATABASES [LIKE 'pattern']
SHOW [STORAGE] ENGINES
SHOW ERRORS [LIMIT [offset,] row_count]
SHOW GRANTS FOR user
SHOW INDEX FROM tbl_name [FROM db_name]
SHOW INNODB STATUS
SHOW [BDB] LOGS
SHOW PRIVILEGES
SHOW [FULL] PROCESSLIST
SHOW STATUS [LIKE 'pattern']
SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern']
SHOW [OPEN] TABLES [FROM db_name] [LIKE 'pattern']
SHOW [GLOBAL | SESSION] VARIABLES [LIKE 'pattern']
SHOW WARNINGS [LIMIT [offset,] row_count]
show语句还有以下几个用于描述主从复制的时候的状态:
SHOW BINLOG EVENTS
SHOW MASTER LOGS
SHOW MASTER STATUS
SHOW SLAVE HOSTS
SHOW SLAVE STATUS
set关键字的语法:
SET variable_assignment [, variable_assignment] ...
variable_assignment:
user_var_name = expr
| [GLOBAL | SESSION] system_var_name = expr
| @@[global. | session.]system_var_name = expr
看一下这个:
NAMES {'charset_name' | DEFAULT}
SET NAMES
设置了 3 个会话变量
character_set_client
,
character_set_connection
和
character_set_results
为指定的字符集。默认的映射关系可以设定为
DEFAULT
。请注意,
SET NAMES
语法也不同于大多数其它的设置选项。它是自从 MySQL 4.1.0 以后才开始有的。这三个分别表示接收到的客户端请求使用的字符集、数据库使用的字符集和返回结果使用的字符集。
下面的这个变量需要关注一下:
SQL_BUFFER_RESULT = {0 | 1}
SQL_BUFFER_RESULT
强制将 SELECT
语句查询的结果放在临时表中。这可以让 MySQL 尽快释放加载表上的锁,同时还有助于改善向客户端发送结果需要较长时间的情况。这个变量是在 MySQL 3.23.13 中新增的。强制使用临时表 SQL_BUFFER_RESULT
SELECT SQL_BUFFER_RESULT * FROM TABLE1 WHERE …
当我们查询的结果集中的数据比较多时,可以通过SQL_BUFFER_RESULT.选项强制将结果集放到临时表中,这样就可以很快地释放MySQL的表锁(这样其它的SQL语句就可以对这些记录进行查询了),并且可以长时间地为客户端提供大记录集。
SQL_AUTO_IS_NULL = {0 | 1}
1
( 默认值 ) ,则可以通过以下语句来获得某个包含AUTO_INCREMENT
类型字段的表最后一条插入的记录:
WHERE auto_increment_column IS NULL
这个,可以用在一个程序想获得刚刚插入的那条记录。比如emp中的id是自增长的,那么select * from emp where id is null就可以查出最后插入的那条记录【这里的记录必须是通过自增长的方式得到的id来插入的数据,如果是手动指定了一个id,那么这个查询语句返回的集合就是空】了。