2.1 MySQL基础使用

本文是课上资料的总结非原创没有转载地址

目录

  • 引言
    • 为什么需要数据库?
    • 数据库和应用程序的关系
  • MySQL基础使用
    • 一、数据库简介
      • 1.1 简介
      • 1.2 常见数据库管理系统
      • 1.3 MySQL卸载
      • 1.4 MySQL5.5安装
      • 1.5 MySQL5.7安装
    • 二、SQL语言
      • 2.1 概述
      • 2.2 SQL语句分类
      • 2.3 DDL操作数据库
        • 2.3.1 创建数据库
        • 2.3.2 查看
        • 2.3.3 修改
        • 2.3.4 删除
        • 2.3.5 其他语句
      • 2.4 DDL操作表
        • 2.4.1 创建表 CREATE TABLE
        • 2.4.2 删除表 DROP TABLE
        • 2.4.3 当前数据库中的所有表 SHOW TABLE
        • 2.4.4 查看表的字段信息 DESC
        • 2.4.5 增加列 ALTER ... ADD
        • 2.4.6 修改列(字段)属性 ALTER ... MODIFY
        • 2.4.7 删除列(字段)ALTER ... DROP
        • 2.4.8 更改表名 RENAME ... TO
        • 2.4.9 查看表的创建细节 SHOW CREATE
        • 2.4.10 修改表的字符集 ALTER ... CHARACTER SET
        • 2.4.11 修改列名(字段名) ALTER ... CHANGE
      • 2.5 DML操作(重要)
        • 2.5.1 插入操作:INSERT
        • 2.5.2 修改操作:UPDATE
        • 2.5.3 删除操作:DELETE
        • ==2.5.4 DELETE和TRUNCATE区别==
      • 2.6 客户端工具
    • 三、DQL数据查询(重点)
      • 3.1 简单查询
      • 3.2 条件查询
        • ==面试题:==
      • 3.3 模糊查询
      • 3.4 字段控制查询
        • 3.4.1 去除重复记录 DISTINCT
        • 查看数据之和 +、CONCAT
        • 给列名添加别名 [AS]
      • 3.5 排序 ORDER BY
      • 3.6 聚合函数
        • 3.6.1 COUNT
        • 3.6.2 SUM和AVG
        • 3.6.3 MAX和MIN
      • 3.7 分组查询 GROUP BY ... HAVING
        • 3.7.1 分组查询 GROUP BY
        • 3.7.2 HAVING子句 GROUP BY ... HAVING
        • ==3.7.3 HAVING 和 WHERE 的区别==
      • 3.8 LIMIT限制
        • 3.8.1 分页查询
  • 总结
  • 作业题
  • 面试题

引言

为什么需要数据库?

Java中保存数据需要使用集合或数组,但使用集合或数组程序关闭后,所有的数据全部丢失,如何才能持久化保存数据呢?

  1. 文件:存储少量数据,没有严格的格式;
  2. 网盘:需要网络,存储少量数据,没有严格的格式;
  3. 数据库:存储大量数据,按照一定格式存储。

数据库和应用程序的关系

数据库是存放数据的仓库,应用程序主要给用户一个可视的界面以及相关的功能,二者相辅相成。

MySQL基础使用

一、数据库简介

1.1 简介

  • 数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。简单理解数据的仓库。
  • 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,堆数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据中的数据。
  • 数据库是通过数据库管理系统创建和操作的。

1.2 常见数据库管理系统

  • 关系型数据库管理系统(RDBMS,Relational Database Management System)
    1. Oracle:Oracle数据库被认为是业界目前比较成功的关系型数据库管理系统。Oracle数据库可以运行UNIX、Windows等主流操作系统平台,完全支持所有的工业标准,并获得最高级别的ISO标准安全性认证。
    2. MySQL:MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品。MySQL是最好RDBMS(Relational Database Management System,关系数据库管理系统)应用软件。
    3. DB2:DB2是IBM公司的产品,DB2数据库系统采用多进程多线索体系结构,其功能足以满足大中公司的需要,并可灵活的服务于中小型电子商务解决方案。
    4. Microsoft SQL Server:SQL Server 是 Microssft公司退出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高的优点。
    5. SQLite:应用在手机端的数据库。
    6. 国产数据库,阿里目前自研数据库分为两个支线,OceanBasePOLARDB
  • 非关系型数据库管理系统(NoSQL)
    Redis、MongoDB等

