Mysql的命令总结

时间:2021-08-16 12:28:14

Mysql常用命令

启动

net start mysql

关闭

net stop mysql

连接mysql

mysql -uroot -ppssword
mysql -uroot -P3307 -ppssword

修改密码

mysqladmin -uroot - p123456 password 123

增加用户

create user 'lisi'@'%' IDENTIFIED By '123456'

用户授权

grant select,insert on test.user to 'lisi'@'%'

授予李四查询和插入的权限,生效范围是test数据库下的user表。需要注意的是如果不对用户授权,用户都可能无法登陆。

设置用户密码

set password for 'lisi'@'%' = password('lisi')

设置lisi的用户密码为lisi

删除用户

DROP USER 'lisi'@'%'

新建数据库

create database db_name

显示数据库

show databases

删除数据库

drop database db_name

使用数据库

use db_name

查询mysql的版本好

select version()

查询系统时间

select now()

新建表

create table table_name(
id int primary key auto_increment,
name varchar(50) not null
);

插入表

insert into table_name values (value1,value2),(value1,value2);

可以一次性插入多个值,需要注意的是值必须与属性列一一对应

查询表

select *  from table_name

删除数据

delete from table_name where 列名=value;

修改数据

update table_name set  列名1=value1 where 列名2=value2;

增加字段

alter table table_name add 属性列 类型 约束

删除字段

alter table table_name drop column_name

新建主键索引

alter table table_name add primary key(id)

新建普通索引

alter table table_name add index 索引的名字 (属性列)

索引的名字一般是  表名_属性名

新建唯一索引

alter table table_name add unique 索引的名字 (属性列)

删除索引

alter table table_name drop index 索引名

导出数据库

mysqldump -uroot -ppassword 数据库的名字 > 导出路径\表名.sql

导出表

mysqldump -uroot -ppassword 数据库的名字 表名 > 导出路径\表名.sql

数据库还原

mysql -uroot -ppassword 库名 < sql所在的路径

查看引擎

show engines;
show variables like '%storage_engine%';

必知必会

