MySQL基础
一、数据库的基本概念
1.为什么要学数据库?
- 之前我们如果想将一些数据实现永久化存储,可以怎么做呢?没错。使用IO流的技术将数据保存到本地文件中
- 但是接下来我有这样一个需求:将下面的user.txt文件中的王五年龄修改为35
- 我们要如何实现呢?
- 可以采用字符缓冲流,将每一行数据读取出来,封装为User对象。将多个User对象保存到集合中
- 然后遍历集合,将王五对象的年龄修改为35,再重新将集合中的对象信息写回到文件中
- 这一套操作太麻烦了,而现在我们有一种更加方便的方式来完成这个需求了,这种方式就是数据库!
2.什么是数据库?
- 用于存储和管理数据的仓库
- 英文单词为:DataBase,简称DB
3.数据库的好处?
- 可以持久化存储数据
- 方便存储和管理数据
- 使用了统一的方式操作数据库 – SQL
4.常见的数据库有哪些?
二、MySQL数据库的介绍和安装
1.MySQL数据库介绍
- 小型的数据库
- 开源免费(6版本之前免费)
- 所属于Oracle公司
2.MySQL数据库安装
- 通过secureCRT工具连接Linux系统
- 上传 mysql 的安装包
- 解压 mysql 的安装包
- 安装客户端
- 安装服务端
- 修改mysql默认字符集
- 启动mysql服务
- 登录mysql
- 修改mysql登录密码
- 授予远程连接权限
- 关闭Linux系统防火墙
3.MySQL数据库登录
- sqlyog工具登录mysql
三、SQL语句
1.数据库、数据表、数据的关系介绍
- 数据库
- 用于存储和管理数据的仓库
- 一个库中可以包含多个数据表
- 数据表
- 数据库最重要的组成部分之一
- 它由纵向的列和横向的行组成(类似excel表格)
- 可以指定列名、数据类型、约束等
- 一个表中可以存储多条数据
- 数据
- 想要永久化存储的数据
2.SQL介绍
- 什么是SQL
- Structured Query Language:结构化查询语言
- 其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”。
- SQL通用语法
- SQL 语句可以单行或多行书写,以分号结尾。
- 可使用空格和缩进来增强语句的可读性。
- MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
- 数据库的注释:
- 单行注释:-- 注释内容 #注释内容(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 等
3.DDL-操作数据库
- R(Retrieve):查询
- 查询所有数据库
- 查询某个数据库的创建语句
- C(Create):创建
- 创建数据库
- 创建数据库(判断,如果不存在则创建)
- 创建数据库、并指定字符集
- 练习:创建db4数据库、如果不存在则创建,指定字符集为gbk
- U(Update):修改
- 修改数据库的字符集
- D(Delete):删除
- 删除数据库
- 删除数据库(判断,如果存在则删除)
- 使用数据库
- 查询当前正在使用的数据库名称
- 使用数据库
4.DDL-操作数据表
- R(Retrieve):查询
- 查询数据库中所有的数据表
- 查询表结构
- 查询表字符集
- C(Create):创建
- 创建数据表
- 标准语法
- 数据类型
- 创建数据表
- 复制表
- U(Update):修改
- 修改表名
- 修改表的字符集
- 添加一列
- 修改列名称和数据类型
- 删除列
- D(Delete):删除
- 删除数据表
- 删除数据表(判断,如果存在则删除)
5.DML-INSERT语句
- 新增表数据语法
- 新增格式1:给指定列添加数据
- 新增格式2:默认给全部列添加数据
- 新增格式3:批量添加数据
- 注意事项
- 列名和值的数量以及数据类型要对应
- 除了数字类型,其他数据类型的数据都需要加引号(单引双引都可以,推荐单引)
6.DML-UPDATE语句
- 修改表数据语法
- 注意事项
- 修改语句中必须加条件
- 如果不加条件,则将所有数据都修改
7.DML-DELETE语句
- 删除表数据语法
- 注意事项
- 删除语句中必须加条件
- 如果不加条件,则将所有数据删除
8.DQL-单表查询
- 数据准备(直接复制执行即可)
- 查询语法
- 查询全部
- 查询部分
- 多个字段查询
- 去除重复查询
- 注意:只有全部重复的才可以去除
- 计算列的值(四则运算)
- 起别名
- 条件查询
- 条件分类
符号 | 功能 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
= | 等于 |
<> 或 != | 不等于 |
BETWEEN … AND … | 在某个范围之内(都包含) |
IN(…) | 多选一 |
LIKE 占位符 | 模糊查询 _单个任意字符 %多个任意字符 |
IS NULL | 是NULL |
IS NOT NULL | 不是NULL |
AND 或 && | 并且 |
OR 或 || | 或者 |
NOT 或 ! | 非,不是 |
- 条件查询语法
- 聚合函数
- 将一列数据作为一个整体,进行纵向的计算
- 聚合函数分类
函数名 | 功能 |
count(列名) | 统计数量(一般选用不为null的列) |
max(列名) | 最大值 |
min(列名) | 最小值 |
sum(列名) | 求和 |
avg(列名) | 平均值 |
- 聚合函数语法
- 排序查询
- 排序分类
- 注意:多个排序条件,当前边的条件值一样时,才会判断第二条件
关键词 | 功能 |
ORDER BY 列名1 排序方式1,列名2 排序方式2 | 对指定列排序,ASC升序(默认的) DESC降序 |
- 排序语法
- 分组查询
- 分页查询
- 分页查询图解
四、约束
1.约束的概念和分类
- 约束的概念
- 对表中的数据进行限定,保证数据的正确性、有效性、完整性!
- 约束的分类
约束 | 说明 |
PRIMARY KEY | 主键约束 |
PRIMARY KEY AUTO_INCREMENT | 主键、自动增长 |
UNIQUE | 唯一约束 |
NOT NULL | 非空约束 |
FOREIGN KEY | 外键约束 |
FOREIGN KEY ON UPDATE CASCADE | 外键级联更新 |
FOREIGN KEY ON DELETE CASCADE | 外键级联删除 |
2.主键约束
- 主键约束特点
- 主键约束包含:非空和唯一两个功能
- 一张表只能有一个列作为主键
- 主键一般用于表中数据的唯一标识
- 建表时添加主键约束
- 删除主键
- 建表后单独添加主键
3.主键自动增长约束
- 建表时添加主键自增约束
- 删除自动增长
- 建表后单独添加自动增长
4.唯一约束
- 建表时添加唯一约束
- 删除唯一约束
- 建表后单独添加唯一约束
5.非空约束
- 建表时添加非空约束
- 删除非空约束
- 建表后单独添加非空约束