MYSQL命令
一、连接数据库
- 连接数据库:
mysql -u (用户名) -p (密码) -h (主机ip地址)
- 创建数据库:
CREATE DATABASE DATABASE_NAME(数据库名);
- 查看数据库:
SHOW DATABASES;
- 使用数据库:
USE DATABASE_NAME(数据库名);
- 导入sql脚本:
source path/xx.sql(sql脚本文件的路径全名)
- 查看表:
SHOW TABLES;
- 查看表列(字段)设计:
SHOW COLUMNS FROM TABLE_NAME;
=DESCRIBE TBALE_NAME;
- SHOW命令语句:
HELP SHOW;
二、检索数据(SELECT)
2.1 DISTINCT (返回不同值(唯一值))
vend_id有14条数据,4个不重复值。用distinct返回唯一值。
SELECT DISTINCT vend_id FROM products;
- 应用于所有列,若指定列不相同,所有行被检索出来。
2.2 LIMIT (限制结果)
- 检索前n行:
SELECT prod_name FROM products LIMIT n;
- 检索从行5开始的5行:
SELECT prod_name FROM products LIMIT 5,5;
- 行0:第一行是行0;LIMIT 1,1检索的是第二行。
2.3 排序(ORDER BY)
2.3.1 多列排序
SELECT prod_price, prod_name FROM products ORDER BY prod_price,prod_name
- 排序按规定顺序进行。eg:先排price,再排name。
2.3.2 降序(DESC)
SELECT prod_price, prod_name FROM products ORDER BY prod_price DESC,prod_name DESC
- DESC只应用到其前面的字段,多字段降序需每个字段后都跟DESC。
- 使用LIMIT+ORDER BY 选出最低/高的值。
2.4 过滤(WHERE)
操作符 | 说明 |
---|---|
= | |
<> | 不等于 |
!= | |
< | |
<= | |
> | |
>= | |
BETWEEN | 两值之间 |
- BETWEEN:
SELECT prod_price, prod_name FROM products WHERE prod_price BETWEEN 5 AND 10 ;
[5,10]之间。 - IS NULL(空值检查):
SELECT cust_id FROM customers WHERE cust_email IS NULL;
检查在customers表中cust_email = null 的列。
2.4.1 AND 和 OR
- AND 的计算次序高于OR,需要用圆括号明确分组。
SELECT prod_price, prod_name FROM products WHERE (vend_id = 1002 OR vend_id = 1003) AND prod_price >= 10
2.4.2 IN
- 与OR功能相同,比OR执行效率更快。
- 可以包含其他SELECT子句。
SELECT prod_price, prod_name FROM products WHERE vend_id IN (1002,1003)
2.4.3 NOT
- 支持IN 、BETWEEN 、EXISTS 取反。
SELECT prod_price, prod_name FROM products WHERE vend_id NOT IN (1002,1003);
2.4.4 LIKE
- (%)百分号通配符
- 匹配0个、1个、多个字符。
- 可放在任意位置。
- (_)下划线通配符
- 匹配1个字符。
SELECT prod_price, prod_name FROM products WHERE prod_name LIKE '_ ton%'
- 效率低,不可滥用。
2.5 正则表达式匹配 REGEXP
- BINARY 区分大小写:
SELECT prod_price, prod_name FROM products WHERE prod_name REGEXP BINARY 'JetP'
- 匹配特殊字符: \为前导。
- eg:
SELECT prod_price, prod_name FROM products WHERE prod_name REGEXP '\\([0-9] sticks?\\)'
- 与LIKE的不同:LIKE匹配整个列,REGEXP匹配列值内。
- REGEXP 表达式语法: