1.MYSQL相关
1.1SQL语句分类
# DDL数据定义语言
# DML数据操作语言
# DCL数据控制语言
1.2Select基本操作
# 4.展示数据库
show databases ;
# 5.数据导入命令行 ***
-- mysql> source d:\mysqldb.sql
# 6.select 略 生产环境不推荐select *
select employees.last_name as name from employees;
# 7.select操作去除重复行 --distinct 英文本意就是不同的
select distinct department_id
from employees;
/**
注意:DISTINCT 其实是对后面所有列名的组合进行去重
如果你想要看都有哪些不同的部门(department_id),只需
要写 DISTINCT department_id 即可,后面不需要再加其他的列名了。
*/
# 8.MYSQL空值参与运算都以null作为结果显示
SELECT employee_id,salary,commission_pct,
12 * salary * (1 + commission_pct) "annual_sal"
FROM employees;
# 9.特定情况下mysql以order作为关键字保存,需要保留关键字作为表名需要用反引号;
select *
from `order`;
# 10.反引号敲法: 键盘1的左边 ``;
# 12.显示表结构describe 描述 dese 就是记忆一种即可
describe employees;
# Filed 属性名列名 Null 是否可以存空 Default 是否有默认值,如果有是多少
/**1
使用 ORDER BY 子句排序
ASC(ascend): 升序
DESC(descend):降序
ORDER BY 子句在SELECT语句的结尾。 默认升序
*/
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date;
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date DESC ;
SELECT employee_id, last_name, salary*12 annsal
FROM employees
ORDER BY annsal;
# 13.分页 MYSQL使用limit进行分页
SELECT last_name, department_id, salary
FROM employees
ORDER BY department_id, salary DESC
LIMIT 7,10;
多表查询只需要使用where连接即可,也可以避免笛卡尔积重复;
14.运算符相关
in,not in, is ,not is,null, is not null;
15.返回最小值
LAST
16.返回最大值
GREASTEST
17.二者之间用between and
18.like 模糊匹配
# 10.like模糊匹配 返回值也是0/1 null 0表示模糊 1表示匹配 null 表示不匹配
# “%”:匹配0个或多个字符。
# “_”:只能匹配一个字符。
19.REGEXP正则表达式
/**
正则表达式进行查询;
^ 匹配文本的开头 '^b' 以b开头的字符串
$ 匹配文本的结尾 'tail$' 匹配tail字符串结尾的字符串
. 代指任何单个 字符 'm.n' 匹配一个字符串两端是mn
*
+ 使前面的字符一次或多次 'ab+' 匹配ab,abb,abbbb,abbbbbb...
str
[str] 匹配包含str任何一个字符的字符串 '[ab]' 匹配包含a或包含b的字符串
[^] 匹配不在括号 内的任何字符 '[^abc]' 匹配不含a,b,c的字符串
str{n,} n表示{}前面字符出现的次数 ab{2} 匹配abb
str{n,m} 匹配 一个范围的字符串 ab{2,4} abb,abbb,abbbb
小结:
正则表达式匹配需要写regexp REGEXP
{}是匹配数量的,匹配括号前面字符的数量
+是匹配数量,模糊匹配,前面字符可以出现多次 并未限制死,与{}区分开
[]是匹配 字符是否存在性的; 不含^就是存在任意 ;含^表都不含有的字符串
^,$ 开始结束符 特别注意$始终放末尾;
*/
*/
select *
from employees
where first_name regexp 'i$';
select *
from employees
where first_name regexp '^V';
# '[^a-e1-2]' 匹配a开头 到e之间和数字1~2