mysql常用命令

20 篇文章 0 订阅
3 篇文章 0 订阅

C.1系统命令

1)启动MySQL。
mysqladmin start
/ect/init.d/mysql start
2)重启MySQL。
mysqladmin restart
/ect/init.d/mysql restart
3)关闭MySQL。
mysqladmin shutdown
/ect/init.d/mysql shutdown
4)连接本机上的MySQL。
进入目录mysgl\bin,键人命令mysql-uroot -p,回车后提示输入密码。使exit 退出 MySQL。
5)修改MySQL密码。
mysqladmin -u 用户名-p 旧密码 password新 密码
或进入MySQL命令行后设置:
set password for root=password("root");

6)增加新用户。
grant select on 数据库,* to用户名@登录主机 identified by "密码";
示例:增加一个用户test,密码为123,让他可以在任何主机上登录,并对所有数据库拥有查询、插入、修改、删除的权限。以root用户连入MySQL,然后键入以下命令:
grant select,insert,update,delete on *.* to test@"% " identified by "123";
7)刷新MySQL的系统权限相关表。
flush privileges
新设置用户或更改密码后须刷新MySQL的系统权限相关表。

 

C.2数据操作

首先登录到MySQL中,有关操作都是在MySQL的提示符下进行的,而且每个命令以分号结束。
1)显示数据库列表。
show databases;
2)显示库中的数据表。
show tables;
3)显示数据表的结构。
describe 表名;
4)建库。
create database 库名;
create database db_name default character set utf8mb4 collate utf8_general_ci;
建库的语法:
create {database | schema} [if not exists] db_name [create_specification[, create_specification ] ...] create_specification : [default] character set charset_name | [default] collate collation_name
5)建表。
create table 表名(字段设定列表);

6)删库和删表。
drop database 库名;
drop table 表名;
7)将表中记录清空。
delete from 表名;
truncate table表名;#不同于delete,不用扫描全表
8)显示表中的记录。
select * from 表名;
9)查看数据库连接情况。
show variables like '%max_connections%';#查看最大连接数设置
set global max connections=200;#设置最大连接数
select * from information_schema.processlist where db='';#指定数据库
10)开启慢查询日志。
show variables like'%slow%';//查看慢查询日志配置
set global slow query log='ON';//开启慢查询
set global long_guery_time=4;//慢查询语句的耗时属值
11)添加列。
alter table 数据表名 add 新列名 新列类型 default 0 comment;
12)修改列名。
alter table 数据表名 change 原列名 新列名 新列类型;
13)修改列。
alter table 表名 modify column 列名 类型;
14)删除列。
alter table 表名 drop column 列名;
15)修改表名。
rename table 旧表名 to 新表名;
16)添加索引。
alter table table_name add index index_name (column list);
alter table table_name add unique index_name (column_list);
alter table table_name add primary key (column list);
17)删除索引。
drop index index_name on table_name
alter table table_name drop index index_name
alter table table_name drop primary key
18)查看索引。
show index from tblname;
show keys from tblname;
19)复制表结构及数据到新表。
create table 新表 select * from 旧表;
20)只复制表结构到新表。
create table 新表 select * from 旧表 where 1=2;
create table 新表 like 旧表;
21)复制旧表的数据到新表(假设两个表结构一样)。
insert into 新表 select * from 旧表;
22)复制旧表的数据到新表(假设两个表结构不一样)。
insert into 新表(宇段1,字段2,.....…)select 字段1,字段2,.....from 旧表
23)设置表的自增主键起始值。
alter table table_name AUTO_INCREMENT = 10000;
24)查看死锁信息。
show innodb engine status;#LATEST DETECTED DEADLOCK 这一栏即死锁信息

 


C.3数据的导入和导出

1)将文本数据转到数据库中。
文本数据应符合的格式:字段数据之间用tab键隔开,NULL值用空格字符来代替。例如:
1 name    test    2017-1-1
数据传入命令:
load data local infile "文件名" into table 表名;
2)导出数据库和表。
将数据库news中的所有表备份到news.sql文件,news.sql是一个文本文件,文件名任取:mysqldump --opt news > news.sql
将数据库 news 中的 author 表和article 表备份到author.article.sql文件,author.article.sql是一个文本文件,文件名任取:
mysqldump --opt news author article > author.article.sql
将数据库dbl 和 db2备份到news.sql文件,new.sql 是一个文本文件,文件名任取:
mysqldump --databases db1 db2 > news.sql
把host以上的以用户 usr、密码pass的数据库 dbnane导人到文件file.dump中:
mysqldump -h host -u user -p pass --databases dbname > file.dump
将所有数据库备份到 all-databases.sql文件,all-database.sql是一个文本文件,文件名任取:
mysqldump --a11-databases > al1-databases.sql
3)导入数据。
导入数据库:
nysql < all-databases.sql
在MySQL命令行导入表:
source news.sql;

 

C.4编码操作

1)查看数据库编码。
show create database db name;
2)查看数据表编码。
show create table tbl_name;
3)查看字段编码。
show ful1 columns from tbl_name;
4)改变整个MySQL的编码,启动MySQL 的时候,mysqld safe命令行加入。
--default-character-set=gbk;
5)改变某个库的编码,在MySQL提示符后输入命令。
alter database db_name default character set gbk;
6)把表默认的字符集和所有字符列(char、varchar、text)改为新的字符集。
alter table tbl_name convert to character set character_name[collate …];
示例如下:
alter table logtest convert to character set utf8mb4 collate utf8_general_ci;

alter table table_name convert to character set utf8mb4 collate utf8_general_ci; #使得数据库支持emoji7)修改表的默认字符集。
alter table tbl_name default character set character_name [collate …];
8)修改字段的字符集。
alter table tbl_name change c_name c_name character set character_name[collate ...];

 

C.5数据库元信息查询

information_schema数据库中保存了各个数据库以及表的元信息,主要包括如下内容。

  • schemata 表:提供了当前MySQL实例中所有数据库的信息。其是show databases的结果来源。
  • tables表:提供了关于数据库中表的信息,包括视图。详细表述了某个表属于哪个schema、表的类型、表使用的引擎以及创建时间等信息。其show tables from[schemaName]和 show table status from [schemaName] like'[tableName]'的结果来源。
  • columns表:提供了表中的列信息,详细表述了某张表的所有列以及每个列的信息。其show columns from [tableName]的结果来源。
  • statistics表:提供了关于表索引的信息。其show index from[tableName]的结果来源。
  • user_privileges表:给出了关于用户权限的信息。该信息源自mysql.user授权表。
  • schema_privileges表:给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。
  • table_privileges表:给出了关于表权限的信息。该信息源自 mysql.tables._priv授权表。
  • column_privileges表:给出了关于列权限的信息。该信息源自 mysql.columns.priv授权表。
  • table_constraints 表:描述了存在约束的表,以及表的约束类型。

例如,可通过tables查询某个数据表的创建时间:
select crate_time from tables where table_schemas='数据库名' and table_name='表名';

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值