教学视频地址:https://www.bilibili.com/video/BV1xW411u7ax?p=36
今日学习34 - 集
SQLyog里面的注释可以用 #
安全等于:<=>
案例1:查询没有奖金的员工名和奖金率
select
last_name,
commission_pct
from
employees
where
commission_pct <=> NULL;
案例2:查询工资为12000的员工信息
select
last_name,
salary
from
employees
where
salary <=> 12000;
is null: 仅仅可以判断null值
<=>: 既可以判断null值,又可以判断普通的数值
测验题:
1.查询工资大于12000的员工姓名和工资
SELECT
CONCAT(last_name,’ ',first_name) AS 姓名,
salary AS 工资
FROM
employees
WHERE
salary<=20000;
2.查询员工号为176的员工的姓名和部门号和年薪
SELECT
employee_id AS 员工号,
CONCAT(last_name,’ ',first_name) AS 姓名,
department_id AS 部门号,
salary12(1+IFNULL(commission_pct,0)) AS 年薪
FROM
employees
WHERE
employee_id = 176;
3.选择工资不在5000到12000的员工和姓名和工资
SELECT
CONCAT(last_name,’ ',first_name) AS 姓名,
salary AS 工资
FROM
employees
WHERE
salary<=5000 OR salary>=12000;
4.选择在20或50号部门工作的员工姓名和部门号
SELECT
CONCAT(last_name,’ ',first_name) AS 姓名,
department_id AS 部门号
FROM
employees
WHERE
department_id=20 OR department_id=50;
5.选择公司中没有管理者的员工姓名及job id
SELECT
CONCAT(last_name,’ ',first_name) AS 姓名,
job_id
FROM
employees
WHERE
manager_id IS NULL;
6.选择公司中有奖金的员工姓名,工资和奖金级别
SELECT
CONCAT(last_name,’ ',first_name) AS 姓名,
salary AS 工资,
commission_pct
FROM
employees
WHERE
commission_pct IS NOT NULL;
7.选择员工姓名的第三个字母是a的员工姓名
SELECT
CONCAT(last_name,’ ',first_name) AS 姓名
FROM
employees
WHERE
last_name LIKE ‘__a%’;
8.选择姓名中有字母a和e的员工姓名
SELECT
CONCAT(last_name,’ ',first_name) AS 姓名
FROM
employees
WHERE
last_name LIKE ‘%a%’ OR last_name LIKE ‘%e%’;
总结:
一、数据库的相关概念
1.数据库的好处
(1)可以持久化数据到本地
(2)结构化查询
2.数据库的常见概念
(1)DB:数据库,存储数据的容器
(2)DBMS:数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB
(3)SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据库软件通用的语言
3.数据库存储数据的特点
(1)数据库存放到表中,然后表再放到库中
(2)一个库可以有多张表,每张表具有唯一的表名来标识自己
(3)表中有一个或多个列,列又称为“字段”,相当于java中“属性”
(4)表中的每一行数据,相当于java中“对象”
4.常见的数据库管理系统
mysql、oracle、db2 (IBM)、SqlServer (微软)
二、MySQL的介绍
1.MySQL的背景
前身输入瑞典的一家公司,MySQL (AB)
08 年被 sun 公司收购
09 年 sun 被 oracle 收购
2.MySQL的优点
(1)开源、免费、成本低
(2)性能高、移植性也好
(3)体积小,便于安装
3.MySQL的安装
属于c/s架构的软件,一般来讲是安装服务端
安装的是社区版本5.5
4.MySQL服务的启动和停止
方式一:通过命令行
net start 服务名
net stop 服务名
方式二:右击计算机—>管理—>服务
5.MySQL服务的登陆和退出
登陆:mysql【-h 主机名 -p 端口号】-u 用户名 -p密码
退出:exit 或 ctrl+C
三、DQL语言
1.基础查询
(1)语法
select 查询列表
from 表名;
(2)特点
(a)查询列表可以是字段、常量、表达式、函数,也可以是多个
(b)查询结果是一个虚拟表
(3)实例
(a)查询单个字段
select 字段名 from 表名;
(b)查询多个字段
select 字段名,字段名 from 表名;
(c)查询所有字段
select * from 表名;
(d)查询常量
select 常量值;
注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要
(e)查询函数
select 函数名(实参列表);
(f)查询表达式
select 100/1234;
(g)起别名
as、空格
(h)去重
select distinct 字段名 from 表名;
(i)+
作用:做加法运算
select 数值+数值; // 直接运算
select 字符+数值; // 先试图将字符转换成数值,如果转换成功,则继续运算;否则转换成0,再做运算
select null+值; // 结果都为null
(j)【补充】concat 函数
功能:拼接字符
select concat(字符1,字符2,字符3,…);
(k)【补充】ifnull 函数
功能:判断某字段或表达式是否为 null,如果为 null 返回指定的值,否则返回原本的值
select ifnull(commission_pct,0) from employees;
(l)【补充】isnull 函数
功能:判断某字段或表达式是否为null,如果是,则返回1,否则返回0
select isnull(commission_pct,0) from employees;
2.基础查询
(1)语法
select 查询列表
from 表名
where 筛选条件;
(2)筛选条件的分类
(a)简单条件运算符
>,<,=, <>,!=,>=,<=,<=>安全等于
(b)逻辑运算符
&& and
|| or
! not
(c)模糊查询
like:一般搭配通配符使用,用于判断字符型数值 可以判断int型 where department_id like ‘1__’;
通配符:%任意多个字符,_任意单个字符
between and
in
is null / is not null:用于判断null值
is null 和 <=> 的区别