常用MySQL语句搜集整理-阿里云开发者社区

开发者社区> 技术小阿哥> 正文

常用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;



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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10074 0
mysql常用命令
这几天学习了一下mysql,对于mysql的命令总结如下,发现很多方面和oracle还是差别挺大的。# mysql -uroot -p Enter password:  Welcome to the MySQL monitor.
747 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10882 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13882 0
Mysql总结_03_mysql常用命令
一、MySQL服务的启动和停止 net stop mysql net start mysql二、登陆mysql mysql -u用户名 -p用户密码 键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:mysql>...
801 0
13694
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载