常用MySQL语句搜集整理

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

#!/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,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
SQL 存储 缓存
SQL语句在MySQL中是如何执行的
SQL语句在MySQL中是如何执行的
46 0
|
SQL 存储 缓存
一文搞懂MySQL中一条SQL语句是如何执行的
一文搞懂MySQL中一条SQL语句是如何执行的
|
SQL 关系型数据库 MySQL
软件开发入门教程网之MySQL GROUP BY 语句
软件开发入门教程网之MySQL GROUP BY 语句
|
SQL 关系型数据库 MySQL
软件开发入门教程网 之MySQL DELETE 语句
软件开发入门教程网 之MySQL DELETE 语句
|
存储 SQL 关系型数据库
MySQL数据库系列(八)-------高级语句二
可以被当作是虚拟表或存储查询
78 0
MySQL数据库系列(八)-------高级语句二
|
SQL 关系型数据库 MySQL
|
SQL 缓存 关系型数据库
MySQL语句执行过程
MySQL语句执行过程
|
SQL 关系型数据库 MySQL
软件开发入门教程网之MySQL GROUP BY 语句
GROUP BY 语句根据一个或多个列对结果集进行分组。 在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
|
SQL 关系型数据库 MySQL
软件开发入门教程网 之MySQL DELETE 语句
你可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。 你可以在 mysql> 命令提示符或 PHP 脚本中执行该命令。
|
SQL 关系型数据库 MySQL
MySQL SQL语句给当前日期加一天和减一天
MySQL SQL语句给当前日期加一天和减一天