常用MySQL语句搜集整理

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

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

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
265
分享
相关文章
SQL语句编写的练习(MySQL)
这篇文章提供了MySQL数据库中关于学生表、课程表、成绩表和教师表的建表语句、数据插入示例以及一系列SQL查询练习,包括查询、排序、聚合和连接查询等操作。
|
11月前
|
SQL语句在MySQL中是如何执行的
SQL语句在MySQL中是如何执行的
109 0
Mysql 根据同一字段实现一条语句部分正序部分倒序的解决方案
Mysql 根据同一字段实现一条语句部分正序部分倒序的解决方案
403 0
Mysql 根据同一字段实现一条语句部分正序部分倒序的解决方案
MySQL 如何使用SQL语句获取表结构和获取全部表名
MySQL 如何使用SQL语句获取表结构和获取全部表名
475 0
MySQL 如何使用SQL语句获取表结构和获取全部表名
为什么同样的Sql语句在SqlServer RDS 查询得到的和自己本机SqlServer 查询的不一样呢?
为什么同样的Sql语句在SqlServer RDS 查询得到的和自己本机SqlServer 查询的不一样呢?
186 0
为什么同样的Sql语句在SqlServer RDS 查询得到的和自己本机SqlServer 查询的不一样呢?
MySQL管理语句
引入 上期我们介绍了MySQL以及其的运行机制。本期开始我们将针对MySQL的使用进行简要地讲解。 先从基本管理开始
MySQL管理语句
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等