掌握MySQL基础:SELECT查询和正则表达式实用指南!

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值