1. show相关
1. show databases : 返回可用的数据库列表
2. show tables : 返回当前选择的数据内可用表的列表
3. show columns from tab_name : 返回表的所有字段
4. describe tab_name : 同上
5. show status : 显示广泛的服务器状态信息
6. show create database/table : 显示创建特定数据库或表的MYSQL语句
7. show errors/warnings : 显示服务器错误或警告信息
8. help show : 显示允许的show语句
2. 查询相关
1. SELECT DISTINCT col_name FROM tab_name : 查询不同的值,也就是去重
2. SELECT col_name FROM tab_name LIMIT start_index, rows : 限制查询结果(一般用于分页查询),后面的参数代表开始索引和查询的行数
3. SELECT col_names FROM tab_name ORDER BY col_names : 默认是升序排序,可以使用DESC来改变排序规则,也可以指定多个列来进行排序(可以使用非查询列来进行排序)
4. SELECT col_names FROM tab_name WHERE 条件 : 过滤查询
1. WHERE子句的操作符
1. = : 等于
2. <> : 不等于
3. != : 不等于
4. < : 小于
5. <= : 小于等于
6. > : 大于
7. >= : 大于等于
8. BETWEEN 1 AND 2 : 在指定的两个值之间
5. NULL的判断 : 使用 IS NULL进行判断(注意NULL与0,空字符串,仅仅包含空格是不相同的)
6. 多个条件同时匹配中间用AND连接,匹配任一条件中间用OR连接,二者并存的时候需要考虑次序问题,一定要加上括号,避免产生歧义
7. SELECT col_names FROM tab_name WHERE col_name IN (1,2) : 表示或1或2都可以,也就是OR的简单写法
8. NOT的使用,NOT IN找出与条件列表不匹配的行
9. LIKE,%,_的使用,LIKE表示模糊查询,%表示匹配任意字符出现任意次数(包括0个字符),_匹配任意的单个字符
1. 不要过度使用通配符,通配符会消耗很大的内存,花费时间更长. 3. 正则相关
1. 正则与like的区别
1. LIKE匹配整个列,如果被匹配的文本在列值中出现,LIKE将不会找到它,相应的行也不会返回
2. REGEXP在列值内匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行被返回
3. 例子:
1. SELECT prod_name FROM products WHERE prod_name LIKE '1000';
2. SELECT prod_name FROM products WHERE prod_name REGEXP '1000'
3. 上面两个sql语句查询结果是不相同,如果数据库中在prod_name为1000的行
2. 点的使用,Mysql中的.是一个特殊字符,表示匹配任意一个字符.
1. SELECT prod_name FROM products WHERE prod_name REGEXP '.000';
2. SELECT prod_name FROM products WHERE prod_name LIKE '%000%';
3. 上面两个sql的查询结果是相同的.
3. 正则表达式OR的匹配的多种写法
1. SELECT prod_name FROM products WHERE prod_name REGEXP '1000|2000'; /*匹配其中之一*/
2. ELECT prod_name FROM products WHERE prod_name REGEXP '[123] Ton'; /*匹配几个字符之一*/
3. SELECT prod_name FROM products WHERE prod_name REGEXP '[1-5] ton'; /*匹配范围,匹配1到5之间的任意数字 + ton*/
4. 匹配特殊字符,也就是匹配.等等
1. 使用转义字符,一般正则表达式的转义字符是 \,但是在Mysql中要求两个,也就是\\,一个是Mysql解释,一个是正则表达式解释
1. SELECT prod_name FROM products WHERE prod_name REGEXP '\\.';/*匹配特殊字符需要使用转义字符,比如说:\\.匹配. \\-匹配- \\\匹配\ */
5. 字符类(使用过程中注意的是要使用[]进行包裹,也就是使用两个中括号才可以正确匹配,即[[:digit:]]):
<table>
<tr>
<th>类</th>
<th>说明</th>
</tr>
<tr>
<td>[:alnum:]</td>
<td>任意子母和数字(同[a-zA-Z0-9])</td>
</tr>
<tr>
<td>[:alpha:]</td>
<td>任意字符(同[a-zA-Z])</td>
</tr>
<tr>
<td>[:blank:]</td>
<td>空格和制表符(同[\\t])</td>
</tr><tr>
<td>[:cntrl:]</td>
<td>ASCII控制字符(ASCII0到31和127)</td>
</tr><tr>
<td>[:digit:]</td>
<td>任意数字(同[0-9])</td>
</tr><tr>
<td>[:graph:]</td>
<td>与[:print:]相同,但不包括空格</td>
</tr><tr>
<td>[:lower:]</td>
<td>任意小写子母(同[a-z])</td>
</tr><tr>
<td>[:print:]</td>
<td>任意可打印字符</td>
</tr><tr>
<td>[:punct:]</td>
<td>既不在[:alnum:]又不在[:cntrl:]中的任意字符</td>
</tr><tr>
<td>[:space:]</td>
<td>包括空格在内的任意空白字符(同[\\f\\n\\r\\t\\v])</td>
</tr><tr>
<td>[:upper:]</td>
<td>任意大写子母(同[A-Z])</td>
</tr>
<tr>
<td>[:xdigit:]</td>
<td>任意十六进制数字(同[a-fA-F0-9])</td>
</tr>
</table>
5. 重复元字符
<table>
<tr>
<th>元字符</th>
<th>说明</th>
</tr>
<tr>
<td>*</td>
<td>0个或多个匹配</td>
</tr>
<tr>
<td>+</td>
<td>一个或多个匹配(等于{1,})</td>
</tr>
<tr>
<td>?</td>
<td>0个或一个匹配(等于{0,1})</td>
</tr><tr>
<td>{n}</td>
<td>指定数目的匹配</td>
</tr><tr>
<td>{n,}</td>
<td>不少于指定数目的匹配</td>
</tr><tr>
<td>{n,m}</td>
<td>匹配数目的范围(m不找过255)</td>
</tr>
</table>
6. 定位符
<table>
<tr>
<th>元字符</th>
<th>说明</th>
</tr>
<tr>
<td>^</td>
<td>文本的开始</td>
</tr>
<tr>
<td>$</td>
<td>文本的结束</td>
</tr>
<tr>
<td>[[:<:]]</td>
<td>词的开始</td>
</tr><tr>
<td>[[:>:]]</td>
<td>词的结尾</td>
</tr>
</table>
7. 上面三种的举例:
1. SELECT prod_name FROM products WHERE prod_name REGEXP '[[:digit:]]{2}';/*数字连续出现两次*/
2. SELECT prod_name FROM products WHERE prod_name REGEXP '^[0-9\\.]';/*以0-9 .开始*/
3. SELECT prod_name FROM products WHERE prod_name REGEXP '[0-9\\.]$'; /*以0-9 .结束*/
4. SELECT prod_name FROM products WHERE prod_name REGEXP '[[:<:]]Jet';/*以Jet开始*/
5. SELECT prod_name FROM products WHERE prod_name REGEXP '0[[:>:]]';/*以0结尾*/ 4. 计算字段相关:
1. 函数的使用
1. Concat()函数来拼接两个或多个列(其他的DBMS使用+或者||来实现拼接)
1. SELECT CONCAT(vend_name, ' (', vend_country ,') ') FROM vendors; /*各个串之间使用逗号隔开*/
2. Trim()函数:
1. RTrim() : 去掉串右边空格
2. LTrim() : 去掉串左边空格
3. Trim() : 去电串两边空格
2. 使用别名
1. AS的使用,别名用在计算字段或者不规则字段等的重命名
3. 算数计算:
1. mysql的算数运算符有加减乘除(+-*/) 5. 数据处理函数
1. 文本处理函数
1. Trim() : 去掉两边空格
2. Upper() : 将文本转化为大写
3. Left() : 返回串左边的字符
4. Length() : 返回串的长度
5. Locate() : 找出串的一个子串
6. Lower() : 将串转化为小写
7. LTrim() : 去掉串左边空格
8. Right() : 返回串右边字符
9. RTrim() : 去掉串右边空格
10. Soundex() : 返回串的Soundex值,描述其语音表示的字母数字模式的算法
1. 简单的来说就是匹配发音相似的内容
11. SubString() : 返回子串的字符
12. Upper() : 将串转化为大写
2. 常用日期和时间处理函数(Mysql中的日期格式为yyyy-mm-dd)
1. AddDate() : 增加一个日期(天,周等)
2. AddTime() : 增加一个时间(时,分等)
3. CurDate() : 返回当前日期
4. CurTime() : 返回当前时间
5. Date() : 返回日期时间的日期部分(仅仅想要日期比较,就用Date()函数)
6. DateDiff() : 计算两个日期之差
7. Date_Add() : 高度灵活的日期运算函数
8. Date_Format() : 返回一个格式化的日期和时间串
9. Day() : 返回一个日期的天数部分
10. DayOfWeek() : 对于一个日期,返回对应的星期几
11. Hour() : 返回一个时间的小时部分
12. Minute() : 返回一个时间的分钟部分
13. Month() : 返回一个日期的月份部分
14. Now() : 放回当前日期和时间
15. Second() : 返回一个时间的秒部分
16. Time() : 返回一个日期时间的时间部分
17. Year() : 返回一个日期的年份部分
3. 数值处理函数
1. Abs() : 返回一个数的绝对值
2. Cos() : 返回一个角度的余弦
3. Exp() : 返回一个数的指数值
4. Mod() : 返回除操作的余数
5. Pi() : 返回圆周率
6. Rand() : 返回一个随机数
7. Sin() : 返回一个角度的正弦
8. Sqrt() : 返回一个数的平方根
9. Tan() : 返回一个角度的正切
4. 日期例子:
1. 日期的等值比较 : SELECT cust_id, order_num FROM orders WHERE DATE(order_date) = '2005-09-01';
2. 日期的区间比较 : SELECT cust_id, order_num FROM orders WHERE DATE(order_date) BETWEEN '2005-09-01' AND '2005-09-30';
3. 日期的区间比较优化 : SELECT cust_id, order_num FROM orders WHERE YEAR(order_date) = 2005 AND MONTH(order_date) = 9; 6. 汇总数据:
1. 聚集函数
1. AVG() : 返回某列的平均值(忽略值为NULL的行)
2. COUNT() : 返回某列的行数
3. MAX() : 返回某列的最大值(忽略值为NULL的行)
4. MIN() : 返回某列的最小值(忽略值为NULL的行)
5. SUM() : 返回某列值之和(忽略值为NULL的行)
2. 例子 :
1. 返回商品的平均价格,排除相同价格:SELECT AVG(DISTINCT proD_price) AS avg_price FROM products WHERE vend_id = 1003;
2. 返回商品的总数,商品的最大值,商品的最小值,商品的平均值:SELECT COUNT(*),MIN(prod_price) AS min_price,MAX(prod_price) AS max_price,AVG(prod_price) AS avg_price FROM products; 7. 分组数据
1. group by 和 having
1. group by子句不能是聚集函数和别名
2. having是用来过滤分组的
2. 查询子句的顺序
1. SELECT * FROM TAB_NAME WHERE GROUP BY .. HAVING .. ORDER BY.. LIMIT

