一、介绍
1.不用数据库:使用IO流对数据进行管理
2.使用数据库:使用SQL语句对开发的数据进行管理,能储存上亿条数据
3.MYSQL:
是流行的关系型数据库管理系统之一,将数据保存在不同的数据表中,通过表与表之间的联系提高访问速度,使用SQL语言,6版本之前免费。
4.数据库、数据表、数据的关系
MYSQL服务器中可以创建多个数据库,每个数据库中可以包含多张数据表,每个数据表中可以存储多条数据记录,客户端通过数据库管理系统来操作MYSQL数据库。
5.SQL语言
①结构化查询语言,是操作所有关系型数据库的一种规则
②通用语法规则:
- SQL语句可以单行或多行书写,以分号结尾
- 可使用空格和缩进来增强语句的可读性
- MYSQL数据库的SQL语句不区分大小写,关键字建议使用大写
- 单行注释:--注释内容 #注释内容(MYSQL特有)
- 多行注释:/*注释内容*/
③SQL分类
二、MYSQL的基础操作(均在cmd(ctrl+R打开)中操作)
(一)登录MYSQL
1.输入:mysql -u root -p
2.回车(出现图片的提示句)
3.在“Enter password:”后面输入密码
4.出现图片的内容就说明登录成功
(二)修改MYSQL登录密码
1.分别输入两行语句并回车(作用:忽略密码的验证码):
set global validate_password_policy=0;
set global validate_password_length=1;
3.结果如图
3如图所示,输入:set password=password("密码");
(三)授予远程连接权限
1.授权输入:grant all privileges on *.* to 'root' @ '%' identified by '登录密码';
2.回车
3.刷新输入:flush privileges;
(四)退出MYSQL
1.输入:exit
2.回车
(五)关闭Linux系统防火墙
1.输入:systemctl stop firewalld
2.回车
(六)重启MYSQL服务
1.输入:service mysqld restart
2.回车
三、DDL操作
(一)查询和创建所有数据库
1.查询所有数据库
SHOW DATABASES;
2.查询数据库的创建语句
SHOW CREATE DATABASE 数据库名称;
3.创建数据库
CREATE DATABASE 数据库名称;
4.创建数据库(判断,如果不存在则创建)
CREATE DATABASE IF NOT EXISTS 数据库名称;
5.创建数据库(指定字符集)
CREATE DATABASE 数据库名称 CHARACTER SET 字符集名称;
(二)修改、删除、使用数据库
1.修改数据库(修改字符集)
ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称 ;
2.删除数据库
DROP DATABASE 数据库名称;
3.删除数据库(判断,如果存在则删除)
DROP DATABASE IF EXISTS 数据库名称;
4.使用数据库
USE 数据库名称;
5.查看当前使用的数据库
SELECT DATABASE();
(三)查询数据表
1.查询所有的数据表
SHOW TABLES;
2.查询表结构
DESC 表名;
3.查询表字符集
SHOW TABLE STATUS FROM 库名 LIKE '表名';
(四)创建数据表
CREATE TABLE 表名(
列名 数据类型 约束,
列名 数据类型 约束,
...
);
常用数据类型
(五)修改数据库
1.修改表名
ALTER TABLE 表名 RENAME TO 新表名;
2.修改表的字符集
ALTER TABLE 表名 CHARACTER SET 字符集名称;
3.单独添加一列
ALTER TABLE 表名 ADD 列名 数据类型;
4.修改某列的数据类型
ALTER TABLE 表名 MODIFY 列名 新数据类型;
5.修改列名和数据类型
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
6.删除某一列
ALTER TABLE 表名 DROP 列名;
(六)删除数据表
1.删除数据表
DROP TABLE 表名;
2.删除数据表(判断,如果存在则删除)
DROP TABLE IF EXISTS 表名;
四、DML操作
(一)新增表数据
1.给指定列添加数据
INSERT INTO 表名 (列名1,列名2...) VALUES (值1,值2);
2.给全部列添加数据
INSERT INTO 表名 VALUES (值1,值2...);
3.批量添加数据
INSERT INTO 表名 (列名1,列名2...) VALUES (值1,值2...),(值1,值2...),...;
注意:
列名和值的数量以及数据类型要对应,除了数字类型,其他数据类型的数据都需要加引号(单双均可),推荐单引号。
(二)修改和删除表数据(如不加条件,则修改所有数据)
1.修改表中的数据
UPDATE 表名 SET 列名1=值1,列名2=值2,...[WHERE 条件];
2.删除表中的数据
DELETE FROM 表名 [WHERE 条件];
五、DQL操作
(一)查询语法(按上到下的顺序来写)
(二) 查询全部
1.查询全部的表数据
SELECT * FROM 表名;
2.查询指定字段的表数据
SELECT 列名1,列名2,... FROM 表名;
3.去除重复查询
SELECT DISTINCT 列名1,列名2,... FROM 表名;
4.计算列的值(四则运算)
SELECT 列名1 [IFNULL(列名,0)] 运算符(+-*/) ,列名2 FROM 表名;
5.起别名查询
SELECT 列名 AS(可省略) 别名 FROM 表名;
(三)条件查询
1.查询条件分类
2.条件查询语法
SELECT 列名列表 FROM 表名 WHERE 条件;
(四)聚合函数查询
1.聚合函数分类
2.聚合函数查询语法
SELECT 函数名(列名) FROM 表名 [WHERE 条件];
(五)排序查询
1.排序查询语法
SELECT 列名列表 FROM [WHERE 条件] ORDER BY 列名 排序方式,列名 排序方式...;
2.排序方式:
ASC——升序(默认)
DESC——降序
如果有多个排序条件值一样时,才会判断第二条件。
(六)分组查询
1.分组查询语法
SELECT 列名列表 FROM 表名 [WHERE 条件] GROUP BY 分组列名 [HAVING 分组后的条件过滤] [ORDER BY 排序列名 排序方式];
(七)分页查询
1.分页查询语法
SELECT 列名列表 FROM 表名 [WHERE 条件] [GROUP BY 分组列名] [HAVING 分组后的条件过滤] [ORDER BY 排序列名 排序方式] LIMIT 当前页数,每页显示的条数;
当前页数:(当前的页数-1) * 每页显示的条数