1.3 MySQL卸载

  1. 关闭MySQL服务
    方式1:win+R -> service.msc -> 关闭MySQL相关服务
    方式2:命令停止
    cmd管理员启动 -> net stop 服务名(默认mysql57)
  2. 控制面板卸载(相关MySQL均卸载)
  3. 删除C盘残留文件(Program Files、Program Files(x86)、ProgramData)
  4. 检查服务是否删除成功(第一步可查看)
  5. 如果未删除服务,手动删除
    使用管理员身份进入cmd命令行,执行:sc delete 服务名

1.4 MySQL5.5安装

  • 安装和配置步骤
    2.1 MySQL基础使用_第1张图片
    2.1 MySQL基础使用_第2张图片2.1 MySQL基础使用_第3张图片
    2.1 MySQL基础使用_第4张图片
    2.1 MySQL基础使用_第5张图片
    2.1 MySQL基础使用_第6张图片
    2.1 MySQL基础使用_第7张图片
    2.1 MySQL基础使用_第8张图片
    2.1 MySQL基础使用_第9张图片
    2.1 MySQL基础使用_第10张图片
    2.1 MySQL基础使用_第11张图片
    2.1 MySQL基础使用_第12张图片
    2.1 MySQL基础使用_第13张图片
    2.1 MySQL基础使用_第14张图片
    2.1 MySQL基础使用_第15张图片
    2.1 MySQL基础使用_第16张图片
    2.1 MySQL基础使用_第17张图片
    2.1 MySQL基础使用_第18张图片
    2.1 MySQL基础使用_第19张图片
    2.1 MySQL基础使用_第20张图片
    2.1 MySQL基础使用_第21张图片
    2.1 MySQL基础使用_第22张图片
  • 启动MySQL服务
    1. win+R -> service.msc -> 启动MySQL相关服务
    2. 命令停止
      cmd管理员启动 -> net start 服务名(默认mysql57)
  • 验证是否安装成功
    win+R -> cmd -> mysql -uroot -p -> 回车后输入密码
  • 卸载MySQL
    1. 停止服务,使用net stop 服务名命令停止服务。
    2. 在控制面版–>“程序和功能”中,找到“MySQL”程序,点击卸载。
    3. 删除安装目录,一般默认在C:\Program Files\MySQL。
    4. 删除数据库文件 存放目录,一般默认在C:\ProgramData\MySQL

注意:
(1)在运行窗口中,输入services.msc,打开服务窗口查看是否还有“MySQL”服务。
(2)如果卸载后,发现MySQL服务没有删除,手动删除:以管理员身份打开命令行,输入sc delete 服务名

  • MySQL安装目录
    bin文件夹:改文件夹下存放着可执行文件
    include文件夹:该文件夹下存放着头文件
    lib文件夹:该文件夹下存放着库文件
    share文件夹:该文件夹下存放着字符集、语言等信息。
  • MySQL配置文件
    在MySQL安装目录中找到my.ini文件,并打开查看几个常用配置参数
常用的参数名 描述
default-character-set 客户端默认字符集
character-set-server 服务器端默认字符集
port 客户端和服务器端的端口号
default-storage-engine MySQL默认存储引擎 INNODB

1.5 MySQL5.7安装

  • 卸载
    (1)停止服务 net stop mysql57 (2)安装和卸载程序 卸载mysql项目 (3)删除残留文件 C:\ProgramData

注意
如果MySQL57服务没有删除成功,请手动删除:使用管理原身份进入命令行sc delete 服务名

  • 安装
    同意协议
    2.1 MySQL基础使用_第23张图片
    仅仅服务器模式
    2.1 MySQL基础使用_第24张图片
    请选择安装的位置,如果修改请记住位置,点击下一步
    2.1 MySQL基础使用_第25张图片
    点击Execute执行
    2.1 MySQL基础使用_第26张图片
    显示执行进度,请等待执行完毕。
    2.1 MySQL基础使用_第27张图片
    执行完毕,点击下一步。
    2.1 MySQL基础使用_第28张图片
    安装完成后,开始准备配置
    2.1 MySQL基础使用_第29张图片
    进行第一步配置,除了需要设置密码外,后面的步骤基本上都是下一步下一步
    2.1 MySQL基础使用_第30张图片
    2.1 MySQL基础使用_第31张图片
    设置 root 密码
    2.1 MySQL基础使用_第32张图片
    2.1 MySQL基础使用_第33张图片
    2.1 MySQL基础使用_第34张图片
    2.1 MySQL基础使用_第35张图片
    2.1 MySQL基础使用_第36张图片
    最后一步。把mysql安装目录添加到环境变量,方便使用命令。
    2.1 MySQL基础使用_第37张图片
    2.1 MySQL基础使用_第38张图片
  • 验证是否安装成功
    打开:Command Line Client输入root的账号和密码能进入,安装成功。
    修改密码:`set password for ‘root’@‘localhost’=password(‘新密码’);```
  • 安装目录介绍
    bin:二进制文件
    dosc:存放文档
    include:头文件
    lib:链接库
    share:语言文件
    C:\ProgramData\MySQL\MySQL Server 5.7 存放数据库的目录和配置
  • my.ini设置编码
    设置数据库默认编码:default-character-set=utf8mb4
    设置服务器编码:character-setserver=utf8mb4
  • 服务的停止和服务
    (1)使用windows的服务界面停止和启动MySQL57
    (2)管理员命令行停止