Mysql的命令总结的更多相关文章

  1. MySQL ALTER命令

    当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 开始本文教程前让我们先创建一张表,表名为:testalter_tbl. root@host# mysql -u r ...

  2. MySQL 常用命令总结

    http://blog.csdn.net/hanxin1987216/article/details/5976860 一.总结 1.Linux系统下启动MySQL的命令: mysqladmin sta ...

  3. MySQL常用命令和常见问题

    MySQL常用命令和常见问题 --创建数据库并设置字符集 create database wip default character set utf8 collate utf8_general_ci; ...

  4. MySQL命令大全:MySQL常用命令手册、MySQL命令行大全、查询工具

    1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root ...

  5. 烂泥:mysql帮助命令使用说明

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在安装.管理和使用mysql过程中,你是不是需要记忆很多的mysql命令.而且对于新手来说,很不多的命令不知道该如何应用,对于老手来说很多命令时间长了忘 ...

  6. MYSQL 连接数据库命令收藏

    一.MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格) C:\>mysql -h localhost -u root -p123 二. ...

  7. Mysql常用命令详解

    Mysql安装目录 数据库目录 /var/lib/mysql/ 配置文件 /usr/share/mysql(mysql.server命令及配置文件) 相关命令 /usr/bin(mysqladmin ...

  8. Mysql常用命令行大全

    第一招.mysql服务的启动和停止 net stop mysql net start mysql 第二招.登陆mysql 语法如下: mysql -u用户名 -p用户密码 键入命令mysql -uro ...

  9. mysql常用命令(3)

    一.启动与关闭 1.1 Linux下启动mysql 的命令: a. rpm包安装:service mysqld start b. 源码包安装:/usr/local/mysql/bin/mysqld_s ...

  10. mysql常用命令(2)

    1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root ...

随机推荐

  1. ios git 终端提交

    git status    //检查提交状态 git status On branch master  //检查分支 git branch   //查看分支 git add *   //添加所有本地更 ...

  2. DESCryptoServiceProvider

    public static byte[] DESEncrypt(byte[] data, byte[] sKey) { return DESEncrypt(data, sKey, sKey); } / ...

  3. WAMP2&period;5 Forbidden

    Forbidden You don't have permission to access /DuoLamPHP/index.php on this server. Apache/2.4.9 (Win ...

  4. MySQL常用技巧

    1.查看MySQL版本信息: 1,登上 mysql>status; 2,登上 mysql>select version(); 3,登上 mysql> select @@version ...

  5. 文字处理TX Text Control X10独家揭秘(二):图像占位符合并

    在前面一篇文章<TX Text Control X10独家揭秘(一):数据源自动处理>中已经对即将发布的TX Text Control X10的数据源自动处理做了一些了解,接下来述说它的图 ...

  6. JQuery需要手动回收xmlHttpRequest对象

    今天在园子里面看到kuibono的文章说JQuery不会自动回收xmlHttpRequest对象,并且在每次Ajax请求之后都会创建一个新的xmlHttpRequest对象,感到惊讶,索性写了一个程序 ...

  7. Python assert作用

    使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单.在没完善一个程序之前, 我们不知道程序在哪里会出错.与其让它在运行最后崩溃,不如在出现错误 ...

  8. BZOJ3393 &lbrack;Usaco2009 Jan&rsqb;Laserphones 激光通讯 BFS

    原文链接http://www.cnblogs.com/zhouzhendong/p/8371735.html 题目传送门 - BZOJ3393 题意概括 直接看原题的翻译吧,很容易懂的. 题解 我不知 ...

  9. Linux系统下升级Python版本步骤(suse系统)

    Linux系统下升级Python版本步骤(suse系统) http://blog.csdn.net/lifengling1234/article/details/53536493

  10. C&plus;&plus; 实验2:函数重载、函数模板、简单类的定义和实现

    1.函数重载编程 编写重载函数add(),实现对int型,double型,Complex型数据的加法.在main()函数中定义不同类型数据,调用测试. #include <iostream&gt ...