mysql修改表字段命令:查询并列出 表A,字段B,数值=C 的所有项

1、MySQL常用命令
创建数据库
选择数据库
drop database name 直接删除数据库,不提醒
表的详细描述 &或者是 &&show columns from tablename ;
select 中加上distinct去除重复字段
mysqladmin drop databasename 删除数据库前,有提示。
显示当前mysql版本和当前日期
select version(),current_
2、修改mysql中root的密码:
shell&mysql -u root -p
mysql& update user set password=password(”xueok654123″) where user=’root’;
mysql& flush privileges //刷新数据库
mysql&use dbname; 打开数据库:
mysql& 显示所有数据库
mysql& 显示数据库mysql中所有的表:先use mysql;然后
mysql& 显示表mysql数据库中user表的列信息);
创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
mysql& grant all privileges on *.* to user@localhost identified by ’something’ with
增加新用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY ’something’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO monty@”%” IDENTIFIED BY ’something’ WITH GRANT OPTION;
删除授权:
mysql& revoke all privileges on *.* from root@”%”;
mysql& delete from user where user=”root” and host=”%”;
创建一个用户custom在特定客户端登录,可访问特定数据库fangchandb
mysql &grant select, insert, update, delete, create,drop on fangchandb.* to custom@
identified by ‘ passwd’
mysql & alter table t1 rename t2;
4、mysqldump
备份数据库
shell& mysqldump -h host -u root -p dbname &dbname_backup.sql
恢复数据库
shell& mysqladmin -h myhost -u root -p create dbname
shell& mysql -h host -u root -p dbname & dbname_backup.sql
如果只想卸出建表指令,则命令如下:
shell& mysqladmin -u root -p -d databasename & a.sql
如果只想卸出插入数据的sql命令,而不需要建表命令,则命令如下:
shell& mysqladmin -u root -p -t databasename & a.sql
那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢?
mysqldump -T./ phptest driver
其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。如果不指定driver 表,则将卸出整个数据库的数据。每个表会生成两个文件,一个为.sql文件,包含建表执行。另一个为.txt文件,只包含数据,且没有sql指令。
5、可将查询存储在一个文件中并告诉mysql从文件中读取查询而不是等待键盘输入。可利用外壳程序键入重定向实用程序来完成这项工作。例如,如果在文件my_file.sql 中存放有查询,可如下执行这些查询:
例如,如果您想将建表语句提前写在sql.txt中:
mysql & mysql -h myhost -u root -p database & sql.txt
启动:net start myS
进入:mysql -u root -p/mysql -h localhost -u root -p databaseN
列出数据库:
选择数据库:use databaseN
列出表格:show tables;
显示表格列的属性:show columns from tableName;
建立数据库:source fileName.
匹配字符:可以用通配符_代表任何一个字符,%代表任何字符串;
增加一个字段:alter table tabelName add column fieldName dateT
增加多个字段:alter table tabelName add column fieldName1 dateType,add columns fieldName2 dateT
多行命令输入:注意不能将单词断开;当插入或更改数据时,不能将字段的字符串展开到多行里,否则硬回车将被储存到数据中;
增加一个管理员帐户:grant all on *.* to user@localhost identified by &password&;
每条语句输入完毕后要在末尾填加分号';',或者填加'/g'也可以;
查询时间:select now();
查询当前用户:select user();
查询数据库版本:select version();
查询当前使用的数据库:select database();
MySQL查看用户权限命令 &
&如果可以用navicat工具连过去,查看用户权限,修改用户权限都是很方便的,但很多时候MySQL都是只允许localhost访问,这时就只能用命令了
以前只会用
mysql& select * from mysql.user where user='username';
今天发现这个更方便:
mysql& show grants for username@
show可以看到很多东西
show cr&&这个可以看到创建数据库时用到的一些参数。
show &&&&可以看到创建表时用到的一些参数
1、删除student_course数据库中的students数据表:
rm -f student_course/students.*
2、备份数据库:(将数据库test备份)
mysqldump -u root -p test&c:/test.txt
备份表格:(备份test数据库下的mytable表格)
mysqldump -u root -p test mytable&c:/test.txt
将备份数据导入到数据库:(导回test数据库)
mysql -u root -p test&c:/test.txt
3、创建临时表:(建立临时表zengchao)
create temporary table zengchao(name varchar(10));
4、创建表是先判断表是否存在
create table if not exists students(……);
5、从已经有的表中复制表的结构
create table table2 select * from table1 where 1&&1;
create table table2 select * from table1;
7、对表重新命名
alter table table1 rename as table2;
8、修改列的类型
alter table table1 mo//修改列id的类型为int unsigned
alter table table1 change//修改列id的名字为sid,而且把属性修改为int unsigned
9、创建索引
alter table table1 add index ind_id (id);
create index ind_id on table1 (id);
create unique index ind_id on table1 (id);//建立唯一性索引
10、删除索引
drop index idx_id on table1;
alter table table1 drop index ind_
11、联合字符或者多个列(将列id与&:&和列name和&=&连接)
select concat(id,':',name,'=')
12、limit(选出10到20条)&第一个记录集的编号是0&
select * from students order by id limit 9,10;
13、MySQL不支持的功能 & &需要设置数据库为 inndb & &
事务,视图,外键和引用完整性,存储过程和触发器
14、MySQL会使用索引的操作符号
&,&=,&=,&,=,between,in,不带%或者_开头的like
15、使用索引的缺点
1)减慢增删改数据的速度;
2)占用磁盘空间;
3)增加查询优化器的负担;
当查询优化器生成执行计划时,会考虑索引,太多的索引会给查询优化器增加工作量,导致无法选择最优的查询方案;
16、分析索引效率
方法:在一般的SQL语句前加上explain;
分析结果的含义:
1)table:表名;
2)type:连接的类型,(ALL/Range/Ref)。其中ref是最理想的;
3)possible_keys:查询可以利用的索引名;
4)key:实际使用的索引;
5)key_len:索引中被使用部分的长度(字节);
6)ref:显示列名字或者&const&(不明白什么意思);
7)rows:显示MySQL认为在找到正确结果之前必须扫描的行数;
8)extra:MySQL的建议;
17、使用较短的定长列
1)尽可能使用较短的数据类型;
2)尽可能使用定长数据类型;
a)用char代替varchar,固定长度的数据处理比变长的快些;
b)对于频繁修改的表,磁盘容易形成碎片,从而影响数据库的整体性能;
c)万一出现数据表崩溃,使用固定长度数据行的表更容易重新构造。使用固定长度的数据行,每个记录的开始位置都是固定记录长度的倍数,可以很容易被检测到,但是使用可变长度的数据行就不一定了;
d)对于MyISAM类型的数据表,虽然转换成固定长度的数据列可以提高性能,但是占据的空间也大;
18、使用not null和enum
尽量将列定义为not null,这样可使数据的出来更快,所需的空间更少,而且在查询时,MySQL不需要检查是否存在特例,即null值,从而优化查询;
如果一列只含有有限数目的特定值,如性别,是否有效或者入学年份等,在这种情况下应该考虑将其转换为enum列的值,MySQL处理的更快,因为所有的enum值在系统内都是以标识数值来表示的;
19、使用optimize table
对于经常修改的表,容易产生碎片,使在查询数据库时必须读取更多的磁盘块,降低查询性能。具有可变长的表都存在磁盘碎片问题,这个问题对blob数据类型更为突出,因为其尺寸变化非常大。可以通过使用optimize table来整理碎片,保证数据库性能不下降,优化那些受碎片影响的数据表。 optimize table可以用于MyISAM和BDB类型的数据表。实际上任何碎片整理方法都是用mysqldump来转存数据表,然后使用转存后的文件并重新建数据表;
20、使用procedure analyse()
可以使用procedure analyse()显示最佳类型的建议,使用很简单,在select语句后面加上procedure analyse()就可以了;例如:
select * from students procedure analyse();
select * from students procedure analyse(16,256);
第二条语句要求procedure analyse()不要建议含有多于16个值,或者含有多于256字节的enum类型,如果没有限制,输出可能会很长;
21、使用查询缓存
1)查询缓存的工作方式:
第一次执行某条select语句时,服务器记住该查询的文本内容和查询结果,存储在缓存中,下次碰到这个语句时,直接从缓存中返回结果;当更新数据表后,该数据表的任何缓存查询都变成无效的,并且会被丢弃。
2)配置缓存参数:
变量:query_cache _type,查询缓存的操作模式。有3中模式,0:不缓存;1:缓存查询,除非与select sql_no_cache开头;2:根据需要只缓存那些以select sql_cache开头的查询;query_cache_size:设置查询缓存的最大结果集的大小,比这个值大的不会被缓存。
22、调整硬件
1)在机器上装更多的内存;
2)增加更快的硬盘以减少I/O等待时间;
寻道时间是决定性能的主要因素,逐字地移动磁头是最慢的,一旦磁头定位,从磁道读则很快;
3)在不同的物理硬盘设备上重新分配磁盘活动;
如果可能,应将最繁忙的数据库存放在不同的物理设备上,这跟使用同一物理设备的不同分区是不同的,因为它们将争用相同的物理资源(磁头)。
导入数据,不仅可以使用mysqldump,还可以使用source命令:后者要登录mysql
23.查看使用的是哪个数据库&
& & & & select database() ;
24. 从外部导入数据到表中24.
load data local infile 'e://data.txt' into table XXX fields terminated by ',' enclosed by '&' lines terminated by '/n';
25. 精确获取MySQL当前的时区数值
select extract(hour from timediff(now(),UTC_timestamp()))
26. 时间计算
MySQL中需要日期的加减,可以使用函数DATE_ADD,DATE_SUB
例如,select DATE_ADD(now(), interval 1 day);
&&&&&&&& select DATE_SUB(now(), interval 1 month);&
27.SQL Hint
Select * FROM TABLE FORCE INDEX( ID1 ) WHERE ....
Select * FROM TABLE IGNORE INDEX( ID1 ) WHERE ....
关闭查询缓存
Select SQL_NO_CACHE * FROM TABLE WHERE ....
强制查询缓存
Select SQL_CACHE * FROM TABLE WHERE ....
如果query_cache_type为2,则只有加入该Hint才会使用查询缓存
INSERT DELAYED INTO
强制连接顺序
STRAIGHT_JOIN
关于mysql 的优化问题:
28. &&进入 mysql 的 shell 命令行,调用 show processlist,&
& & 查看当前 mysql 使用频繁的 sql 语句,可以定位执行效率较低的SQL语句
29. show status&可以查看提供服务器状态信息,
了解各种SQL的执行频率
,也可以使用mysqladmin extended-status命令获得。SHOW STATUS可以根据需要显示session级别的统计结果和global级别的统计结果。
以下几个参数对Myisam和Innodb存储引擎都计数:
1.Com_select& 执行select操作的次数,一次查询只累加1;
2.Com_insert 执行insert操作的次数,对于批量插入的insert操作,只累加一次;
3.Com_update 执行update操作的次数;
4.Com_delete 执行delete操作的次数;
以下几个参数是针对Innodb存储引擎计数的,累加的算法也略有不同:
1.&&&&&& Innodb_rows_read select查询返回的行数;
2.&&&&&& Innodb_rows_inserted执行Insert操作插入的行数;
3.&&&&&& Innodb_rows_updated 执行update操作更新的行数;
4.&&&&&& Innodb_rows_deleted 执行delete操作删除的行数;
通过以上几个参数,可以很容易的了解当前数据库的应用是以插入更新为主还是以查询操作为主,以及各种类型的SQL大致的执行比例是多少。对于更新操作的计数,是对执行次数的计数,不论提交还是回滚都会累加。
对于事务型的应用,通过Com_commit和Com_rollback可以了解事务提交和回滚的情况,对于回滚操作非常频繁的数据库,可能意味着应用编写存在问题。
此外,以下几个参数便于我们了解数据库的基本情况:
1.Connections 试图连接Mysql服务器的次数
2.Uptime && 服务器工作时间
3.Slow_queries 慢查询的次数
<span style="color:#.通过EXPLAIN分析低效SQL的执行计划
可以通过explain或者desc
获取MySQL如何执行SELECT语句的信息,包括select语句执行过程表如何连接和连接的次序。
explain可以知道什么时候必须为表加入索引以得到一个使用索引来寻找记录的更快的SELECT。
mysql& explain select sum(moneys) from sales a,companys b pany_id = b.id and a.year = 2006;
&#43;----------------&#43;----------&#43;-----------&#43;----------------&#43;----------------&#43;----------&#43;-----------&#43;----------------&#43;
| select_type&& | table | type& | possible_keys| key&&&&&&&&&&& | key_len&& | rows& | Extra&&&& |
&#43;----------------&#43;----------&#43;-----------&#43;----------------&#43;----------------&#43;----------&#43;-----------&#43;----------------&#43;
| SIMPLE&&& | b&&&& | index | PRIMARY&& | PRIMARY&& | 4&&&& |&&& 1& | Using index&& |
| SIMPLE&&& | a&&&& | ALL&& | NULL&&&&& | NULL&&&&& | NULL& |&& 12& | Using where&& |
&#43;----------------&#43;----------&#43;-----------&#43;----------------&#43;----------------&#43;----------&#43;-----------&#43;----------------&#43;
2 rows in set (0.02 sec)
select_type:select 类型
table:输出结果集的表
type:表示表的连接类型
①当表中仅有一行是type的&#20540;为system是最佳的连接类型;
②当select操作中使用索引进行表连接时type的&#20540;为ref;
③当select的表连接没有使用索引时,经常会看到type的&#20540;为ALL,表示对该表进行了全表扫描,这时需要考虑通过创建索引来提高表连接的效率。
possible_keys:表示查询时,可以使用的索引列.
key:表示使用的索引
key_len:索引长度
rows:扫描范围
Extra:执行情况的说明和描述
<span style="color:#.使用mysql query cache:
作用:查询缓存存储SELECT查询的文本以及发送给客户端的相应结果。如果随后收到一个相同的查询,服务器从查询缓存中重新得到查询结果,而不再需要解析和执行查询。
适用范围:不发生数据更新的表。当表更改(包括表结构和表数据)后,查询缓存&#20540;的相关条目被清空。
查询缓存的主要参数设置:
show variables like ‘%query_cache%’;
have_query_cache表明服务器在安装使已经配置了高速缓存
query_cache_size表明缓存区大小,单位为M
query_cache_type的变量&#20540;从0到2,含义分别为
0或者off(缓存关闭)
1或者on(缓存打开,使用sql_no_cache的select除外)
2或者demand(只有带sql_cache的select语句提供高速缓存)
SHOW STATUS 中,你可以监视查询缓存的性能:
Qcache_queries_in_cache
在缓存中已注册的查询数目
Qcache_inserts
被加入到缓存中的查询数目
Qcache_hits
缓存采样数数目
Qcache_lowmem_prunes
因为缺少内存而被从缓存中删除的查询数目
Qcache_not_cached
没有被缓存的查询数目 (不能被缓存的,或由于 QUERY_CACHE_TYPE)
Qcache_free_memory
查询缓存的空闲内存总数
Qcache_free_blocks
查询缓存中的空闲内存块的数目
Qcache_total_blocks
查询缓存中的块的总数目
32.以下增加
&show ** 的相关用法
1. SHOW CHARACTER SET语法
2. SHOW COLLATION语法
3. SHOW COLUMNS语法
4. SHOW CREATE DATABASE语法
5. SHOW CREATE TABLE语法
6. SHOW DATABASES语法
7. SHOW ENGINE语法
8. SHOW ENGINES语法
9. SHOW ERRORS语法
10. SHOW GRANTS语法
11. SHOW INDEX语法
12. SHOW INNODB STATUS语法
13. SHOW LOGS语法
14. SHOW OPEN TABLES语法
15. SHOW PRIVILEGES语法
16. SHOW PROCESSLIST语法
17. SHOW STATUS语法
18. SHOW TABLE STATUS语法
19. SHOW TABLES语法
20. SHOW TRIGGERS语法
21. SHOW VARIABLES语法
22. SHOW WARNINGS语法
SHOW CHARACTER SET语法
SHOW CHARACTER SET [LIKE 'pattern']
SHOW CHARACTER SET语句用于显示所有可用的字符集。该语句取一个自选的LIKE子句。该子句指示哪些字符集名称可以匹配。举例说明:
mysql& show character set like 'utf%';
&#43;---------&#43;---------------&#43;-------------------&#43;--------&#43;
| Charset | Description&&&| Default collation | Maxlen |
&#43;---------&#43;---------------&#43;-------------------&#43;--------&#43;
| utf8&&&&| UTF-8 Unicode |utf8_general_ci&&&|&&&&&&3 |&
&#43;---------&#43;---------------&#43;-------------------&#43;--------&#43;
Maxlen列显示用于存储一个字符的最大的字节数目。
SHOW COLLATION语法
SHOW COLLATION [LIKE 'pattern']
来自SHOW COLLATION的输出包括所有可用的字符集。该语句取一个自选的LIKE子句。该子句的pattern指示哪些整序名称可以匹配。举例说明:
mysql& show collation like 'utf8%';
&#43;--------------------&#43;---------&#43;-----&#43;---------&#43;----------&#43;---------&#43;
| Collation&&&&&&&&&&|Charset | Id&&| Default | Compiled | Sortlen |
&#43;--------------------&#43;---------&#43;-----&#43;---------&#43;----------&#43;---------&#43;
| utf8_general_ci&&&&|utf8&&&&|&&33 |Yes&&&&&|Yes&&&&&&|&&&&&&&1|&
| utf8_bin&&&&&&&&&&&|utf8&&&&|&&83|&&&&&&&&&|Yes&&&&&&|&&&&&&&1|&
| utf8_unicode_ci&&&&| utf8&&&&| 192|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_icelandic_ci&&| utf8&&&&| 193|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_latvian_ci&&&&| utf8&&&&| 194|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_romanian_ci&&&| utf8&&&&| 195|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_slovenian_ci&&| utf8&&&&| 196|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_polish_ci&&&&&| utf8&&&&|197 |&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_estonian_ci&&&| utf8&&&&| 198|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_spanish_ci&&&&| utf8&&&&| 199|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_swedish_ci&&&&| utf8&&&&| 200|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_turkish_ci&&&&| utf8&&&&| 201|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_czech_ci&&&&&&|utf8&&&&| 202|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_danish_ci&&&&&| utf8&&&&|203 |&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_lithuanian_ci | utf8&&&&| 204|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_slovak_ci&&&&&| utf8&&&&|205 |&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_spanish2_ci&&&| utf8&&&&| 206|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_roman_ci&&&&&&|utf8&&&&| 207|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_persian_ci&&&&| utf8&&&&| 208|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_esperanto_ci&&| utf8&&&&| 209|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
| utf8_hungarian_ci&&| utf8&&&&| 210|&&&&&&&&&|Yes&&&&&&|&&&&&&&8|&
&#43;--------------------&#43;---------&#43;-----&#43;---------&#43;----------&#43;---------&#43;
Default列指示对于其字符集,整序&#20540;是否是默认&#20540;。Compiled指示字符集是否被编辑到服务器中。Sortlen与对字符串(在字符集中表达)分类所需的存储器的数量有关。
SHOW COLUMNS语法
SHOW [FULL] COLUMNS FROM&tbl_name&[FROM&db_name][LIKE 'pattern']
SHOW COLUMNS显示在一个给定表中的各列的信息。对于试图,本语句也起作用。
mysql& show full columns from test_
| Field&&&|Type&&&&&&&&|Collation&&&&&&&| Null | Key | Default |Extra&&&&&&&&&&|Privileges&&&&&&&&&&&&&&&&&&&&&&|Comment |
&#43;---------&#43;-------------&#43;-----------------&#43;------&#43;-----&#43;---------&#43;----------------&#43;---------------------------------&#43;---------&#43;
| id&&&&&&|int(10)&&&&&|NULL&&&&&&&&&&&&|NO&&&| PRI | NULL&&&&| auto_increment |select,insert,update,references|&&&&&&&&&|&
| name&&&&| varchar(40) | utf8_general_ci |NO&&&|&&&&&|&&&&&&&&&|&&&&&&&&&&&&&&&&|select,insert,update,references | ???&&&&&|&
| value&&&|text&&&&&&&&| utf8_general_ci |NO&&&|&&&&&|NULL&&&&|&&&&&&&&&&&&&&&&|select,insert,update,references | ????&&&&|&
| package | varchar(50) | utf8_general_ci | YES&&| MUL |NULL&&&&|&&&&&&&&&&&&&&&&|select,insert,update,references|&&&&&&&&&|&
full 参数的作用是列出权限列和备注列
&SHOW CREATE DATABASE语法
SHOW CREATE {DATABASE | SCHEMA}&db_name
显示用于创建给定数据库CREATE DATABASE语句。也可以使用SHOW CREATE SCHEMA。
mysql& show create database 5j;
&#43;----------&#43;-------------------------------------------------------------&#43;
| Database | CreateDatabase&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|
&#43;----------&#43;-------------------------------------------------------------&#43;
| 5j&&&&&&&| CREATE DATABASE `5j` |&
&#43;----------&#43;-------------------------------------------------------------&#43;
mysql& show create schema 5j;
&#43;----------&#43;-------------------------------------------------------------&#43;
| Database | CreateDatabase&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|
&#43;----------&#43;-------------------------------------------------------------&#43;
| 5j&&&&&&&| CREATE DATABASE `5j` |&
&#43;----------&#43;-------------------------------------------------------------&#43;
SHOW CREATE TABLE语法
SHOW CREATE TABLE&tbl_name
显示用于创建给定表的CREATE TABLE语句。本语句对视图也起作用。
mysql& show create table last_
CREATE TABLE `last_ids` (
&&`role_id` int(11) unsigned NOT NULL default '0' COMMENT '????ID',
&&`combat_id` bigint(20) unsigned NOT NULL default '0' COMMENT'????ID'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=REDUNDANT COMMENT='??ID?'
根据SQL_QUOTE_SHOW_CREATE选项,SHOWCREATE TABLE会对表名称和列名称加引号。
SHOW DATABASES语法
SHOW {DATABASES | SCHEMAS} [LIKE 'pattern'];
&#43;--------------------&#43;
| Database&&&&&&&&&&&|
&#43;--------------------&#43;
| information_schema |&
|5j&&&&&&&&&&&&&&&&&|&
|mysql&&&&&&&&&&&&&&|&
|test&&&&&&&&&&&&&&&|&
|uniondb&&&&&&&&&&&&|&
&#43;--------------------&#43;
&#43;--------------------&#43;
| Database&&&&&&&&&&&|
&#43;--------------------&#43;
| information_schema |&
|5j&&&&&&&&&&&&&&&&&|&
| mysql&&&&&&&&&&&&&&|&
|test&&&&&&&&&&&&&&&|&
|uniondb&&&&&&&&&&&&|&
&#43;--------------------&#43;
mysql& show databases like '5j';
&#43;---------------&#43;
| Database (5j) |
&#43;---------------&#43;
|5j&&&&&&&&&&&&|&
&#43;---------------&#43;
SHOW DATABASES可以在MySQL服务器主机上列举数据库。您也可以使用mysqlshow命令得到此清单。您只能看到您拥有某些权限的数据库,除非您拥有全局SHOWDATABASES权限。
如果服务器以--skip-show-database选项为起始,则您根本不能使用本语句,除非您拥有SHOW DATABASES权限。
也可以使用SHOW SCHEMAS。
SHOW ENGINES语法
SHOW [STORAGE] ENGINES
SHOW ENGINES显示存储引擎的状态信息。对于检查一个存储引擎是否被支持,或者对于查看默认引擎是什么,本语句十分有用。SHOW TABLE TYPES是同义词,但不赞成使用。
&#43;------------&#43;----------&#43;----------------------------------------------------------------&#43;
| Engine&&&&&| Support&&|Comment&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|
&#43;------------&#43;----------&#43;----------------------------------------------------------------&#43;
| MyISAM&&&&&| DEFAULT&&| Default engine asof MySQL 3.23 with greatperformance&&&&&&&&&|&
| MEMORY&&&&&|YES&&&&&&| Hash based, stored in memory, usefulfor temporary tables&&&&&&|&
| InnoDB&&&&&|YES&&&&&&| Supports transactions, row-levellocking, and foreign keys&&&&&|&
| BerkeleyDB | NO&&&&&&&| Supportstransactions and page-levellocking&&&&&&&&&&&&&&&&&&&|&
| BLACKHOLE&&| YES&&&&&&| /dev/null storageengine (anything you write to it disappears) |&
| EXAMPLE&&&&| YES&&&&&&|Example storageengine&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&
| ARCHIVE&&&&| YES&&&&&&|Archive storageengine&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&
| CSV&&&&&&&&| YES&&&&&&|CSV storageengine&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&
| ndbcluster | DISABLED | Clustered, fault-tolerant, memory-basedtables&&&&&&&&&&&&&&&&&|&
| FEDERATED&&| YES&&&&&&| FederatedMySQL storageengine&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&
| MRG_MYISAM | YES&&&&&&| Collection of identicalMyISAMtables&&&&&&&&&&&&&&&&&&&&&&&&&&|&
| ISAM&&&&&&&|NO&&&&&&&| Obsolete storageengine&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|&
&#43;------------&#43;----------&#43;----------------------------------------------------------------&#43;
Support&#20540;指示某个存储引擎是否被支持,并指示哪个是默认引擎。
以--default-table-type(eg:--default-table-type=InnoDB)参数来决定。
SHOW ERRORS语法
SHOW ERRORS [LIMIT [offset,]&row_count]
SHOW COUNT(*) ERRORS
本语句与SHOW WARNINGS接近,不过该语句只显示错误,不同时显示错误、警告和注意。
LIMIT子句与SELECT语句具有相同的语法.
SHOW COUNT(*) ERRORS语句显示错误的数目。您也可以从error_count变量中找回此数目:
参数说明:
Table--表名
Non_unique--是否是unique,是0,不是则为1(如果索引不能包括重复词,则为0。如果可以,则为1。)
Key_name--索引名称
Seq_in_index--索引中的列序列号,从1开始。
Column_name--列名
Collation--列以什么方式存储在索引中。在MySQL中,有&#20540;‘A’(升序)或NULL(无分类)。
Cardinality(基数)--索引中唯一&#20540;的数目的估计&#20540;。通过运行ANALYZE TABLE或myisamchk -a可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该&#20540;也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大。
Sub_part-- 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。
Packed--指示关键字如何被压缩。如果没有被压缩,则为NULL。
Null--如果列含有NULL,则含有YES。如果没有,则该列含有NO。
Index_type--用到的索引方法(BTREE, FULLTEXT, HASH, RTREE)。
Comment--多种评注。
SHOW KEYS是SHOW INDEX的同义词。您也可以使用mysqlshow -k&db_name&tbl_name命令列举一个表的索引。
SHOW COUNT(*) ERRORS;
SELECT @@error_
| Error | 1064 | You have an error in your SQL check the manual thatcorresponds to your MySQL server version for the right syntax to use near'error' at line 1
mysql& show count(*)
&#43;-----------------------&#43;
| @@session.error_count |
&#43;-----------------------&#43;
|&&&&&&&&&&&&&&&&&&&&&1|&
&#43;-----------------------&#43;
mysql& select @@error_
&#43;---------------&#43;
| @@error_count |
&#43;---------------&#43;
|&&&&&&&&&&&&&1|&
&#43;---------------&#43;
SHOW GRANTS语法
SHOW GRANTS FOR&user
本语句列出了在为MySQL用户账户复制权限时必须发布的GRANT语句。
| Grants for&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
| GRANT ALL PRIVILEGES ON *.* TO&&IDENTIFIEDBY PASSWORD '*81F5E21ECD4A731AEBFB6AF209E1B' WITH GRANT OPTION&
要对当前的会话列出权限,您可以使用以下语句之一:
SHOW GRANTS;
SHOW GRANTS FOR CURRENT_USER;
SHOW GRANTS FOR CURRENT_USER();
SHOW INDEX语法
SHOW INDEX FROM&tbl_name&[FROM&db_name]
SHOW INDEX会返回表索引信息。其&#26684;式与ODBC中的SQLStatistics调用相&#20284;。
SHOW OPEN TABLES语法
SHOW OPEN TABLES [FROM&db_name] [LIKE 'pattern']
&#43;----------&#43;-----------------------------------&#43;--------&#43;-------------&#43;
| Database |Table&&&&&&&&&&&&&&&&&&&&&&&&&&&&&|In_use | Name_locked |
&#43;----------&#43;-----------------------------------&#43;--------&#43;-------------&#43;
| 5j&&&&&&&|revival_types&&&&&&&&&&&&&&&&&&&&&|&&&&&&0|&&&&&&&&&&&0 |&
| 5j&&&&&&&|duel_events&&&&&&&&&&&&&&&&&&&&&&&|&&&&&&0|&&&&&&&&&&&0 |
SHOW OPEN TABLES列举在表缓存中当前被打开的非TEMPORARY表(非临时表)。
SHOW OPEN TABLES会返回以下字段:
In_use&:表当前被查询使用的次数。如果该数为零,则表是打开的,但是当前没有被使用。
Name_locked&:
表名称是否被锁定。名称锁定用于取消表或对表进行重命名等操作。
&SHOW PRIVILEGES语法
SHOW PRIVILEGES
SHOW PRIVILEGES显示MySQL服务器支持的系统权限清单。确切的输出根据您的服务器的版本而定。
SHOW PROCESSLIST语法
SHOW [FULL] PROCESSLIST
SHOW PROCESSLIST显示哪些线程正在运行。
SHOW WARNINGS语法
SHOW WARNINGS [LIMIT [offset,]&row_count]
SHOW COUNT(*) WARNINGS
用法基本和show errors相同。
SHOW VARIABLES语法
SHOW [GLOBAL | SESSION] VARIABLES [LIKE 'pattern']
SHOW VARIABLES显示了部门MySQL系统变量的&#20540;。本信息也可以使用mysqladmin variables命令获得。
使用GLOBAL选项,您可以获得被用于MySQL新连接的&#20540;。使用SESSION,您可以得到对于当前连接起效的&#20540;。如果您两个选项都不使用,默认&#20540;为SESSION。
LOCAL是SESSION的同义词。
SHOW TRIGGERS语法
SHOW TRIGGERS [FROM&db_name] [LIKE&expr]
SHOW TRIGGERS列出了目前被MySQL服务器定义的触发程序。
SHOW TABLES语法
SHOW [FULL] TABLES [FROM&db_name] [LIKE 'pattern']
SHOW TABLES列举了给定数据库中的非TEMPORARY表。您也可以使用mysqlshow&db_name命令得到此清单。
本命令也列举数据库中的其它视图。支持FULL修改符,这样SHOW FULL TABLES就可以显示第二个输出列。对于一个表,第二列的&#20540;为BASE
TABLE;对于一个视图,第二列的&#20540;为VIEW。
注释:如果您对于一个表没有权限,则该表不会在来自SHOW TABLES或的mysqlshow db_name输出中显示。
SHOW TABLE STATUS语法
SHOW TABLE STATUS [FROM&db_name] [LIKE 'pattern']
SHOW TABLE STATUS的性质与SHOW TABLE类&#20284;,不过,可以提供每个表的大量信息。您也可以使用mysqlshow --status&db_name命令得到此清单。
本语句也显示视图信息。
对于NDB Cluster表,本语句的输出显示Avg_row_length和Data_length列的适当&#20540;,不过BLOB列没有被考虑进来。另外,复制数量在Comment列中显示(作为number_of_replicas)。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:225113次
积分:2725
积分:2725
排名:第4744名
原创:39篇
转载:124篇
评论:22条
(1)(3)(4)(1)(3)(4)(14)(3)(5)(7)(71)(47)

我要回帖

更多关于 oracle 表加字段 的文章

 

随机推荐