# 停止服务
net stop MySQL57
# 启动服务
net start MySQL57
  • 把MySQL的bin目录添加环境变量
    C:\Program Files\MySQL\MySQL Server 5.7\bin添加到path中
    打开命令提示符:(1)输入mysql -uroot -p 回车(2)输入密码

二、SQL语言

2.1 概述

  • SQL:Structure Query Language(结构化查询语言),用来访问和处理数据库的标准计算机语言。后来被国际化标准组织(ISO)采纳为关系型数据库语言的国际标准。
  • SQL作用:SQL是一种标准化的语言,它允许你在数据库上执行操作,如创建数据库、表等等,查询内容,更新内容,并删除条目等操作;CRUD(Create、Read、Update、Delete)操作。
  • 大部分数据库厂商都支持ISO的SQL标准,但是数据库厂商在标准的基础上做了自己的扩展,称为方言

2.2 SQL语句分类

  • DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等。
  • DML(Data Manipulation Language):数据库操作语言,用来定义数据库记录(数据)。
  • DQL(Data Query Language):数据查询语言,用来查询记录(数据)。
  • DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。

MySQL语法这主意事项
MySQL每条结尾以“;”结尾。
MySQL语句不区分大小写。
MySQL字符串使用单引号双引号
MySQL注释:(1)单行注释:#开头或者--空格开头(2)多行注释/*多行注释*/

2.3 DDL操作数据库

  • 显示当前MySQL中的数据库
# 显示当前MySQL中的数据库
SHOW DATABASES;

系统默认数据库:

数据库名 描述
information_schema information_schema数据库是MySQL自带的,他提供了访问数据库元数据 1的方式。
mysql 这是个MySQL的核心数据库,主要负责存储数据库的用户、权限设置、关键字等MySQL自己需要使用的控制和管理信息,不可删除。
performance_schema 收集数据库服务器性能参数,性能优化的数据库。
test(5.5版本) 这个是安装时候创建的一个测试数据库,和它的名字一样,是一个完全的空数据库,没有任何表,可以删除。
sys(5.7版本) sys系统数据库,保存系统的元数据信息,数据来源information——schema库。
这个库可以方便DBA发现数据库的很多信息,解决性能瓶颈都提供了巨大帮助。

2.3.1 创建数据库

CREATE DATABASE语句用于创建新的数据库:

  • 语法
CREATE DATABASE [IF NOT EXISTS] db_name;
  • 练习:
# 创建mydb1数据库
CREATE DATABASE mydb1;
# 创建GBK字符集的mydb2数据库
CREATE DATABASE IF NOT EXISTS mydb2 character SET GBK;
# 创建字符集为GBK,校验规则是gbk_chinese_ci的mydb3数据库
CREATE DATABASE mydb3 character SET GBK COLLATE gbk_chinese_ci;

2.3.2 查看

  • 查看当前数据库服务器中的所有数据库
SHOW DATABASES;
  • 查看前面创建的mydb2数据库定义信息
SHOW CREATE DATABASE mydb2;

2.3.3 修改

  • 查看服务器中的数据库,并把mydb2的字符集修改为utf8;
ALTER DATABASE mydb2 character SET utf8;

2.3.4 删除

  • 语法
DROP DATABASE [IF EXISTS] db_name;
  • 练习:
# 判断mydb3数据库是否存在存在就直接删除
DROP DATABASE IF EXISTS mydb3;

2.3.5 其他语句

  • 查看当前使用的数据库
SELECT DATABASES();	# 没有选择数据 null    
  • 切换数据库
USE mydb2;
  • 退出MySQL
quit;
# OR
exit;
# OR
\q

2.4 DDL操作表

2.4.1 创建表 CREATE TABLE

  • CREATE TABLE语句用于创建新表。
  • 语法
