MYSQL学习笔记(一)

学习MySQL时的随手笔记及代码笔记,学习课程来源https://www.bilibili.com/video/av49181542?p=38

第一课

DQL : data query languge 数据查询语言
DML: 增删改查语言
DDL: 数据定义语言
TCL: 事务控制语言

DQL

1.基础查询
select 查询列表 from 表名;
查询的列表可以是:表中的字段、常量、表达式、函数
查询的结果时一个虚拟的表格
#1.查询表中的单个字段
SELECT last_name from employees;
#2.查询表中的多个字段

select last_name,salary,email from employees;

#3.查询表中的所有字段

select * from employees;

#4.查询常量至
select 110;
select ‘li’;
#5.查询表达式
selec 100%98;
#6.查询函数
select version();
#7.起别名
select 100%98 as 结果;

select last_name as,first_name asfrom employees;    ---as可省略

#8.去重
distinct
select distinct departme_id from employees;
#9.+号作用 -----mysql的+仅仅用于运算。
select 100+90; ----加法运算
select ‘100’+90; —系统会试图将字符型的100转换为数值型 进行计算,该语句还是加法运算。
select ‘li’+90; --该语句的字符型无法转换为数值型,系统会将其强制置为0
select null + 90; —有一方为null时,结果必为null

mysql中想将两个列表拼接   使用 concat函数   
select concat('a','b','c') as 结果;
 select concat(first_name,last_name) as 姓名 from employees;
**特殊情况:ifnull函数**  
如果某个列表的值为null 将会导致拼接后的值强制置为null,此时需使用ifnull函数来进行判断   ifnull(列表名,若为null则输出什么)。  如commission_pct列表中有部分内容为Null,在为null时输出0,则可写为  select ifnull(commission_pct,0) as 奖金率,commission_pct from employees;

2.条件查询

语法:select 查询列表 form 表名 where 筛选条件;

分类:1.按条件表达式筛选
            条件运算符:< > =  != <> <= >=
            2.按逻辑表达式筛选
                逻辑运算符:&& || !   and or not
            3.模糊查询
                like         between and            in             is null
**#1.按条件表达式筛选:**
   查询工资大于12000的员工:
select * from employees where salary>12000;
    查询部门编号不等于90号的员工名和部门编号
select last_name department_id from employees where department_id <> 90;
**#2.按逻辑表达式筛选:**
    查询工资在10000到20000之间的员工名,工资及奖金
select last_name salary commission_pct from employees whert salary>=10000 and salary<=20000;
**#3.模糊查询**
% 通配符  任意多个字符
_ 通配符  任意单个字符

**like**
查询包含a的员工信息
select last_name from employees where last_name like'%a%' ;
查询第三个为n第五个为l的员工
  select last_name from employees where last_name like '__n_l%';
***特殊情况***,查询第二个字符为_的员工 。此时需加转义字符。1.加转义字符\   2.使用escpe函数自定义一个转义字符   
select last_name from employees where last_name like '_\_%'
select last_name from employees where last_name like '_$_%' escape '$'
**between and**   在****之间       注意两值的顺序   between相当于>=   and相当于<=
# 查询编号在100-200之间的员工信息
select * from employees where enployee_id between 100 and 200;
 若将100和200调换顺序 则相当与查找 >=200  <=100的值。


**in**  查询某字段的值是否属于in列表中的某一项     in列表中的值必须统一
  select last_name,job_id from employees where job_id in('it_prot','ad_vp','ad_pres');
**is null    is not null**       is不可用于判断其他数值, 如is 1200
查询没有奖金的员工名和奖金率
select last_name,commission_pct from employees where commission_pct is null;
**<=> 安全等于**
 select last_name,commission_pct from employees where commission_pct <=> null;
    select last_name,commission_pct from employees where commission_pct <=> 12000;
<=>不仅可以判断null,还可以用来判断普通类型的值,is 仅可用来判断是否为null 即is null 或 is not null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值