数据库:
持久化存储数据
方便和管理数据
关系型数据库:以表格形式存储数据(表名、表、行、列)
举例:人员表、部门表、地区表,如果放到一张表里,会存储很多行,应该把各个数据分开存储
SQL:结构化查询语句
SQL通用语法
-
SQL 语句可以单行或多行书写,以分号结尾。
-
可使用空格和缩进来增强语句的可读性。
-
MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
-
3 种注释
* 单行注释: -- 注释内容 或 # 注释内容(mysql 特有)
* 多行注释: /* 注释 */
SQL分类 (面试题)
-
DDL(Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等
-
DML(Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等
-
DQL(Data Query Language)数据查询语言
用来查询数据库中表的记录(数据)。关键字:select, where 等
-
DCL(Data Control Language)数据控制语言(了解)
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等
DDL:操作数据库、表
创建数据库:
格式:create database 数据库名称;
创建数据库当它不存在时:
格式:create database if not exists 数据库名称;
创建数据库并指定字符集:
(utf-8字符集utf8mb4)
格式:create database if not exists 数据库名称 character set 字符集名称;
R 查询
查看所有的库
SHOW DATABASES;
根据库的名称,查询某个库的创建语句
SHOW CREATE DATABASE 数据库名称;
U 修改
修改字符集
ALTER DATABASE 数据库名 CHARACTER SET 字符集;
D 删除
删除数据库
DROP DATABASE 数据库名称;
当数据库存在时,删除数据库
DROP DATABASE IF EXISTS 数据库名称;
选择库,使用库
USE 数据库名称;
查询当前选择的库是哪一个?
SELECT DATABASE();
DQL:数据查询语言
完整格式:
SELECT 字段列表 FROM 表名
WHERE 条件
GROUP BY 分组字段 HAVING 分组条件
ORDER BY 排序字段 排序方式
LIMIT 分页限定;
字段列表:我们要查询这个表格中的哪些列,用*表示查询所有列
对查询结果去重:
SELECT DISTINCT 字段列表 FROM 表名;
null参与运算,一定为null
ifnull函数,可以对null值进行处理
ifnull(参数1,参数2)
当参数1不为null时,运算结果为参数1
当参数1为null时,运算结果为参数2
给查询列起别名:空格 名称或者AS 名称
不等于:!= <>
条件连接符:与 and 或 or 非 not
查中间值:between 开始值 and 结束值
查包含值:in(值1,值2,值3....)
is null/is not null 为空/不为空
模糊查询:
字段名 like “带有占位符的模糊文本”
_:表示任意一个字符
%:表示0-n个任意字符