CREATE TABLE [IF NOT EXISTS] db_name(
	字段1 字段类型(长度) 约束,
	字段2 字段类型(长度) 约束,
	...
	字段n 字段类型(长度) 约束
)[CHARSET=utf8];
  • 实例:
CREATE TABLE IF NOT EXISTS student(
	id INT NOT NULL,
	name VARCHAR(50),
	age INT,
	address VARCHAR(100)
) CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `student`(
	`id` INT NOT NULL,
	`name` VARCHAR(50),
	`age` INT,
	`address` VARCHAR(100)
)CHARSET=utf8;

注意:数据库名、表名、字段名可以使用反勾号“`”括住,也可以不括。如果SQL关键字或者数字开头标识符一般要括住。
反勾号即键盘ESC下方的案结案

  • 常用数据类型
数据类型名称 描述
int 整型(4个字节)
double 浮点想(8个字节),近似值
例如double(5,2)表示最多5位,其中必须由2位小鼠,取值范围位-999.99到999.99。
decimal 精确数值数据,最大位数可以是65
例如decimal(5,2)能够存储具有五位数和两位小数的任何值,因此可以存储范围位-999.99至999.99。
char 固定长度字符串类型;
char(10)——'aaa '最多存储10个字符
缺点:浪费空间;优点:查询速度快。
varchar 可变长度字符串类型;
varchar(10)——'aaa’最多存储10个字符
缺点:查询速度慢;优点:节省空间。
text 大文本字符串类型;有字符编码,存储比较大的文本数据。
blob Binary Large Object二进制大对象数据;可以存储图片、音频、视频。
date 日期类型,格式为:yyyy-MM-dd。
time 时间类型,格式为:hh:mm:ss。
timestamp 时间戳类型yyyy-MM-dd hh:mm:ss会自动赋值。
datetime 日期时间类型yyyy-MM-dd hh:mm:ss。

2.4.2 删除表 DROP TABLE

  • DROP TABLE语句用于删除现有表。
  • 语法
DROP TABLE [IF EXISTS] table_name;

2.4.3 当前数据库中的所有表 SHOW TABLE

SHOW TABLES;

2.4.4 查看表的字段信息 DESC

  • 语法
DESC table_name;
  • 练习:查询student表的字段信息
DESC student;

2.4.5 增加列 ALTER … ADD

  • 语法
ALTER TABLE table_name ADD 列名(字段名) 数据类型;
  • 练习:在上面学生表的基础上增加一个image列(数据类型blob)
# 在上面学生表的基础上增加一个image列(数据类型blob)
ALTER TABLE student ADD image blob;

2.4.6 修改列(字段)属性 ALTER … MODIFY

  • 语法
ALTER TABLE table_name MODIFY 列名(字段名) 数据类型;
  • 练习:修改student表中address列,使其长度为60
# 修改student表中address列,使其长度为60
ALTER TABLE student MODIFY address varchar(60);

2.4.7 删除列(字段)ALTER … DROP

  • 语法
ALTER TABLE table_name DROP 列名(字段名);
  • 练习:删除student表中image列,一次只能删除一列
# 删除student表中image列,一次只能删除一列
ALTER TABLE student DORP image;

2.4.8 更改表名 RENAME … TO

  • 语法
RENAME TABLE old_table_name TO new_table_name; 
  • 练习:把student表名改为user
# 把student表名改为user
RENAME TABLE student TO `user`;

2.4.9 查看表的创建细节 SHOW CREATE

  • 语法
SHOW CREATE TABLE table_name;
  • 练习:查看user表的创建细节
# 查看user表的创建细节
SHOW CREATE TBALE user;

2.4.10 修改表的字符集 ALTER … CHARACTER SET

  • 语法
ALTER TABLE table_name CHARACTER SET 字符集;
  • 练习:修改user表的字符集为gbk
# 修改user表中的字符集为gbk
ALTER TABLE user CHARACTER SET gbk;

2.4.11 修改列名(字段名) ALTER … CHANGE

  • 语法
ALTER TABLE table_name CHANGE old列名 new列名 数据类型;
  • 练习:将user表中name列名改为username
# 将user表中name列名改为username
ALTER TABLE user CHANGE name username varchar(100);

2.5 DML操作(重要)

DML是对表中的数据进行增、删、改的操作。不要与DDL混淆了。
主要包括:INSERT、UPDATE、DELETE

  • 小知识
    在MySQL中,字符串类型和日期类型都要用单引号括起来。
    空值:null
  • 被操作表
CREATE TABLE student(
	id INT NOT NULL,
	name VARCHAR(50),
	age INT

    
    
    
    

你可能感兴趣的:(2.1 MySQL基础使用)