您的位置:

mysql数据库之show(mysql数据库之间的数据传输)

本文目录一览:

mysql中的命令show tables, desc table有什么区别?

show tables和desc table作用不用,show tables作用显示数据库中有哪些数据表,而desc table需要加表名等参数,作用是是显示数据表的表都定义了哪些字段,及各个字段的类型大小,及哪些是主键,哪些有约束条件,以及各个字段是否定义了默认值。

扩展资料:

mysql常用命令

使用SHOW语句找出在服务器上当前存在什么数据库:SHOW DATABASES。

创建一个数据库MYSQLDATA:CREATE DATABASE MYSQLDATA。

选择你所创建的数据库:USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)

查看现在的数据库中存在什么表:SHOW TABLES。

创建一个数据库表: CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1))。

显示表的结构: DESCRIBE MYTABLE。

往表中加入记录:mysql insert into MYTABLE values (”hyq”,”M”)。

用文本方式将数据装入数据库表中(例如D:/mysql.txt):LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE。

导入sql文件命令(例如D:/mysql.sql):use database;source d:/mysql.sql。

删除表:drop TABLE MYTABLE。

清空表:delete from MYTABLE。

更新表中数据:update MYTABLE set sex=”f” where name=’hyq’。

参考资料来源:百度百科-MySQL数据库

什么是mysqlshow

它担当SHOW SQL 语句的命令行接口的作用。 mysqlshow用法如下: mysqlshow [option] [db_name [tbl_name [col_name]]] 如果没有指定数据库名, mysqlshow 将列出服务器主机中所有数据库。如果指定数据库名但未指定表名,则列出该数据库中所有的表。如果数据库和表名都被指定,但未指定列名,则列出该表的所有列。如果所有的名字都被指定, mysqlshow 将显示有关指定列的信息。 如果最后的参数中包含外壳程序通配符(‘*’或‘?’),输出结果将被限制为与该通配符相配的值。‘*’和‘?’被视为LINK 操作符的‘%’和‘_’SQL 通配符。 mysqlshow专有选项如下: 一、-k, --keys 显示除表列信息外的表索引信息。该选项只在指定表名时才有意义。 二、-i, --status 显示由SHOW TABLE STATUS 语句显示的相同类型的表的信息。--status 选项是在MySQL 3.23 中引入的。

如何利用MySQL数据库自带的show命令查看信息

方法/步骤

查看MySQL数据库存储引擎和默认引擎,可以用命令:

show engines;

有时编写SQL语句时,出现了错误,想要查看上一条SQL错误,可以利用命令:

show errors;

查看最后一个执行语句的错误、提醒和警告,可以用命令:

show warnings;

查看系统的一些资源状态,可以利用命令:

show status;

显示系统里的一些变量名称和变量值,可以利用命令:

show variables;

有时需要查看MySQL服务器支持的不同权限,可以利用命令:

show privileges;

mysql数据库用怎么操作

1、使用show语句找出在服务器上当前存在什么数据库:

mysql

show

databases;

+----------+

|

database

|

+----------+

|

mysql

|

|

test

|

+----------+

3

rows

in

set

(0.00

sec)

2、创建一个数据库abccs

mysql

create

database

abccs;

注意不同操作系统对大小写的敏感。

3、选择你所创建的数据库

mysql

use

abccs

database

changed

此时你已经进入你刚才所建立的数据库abccs.

4、

创建一个数据库表

首先看现在你的数据库中存在什么表:

mysql

show

tables;

empty

set

(0.00

sec)

说明刚才建立的数据库中还没有数据库表。下面来创建一个数据库表mytable:

我们要建立一个你公司员工的生日表,表的内容包含员工姓名、性别、出生日期、出生城市。

mysql

create

table

mytable

(name

varchar(20),

sex

char(1),

-

birth

date,

birthaddr

varchar(20));

query

ok,

rows

affected

(0.00

sec)

由于name、birthadd的列值是变化的,因此选择varchar,其长度不一定是20。可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用alter

table语句。);性别只需一个字符就可以表示:"m"或"f",因此选用char(1);birth列则使用date数据类型。

创建了一个表后,我们可以看看刚才做的结果,用show

tables显示数据库中有哪些表:

mysql

show

tables;

+---------------------+

|

tables

in

menagerie

|

+---------------------+

|

mytables

|

+---------------------+

5、显示表的结构:

mysql

describe

mytable;

+-------------+-------------+------+-----+---------+-------+

|

field

|

type

|

null

|

key

|

default

|

extra

|

+-------------+-------------+------+-----+---------+-------+

|

