文章目录
- 一.数据库的概念
- 1. DB
- 2. DBMS
- 3.SQL
- 二.MySQL服务端的登录和退出
- 1.登录指令
- 三.MySQL的常见命令
- 四.基础查询
- 1.基础查询
- 2.查询常量值
- 3.查询表达式
- 4.查询函数
- 5.起别名
- 6.去重
- 7.+号的作用
- 8.连接(concat)
- 五.条件查询
- 1.语法
- 六.排序查询
- 1.语法
- 2.方法
一.数据库的概念
1. DB
数据库(database):存储数据的“仓库”。它保留了一系列有组织的数据。
2. DBMS
数据库管理系统(Database Management System),又称为数据库软件或产品,用于管理DB中的数据。数据库是通过DBMS创建和操 作的容器。
3.SQL
结构化查询语言(Structure Query Language):专门用来与DBMS通信的语言。
二.MySQL服务端的登录和退出
1.登录指令
①cmd(管理员),输入:mysql [-h主机名 -p端口号]-u用户名 -p*****(密码)
②通过MySQL自带的客户端
退出:exit或CTRL+C
三.MySQL的常见命令
①查看当前所有的数据库
show databases;
②打开指定的库
use 库名
③查看当前库的所有表
show tables;
④查看其它库的所有表
show tables from 库名;
⑤创建表
create tables 表名(
列名 列类型,
列名 列类型,
。。。
)
⑥查看表结构
desc 表名;
⑦查看服务器的版本
方式一:登录到MySQL服务端
select version();
方式二:没有登录到MySQL服务端
mysql --version
或
mysql --v
四.基础查询
1.基础查询
语法:
select 查询列表 from 表名;
特点:
①查询列表可以是:表中的字段,常量值,表达式,函数
②查询的结果是一个虚拟的表格
方法:
①查询表中的单个字段
SELECT last_name FROM employees;
②查询表中的多个字段
SELECT last_name,salary,email FROM employees;
③查询表中的所有字段:
SELECT 所有字段(通过双击,+逗号)FROM employees;顺序任意
或 SELECT * FROM employees;顺序与原表相同
2.查询常量值
SELECT 100;
SELECT ‘john’;
3.查询表达式
SELECT 100%98;
4.查询函数
SELECT VERSION();
5.起别名
方式一:使用AS
SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name AS 名 FROM employees;
方式二:使用空格
SELECT last_name 姓,first_name 名 FROM employees;
特殊情况:
含有关键字用双引号括起来
SELECT salary AS “out put” FROM employees;
好处:
①便于理解
②如果要查询的字段有重名的情况,使用别名可以区分开来
6.去重
SELECT DISTINCT department_id FROM employees;
7.+号的作用
①仅仅只有一个功能运算符
select 100+90;
两个操作数都为数值型,则做加法运算
select ‘123’+90;
其中一方为字符型,试图将字符型数值转换成数值型,如果转换成功,则继续做加法运算
select ‘join’+90;
如果转换失败,则将字符型数值转换成0
select null+10;
只要其中一方为null,则结果肯定为null
8.连接(concat)
SELECT CONCAT(‘a’,‘b’,‘c’) AS 结果
SELECT IFNULL(列名,为真返回值)AS 别名;
五.条件查询
1.语法
select
查询列表
from
表名
where
筛选条件;
分类:
①按条件表达式筛选
条件运算符:> < = != <> >= <=
②按逻辑表达式筛选
逻辑运算符:&& || !
and or not
③模糊查询(不精确)
like,between and,in,is null
like:
特点:
一般和通配符搭配使用
通配符:
% 任意多个字符,包含0个字符
_ 任意单个字符①
SELECT
*
FROM
employees
WHERE
last_name like ‘a’;
②
SELECT
last_name
FROM
employees
WHERE
last_name like’#%’ ESCAPE ‘#’;
between and:
SELECT
*
FROM
employees
WHERE
employee_id BETWEEN 100 AND 200;
特点:
①提高语句的简洁度
②包含临界值
③两个临界值不要调换顺序
in:
SELECT
last_name,
job_id
FROM
employees
where
job_id IN(‘IT_PROT’,‘AD_VP’,‘AD_PRES’);
含义:判断某字段的值是否属于in列表中的某一项
特点:
①使用in提高语句简洁度
②in列表的值类型必须统一或兼容
③不支持通配符
is null:
查询没有奖金的员工名和奖金率
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct is NULL;
注:
=或!=不能判断null值
is null 或is not null可以判断null值
安全等于<=>
SELECT
last_name,
commission_pct
FROM
employees
WHERE
salary <=> 12000;
is null pk <=>
IS NULL:仅仅可以判断NULL值,可读性较高,建议使用
<=>:既可以判断NULL值,又可以判断普通的数值,可读性较低
六.排序查询
1.语法
SELECT 查询列表
FROM 表
【WHERE 筛选条件】
ORDER BY 排序列表 【ASC|DESC】;
特点:
1.ASC代表的是升序,DESC代表的是降序
如果不写,默认是升序
2.ORDER BY子句中可以支持单个字段,多个字段,表达式,函数,别名
3.ORDER BY子句一般是放在查询语句的最后面,limit子句除外
2.方法



















