常用MySQL语句搜集整理

#!/bin/bash

mkdir -p /data/backmysql/$(date +%F)

mysqldump -uroot -p'XcG12zcq9fCQ1FTICcsu' test > /data/backmysql/`date +%F`/test.sql

mysqldump -uroot -p'XcG12zcq9fCQ1FTICcsu' mysql > /data/backmysql/`date +%F`/mysql.sql

rm -rf /data/backmysql/`date +%F --date '30 days ago'`


show databases; 显示server里有哪些数据库

use mysql;  切换到mysql 这个数据库中。

show tables;  现在当前的这个数据库中的表。

mysqladmin -uroot password 123.com  在没有数据库密码的时候,给数据库设置密码

mysqladmin -uroot -p123.com password redhat.com修改数据库密码

create database zabbix; 创建数据库

drop database test; 删除test数据库

DESCRIBE 表名; 显示数据表的结构:

出现这个错误的时候的解决方法

Duplicate entry '%-root' for key 'PRIMARY'


就再添加 一个root允许远程登录就好了

grant all privileges on *.* to "root"@"%" identified by '123456' by grant option;  

如果你要用root做管理帐号就写下面的那个

本地授权访问数据库(远程有,本地显示不到数据库)

grant all privileges on *.* to 'root'@'localhost' identified by '你的密码';


授权root用户远程访问权限

进入到mysql 数据库中

use mysql;

使用root用户从任何主机连接到Mysql服务器

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysql123' WITH GRANT OPTION; 

(权限传递
 使用这个子句时将允许用户将其权限分配给他人
 对象授权加的是
 选项不能被授予角色
短语
EXECUTE WITH GRANT OPTION 权限)



强制刷新权限

FLUSH PRIVILEGES;

一、终端登陸Mysql

mysql -u[用戶名]  -p[password] -h[localhost]


二、创建用户

①、创建只能本地登陆的用户newuser,允许在dbname上进行select,insert,update,delete操作,密码abc.123:

grant select,insert,update,delete on dbname.* to newuser@localhost Identified by "abc.123";

②、创建允许远程登陆的用户newuser,允许在dbname上进行select,insert,update,delete操作,密码abc.123:

mysql> grant select,insert,update,delete on dbname.* to 'newuser'@'%' Identified by "abc.123";

最后刷新MySQL权限即可:

mysql> flush privileges;

create user "username"@"localhost" identified by "you password"; 创建用户并设置数据库密码


授权方式:

用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

例子:

grant SELECT, INSERT on zabbix.* to "zabbix"@"localhost";

grant all on zabbix.* to zabbix@127.0.0.1 identified by 'zabbix.com' with grant option;

三、创建,删除和最基本查询

Ps:举例数据库名为dbname,表为mytable


显示数据库     mysql->show databases;  

创建数据库    mysql->create database dbname;  

删除数据库     mysql->drop database dbname;  

选择数据库     mysql->use dbname  

创建表        mysql->create table mytable(name varchar(20),sex(char(1),birth date);  

删除表       mysql->drop table mytable;  

显示表的内容   mysql->show tables;  

显示表的结构   mysql->describe mytable;


四、更新操作

1、对列的操作:

在一个表中增加一条字段 mysql->alter table yourtable add  name varchar(20)not null;  

删除一个字段  mysql->alter table yourtable drop name ;


2、对行的操作:

插入一条记录  mysql->insert into mytable values('summer','m','1983-08-24');  

删除一条记录  mysql->delete from mytable where name='summer';  

修改一条记录  mysql->update mytable set sex='vm' where name='summer';  

插入多条记录  mysql->insert into mytable  select * from yourtable;  

根据条件插入  mysql->insert into mytable  select * from yourtable where `key`='value';


五、简单查询:

1.在查询结果中显示列名

a.用as关键字:select name as '姓名'   from students order by age  

b.直接表示:select name '姓名'   from students order by age


2.精确查找:

a. in限定范围:select * from students where native in ('湖南', '四川')  

  

b. between...andselect * from students where age between 20 and 30  

  

c. 比较测试符:(包括=,<>,<,<=,>,>=)select * from students where name = '李山'  

  

d. like:select * from students where name  like  '李%' (注意查询条件中有“%”,则说明是部分匹配,而且还有先后信息在里面,即查找以“李”开头的匹配项。所以若查询有“李”的所有对象,应该命令:'% 李%';若是第二个字为李,则应为'_李%''_李''_李_'。)  

  

e. []匹配检查符:select * from courses where cno like '[AC]%' (表示或的关系,与"in(...)"类似,而且"[]"可以表示范围,如:select * from courses where cno like '[A-C]%')注:关于这个字符我在mysql里用的时候mysql把它当两个普通自符处理的。  

[^]stockname like '[^F-M]%' --------- (^排除指定范围)  

  

f. count()求总数,如:select count(*)  from students (求学生总人数)  

  

g. avg(列)求平均,如:select avg(mark)  from grades where cno=’B2’  

  

h. max(列)和min(列),求最大与最小

六、其他语句整理

  1. 根据条件导出mysql的指定表(即部分数据导出,WordPress网站应该用得到):

mysqldump -h mysql服务器IP -u用户名 -p密码 数据库名表名 --where="筛选条件">导出文件路径;

恢复方法:先用 “use dbname” 选定数据库,然后使用 “source sql的文件路径”命令即可恢复。

例:从wp_blog数据库的wp_postmeta表中导出meta_key=views 的数据到 /home/xyx/Temp.sql 这个文件中

mysqldump -uroot -p123456 wp_blog wp_postmeta --where="meta_key=views" > /home/xyx/Temp.sql

如果是在终端可如下恢复:

mysql> use mydb  

Reading table information for completion of table and column names  

You can turn off this feature to get a quicker startup with -A  

  

Database changed  

mysql> source /home/xyx/Temp.sql  

Query OK, 30 rows affected (0.00 sec)

显示所有字符集:

show character set;

本文转自silence博客51CTO博客,原文链接http://blog.51cto.com/silencezone/1741184如需转载请自行联系原作者


a120518129

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值