name

|

varchar(20)

|

yes

|

|

null

|

|

|

sex

|

char(1)

|

yes

|

|

null

|

|

|

birth

|

date

|

yes

|

|

null

|

|

|

deathaddr

|

varchar(20)

|

yes

|

|

null

|

|

+-------------+-------------+------+-----+---------+-------+

4

rows

in

set

(0.00

sec)

6、

往表中加入记录

我们先用select命令来查看表中的数据:

mysql

select

*

from

mytable;

empty

set

(0.00

sec)

这说明刚才创建的表还没有记录。

加入一条新记录:

mysql

insert

into

mytable

-

values

(′abccs′,′f′,′1977-07-07′,′china′);

query

ok,

1

row

affected

(0.05

sec)

再用上面的select命令看看发生了什么变化。我们可以按此方法一条一条地将所有员工的记录加入到表中。

Mysql数据库CPU占用过高原因排查 show processlist

mysql服务器最近偶尔出现cpu百分百居高不下的情况,所以需要进行分析

兄弟命令 show processlist;只列出前100条,如果想全列出请使用show full processlist;

先 简单说一下各列的含义和用途:

正在将表中修改的数据刷新到磁盘中,同时正在关闭已经用完的表。这是一个很快的操作,如果不是这样的话,就应该确认磁盘空间是否已经满了或者磁盘是否正处于重负中。

Connect Out

复制从服务器正在连接主服务器。

Copying to tmp table on disk

由于临时结果集大于 tmp_table_size,正在将临时表从内存存储转为磁盘存储以此节省内存。

Creating tmp table

正在创建临时表以存放部分查询结果。

deleting from main table

服务器正在执行多表删除中的第一部分,刚删除第一个表。

deleting from reference tables

服务器正在执行多表删除中的第二部分,正在删除其他表的记录。

Flushing tables

正在执行 FLUSH TABLES,等待其他线程关闭数据表。

Killed

发送了一个kill请求给某线程,那么这个线程将会检查kill标志位,同时会放弃下一个kill请求。MySQL会在每次的主循环中检查kill标志 位,不过有些情况下该线程可能会过一小段才能死掉。如果该线程程被其他线程锁住了,那么kill请求会在锁释放时马上生效。

Locked

被其他查询锁住了。

Sending data

正在处理 SELECT 查询的记录,同时正在把结果发送给客户端。

Sorting for group

正在为 GROUP BY 做排序。

Sorting for order

正在为 ORDER BY 做排序。

Opening tables

这个过程应该会很快,除非受到其他因素的干扰。例如,在执 ALTER TABLE 或 LOCK TABLE 语句行完以前,数据表无法被其他线程打开。 正尝试打开一个表。

Removing duplicates

正在执行一个 SELECT DISTINCT 方式的查询,但是MySQL无法在前一个阶段优化掉那些重复的记录。因此,MySQL需要再次去掉重复的记录,然后再把结果发送给客户端。

Reopen table

获得了对一个表的锁,但是必须在表结构修改之后才能获得这个锁。已经释放锁,关闭数据表,正尝试重新打开数据表。

Repair by sorting

修复指令正在排序以创建索引。

Repair with keycache

修复指令正在利用索引缓存一个一个地创建新索引。它会比 Repair by sorting 慢些。

Searching rows for update

正在讲符合条件的记录找出来以备更新。它必须在 UPDATE 要修改相关的记录之前就完成了。

Sleeping

正在等待客户端发送新请求.

System lock

正在等待取得一个外部的系统锁。如果当前没有运行多个 mysqld 服务器同时请求同一个表,那么可以通过增加 --skip-external-locking参数来禁止外部系统锁。

U pgrading lock

INSERT DELAYED 正在尝试取得一个锁表以插入新记录。

Updating

正在搜索匹配的记录,并且修改它们。

User Lock

正在等待 GET_LOCK()。

Waiting for tables

该线程得到通知,数据表结构已经被修改了,需要重新打开数据表以取得新的结构。然后,为了能的重新打开数据表,必须等到所有其他线程关闭这个表。以下几种 情况下会产生这个通知:FLUSH TABLES tbl_name, ALTER TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE, 或 OPTIMIZE TABLE。

waiting for handler insert

INSERT DELAYED 已经处理完了所有待处理的插入操作,正在等待新的请求。

大部分状态对应很快的操作,只要有一个线程保持同一个状态好几秒钟,那么可能是有问题发生了,需要检查一下。

还有其他的状态没在上面中列出来,不过它们大部分只是在查看服务器是否有存在错误是才用得着。

文章转自: