MySQL的命令合集

MySQL客户端操作

  1. $db$是数据库名称
  2. $table$是数据表名称
  3. $field$是数据表里的字段名称
  4. 有些语句最后加上**/G**可以使结果更美观

数据库相关

创建数据库,修改数据库

1 create database $db$; 使用默认设置 2 create database $db$ default character set "utf8";指定编码 3 show databases; 查看所有数据库 4 show create database $db$; 查看数据库信息 5 alter database $db$ default character set $code$ collate $cc$;修改数据编码 6 drop database $db$;删除数据库 7 create database $db$ default character set utf8 collate utf8_general_ci;$完整的建库语句 8 use $db$;使用数据库 9 10 数据库权限 11 grant $privileges$ on $db$.$table$ to $user$@'$host$' identified by "$passwd$" with grant option; 12 1. $privileges$ 指权限; ALL PRIVILEGES是表示所有权限,可以使用select,update等权限. 13 2. ON 用来指定权限针对哪些库和表. 14 3. $db$.$table$ 数据库和表;*.*指所有数据库的所有表 15 4. TO 表示将权限赋予某个用户. 16 5. $user$@'$host$' 指定用户和主机;@后面接限制的主机,可以是IP,IP,域名以及%,%表示任何地方. 17 注意:这里%有的版本不包括本地,以前碰到过给某个用户设置了%允许任何地方登录,但是在本地登录不了,这个和版本有关系,遇到这个问题再加一个localhost的用户就可以了. 18 6. IDENTIFIED BY 指定用户的登录密码. 19 7. WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人. 20 注意:经常有人在创建操作用户的时候不指定WITH GRANT OPTION选项导致后来该用户不能使用GRANT命令创建用户或者给其它用户授权. 21 22 刷新权限 23 flush privileges; 24 25 查询权限 26 show grants; 27 show grants for $user$@'$host$'; 28 29 回收权限 30 revoke delete on *.* from $user$@'$host$'; 31 32 修改密码 33 SET PASSWORD FOR $user$@'$host$' = PASSWORD('$passwd$'); 34 update user set PASSWORD = PASSWORD('$passwd$') where user = $user$;

数据表相关

对数据库里面的表做相关的操作

  1. 创建表

    1 create table $table$( 2 $field1$ 数据类型 [完整性约束条件], 3 ... 4 $field*$ 数据类型, 5 [UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY 6 )ENGINE=[MyISAM|INODB|...];
  2. 查看数据表

    1 show tables;查看数据库下面的所有表 2 查看数据表信息 3 desc $table$ 4 show create table $table$; 5 show columns from $table$;
  3. 修改数据表

    1 alter table $table_src$ rename $table_dest$;修改表名 2 $table_src$为原来数据表的名称,而$table_dest$为新的数据表名称. 3 4 alter table $table$ change $field_src$ $field_dest$;修改字段名 5 alter table $table$ modify $field$ int(20);修改字段的数据类型 6 alter table $table$ add $field$ int;增加字段 7 alter table $table$ drop $field$;删除字段 8 9 drop table $table$;删除表 10 truncate table $table$;清空表
  4. 索引相关

    1 创建索引 2 创建普通索引 3 create index $index_name$ on $table$($field$); 4 alter table $table$ add index $index_name$($field$); 5 6 创建唯一性索引 7 create unique index $index_name$ on $table$($field$); 8 alter table $table$ add unique $index_name$($field$); 9 10 删除索引 11 alter table $table$ drop index $index_name$; 12 drop index $index_name$ on $table$;
  5. 数据表里面的数据的操作

    1 添加数据 2 insert into $table$($field1$,$field2$,...) values($value1$,$value2$,...); 3 insert into $table$ values($value1$,$value2$,...); 4 insert into $table$ set $field1$=$value1$,$field2$=$value2$,...; 5 insert into $table$ values($value1$,$value2$,...),($value1$,$value2$,...),...; 6 查询数据 7 select * from $table$; 8 select * from $table$ limit $count$; 9 select * from $table$ limit $start$,$count$; 10 select * from $table$ where $field$=$value$; 11 select $field1$,$field2$,... from $table$ where $field$=$value$; 12 %:代表0个、1个或者多个任意字符 13 _:代表1个任意字符 14 select * from $table$ where $field$ like "%|_"; 15 select * from $table$ group by $field$;分组 16 select $field1$,$field2$,...,group_concat($field$) from $table$ group by $field$; 17 18 select $field1$,group_concat($field$) as $variable1$, 19 count(*) as $variable2$, 20 max($field$) as $variable3$, 21 sum($field$) as $variable4$ 22 from $table$ group by $field$ having count(*) > 2; 23 24 select * from $src$ order by $field$ desc; $降序 25 select * from $src$ order by $field$ asc; $升序 26 更新数据 27 update $table$ set $field$=$value$ where $field$=$value$; 28 删除数据 29 delete from $table$ where $field$=$value$;

备份

1 备份数据库到文件 2 mysqldump -u$user$ -p$passwd$ $db$ > $path$/$file$.sql 3 创建一个新的数据库 4 mysql -u$user$ -p$passwd$ -e "create database $db$" 5 导入数据到新的数据库 6 mysql -u$user$ -p$passwd$ $db$ < $path$/$file$.sql 7 8 查看数据库历史命令 9 cat /root/.mysql_history 10 11 远程登陆数据库并查询 12 mysql -u$user$ -p$passwd$ -h 127.0.0.1 -P 3306 -e "select * from $db$.$table$ limit 2;" 13 14 查看数据表的详细信息 15 show table status like '$table$'; 16 17 导出数据库的一个数据表 18 mysqldump $db$.$table$ > $path$/$file$.sql 19 20 将数据表导入数据库 21 mysql $db$ < $path$/$file$.sql 22 需要注意的是,导入的数据表名称为导出时候,数据表在源数据库中的名称, 23 因此保证在源数据库中的名称和新数据库中表名称不会重复,否则会发生数据覆盖.
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Python3:sqlalchemy对mysql数据库操作,非sql语句

Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''