MySQL_李南江学习笔记

一 数据库开篇

<!--
1.什么是数据库?
- 数据库就是存储数据的仓库
- 数据库和Excel很像, Excel本质是一个文件, 数据库本质上也是一个文件,
- 数据库和Excel很像, Excel文件中可以有很多的表, 一个数据库中也有很多的表
- 数据库和Excel很像, Excel文件的每张表就是用来存储数据的, 数据库文件的每张表也是用来存储数据的
- 所以学习数据库和学习Excel差不多,
就是学习如何新建数据库文件,如何在数据库中新建表,如何往表中存储数据和操作表中的数据

2.什么是MySQL?
- MySQL是由瑞典AB 公司开发"关系型"数据,目前属于 Oracle 旗下产品
- 由于MySQL是开源免费的, 所以现在是市面上最受欢迎的数据库之一

3.什么是关系型数据库?
- 3.1数据库萌芽阶段:
- 最初程序员们把磁盘上的文件当做数据库来使用,但是由于文件不方便管理和不安全,
所以后来就有了第一代数据库(层次模型数据库和网状模型数据库)
+ 网状模型数据库是层次模型数据库的升级版
+ 层次模型数据库类似于HTML结构, 是通过树状结构来保存管理数据的
+ 在层次模型数据库中有且仅有一个结点没有父结点,它就是根结点
+ 在层次模型数据库中其它结点只能有一个父结点
+ 在层次模型数据库中所有的子节点不能脱离父节点而单独存在
- 后来由于层次模型和网状模型数据库的结构比较复杂,不利于数据库的维护和重建
所以就有了第二代数据库(关系型数据库和非关系型数据库)

- 3.2第一代数据库:
- 层次模型数据库
+ 典型代表是IBM公司的IMS(Information Management System)数据库管理系统
- 网状模型数据库
+ 电信代表是HP公司的IMAGE、Cullinet Software公司的 IDMS、Univac公司的 DMS1100

- 3.3第二代数据库:
- 关系型数据库
+ 每个表都是独立的
+ 表与表之间通过公共字段来建立关系(例如ID字段)
+ 多表查询效率低
+ SQL Server/Oracle/MySQL

- 非关系型数据库
+ 解决了关系型数据库多表查询的效率问题
+ Redis、Mongodb等
-->

二 数据库安装

<!--
1.安装包下载地址:
https://dev.mysql.com/downloads/mysql/

2.安装过程:
2.1选择自定义安装
2.2选择要安装的版本
2.3修改安装路径
2.4设置数据库密码
2.5其它一律下一步

3.测试是否安装成功
3.1配置环境变量, 将安装目录中bin文件夹的地址放到环境变量path中
3.2在终端输入 mysql --help 或者 mysql --version
-->

三 数据库链接和断开

<!--
1.链接mysql服务器
mysql -h127.0.0.1 -P3306 -uroot -proot
-h 主机地址
-P 端口号
-u 用户名
-p 用户密码
注意点:
1.1如果MySQL服务器在本地, 主机地址可以省略
1.2如果服务器使用默认3306端口, 端口号可以省略

mysql -h127.0.0.1 -P3306 -uroot -proot 链接远程MySQL服务器
mysql -h127.0.0.1 -uroot -proot 链接远程MySQL服务器, 使用默认端口3306
mysql -uroot -proot 链接本地的MySQL服务器, 使用默认端口3306
mysql -uroot -p 密码采用暗文形式

最常用的方式:
mysql -h127.0.0.1 -uroot -p 链接远程MySQL服务器, 使用默认端口3306

2.退出链接
exit;
quit
\q

3.显示数据库
show databases;
注意: 后面有s

3.1 information_schema
保存着关于MySQL服务器所维护的所有其他数据库的信息。
如数据库名,数据库的表,表栏的数据类型与访问权限等
3.2 mysql
MySQL系统数据库, 保存了登录用户名,密码,以及每个用户的权限等等
3.3 performance_schema
用来保存数据库服务器性能的参数
3.4 sys
这个库是通过视图的形式把information_schema和performance_schema结合起来,查询出更加令人容易理解的数据
-->

四 数据库SQL简介

<!--
1.如何使用MySQL
1.0学习MySQL和学习Excel差不多
使用Excel步骤: 安装Excel-创建Excel文件-创建表-在表中存储数据
使用MySQL步骤: 安装MySQL-创建数据库----创建表-在表中存储数据

1.1学习MySQL本质上就是学习数据库的增删改查(CRUD)
1.2在MySQL中主要有三种类型的增删改查, 分别是:
1.2.1数据库的增删改查
1.2.2表的增删改查
1.2.3数据的增删改查
MySQL中可以有0~N个数据库, 数据库中可以有0~N个表, 表中可以有0~N个数据

2.什么是SQL?
结构化查询语言(Structured Query Language)简称
是用来操作关系型数据库的一门语言
是一个关系型数据库通用的操作语言

注意点:
各大厂商为了更多的占用市场份额, 都会在标准的SQL基础上扩展一些自己的东西
例如: SQL Server 使用T-SQL
Oracle 使用PL/SQL
MySQL 使用MySQL

3.SQL语句功能划分
- DDL:数据定义语句
用来定义数据库对象:创建库,表,列等。
- DML:数据操作语句
用来操作数据库表中的记录
- DQL:数据查询语句
用来查询数据
- DCL:数据控制语句
用来定义访问权限和安全级别

4.SQL数据类型
和常见的编程语言一样, 数据库中存储的数据也是区分类型的
MySQL中支持的数据类型大致可以分为三类: 数值类型、字符串类型和日期和时间类型
https://dev.mysql.com/doc/refman/8.0/en/data-types.html
MySQL中常用的数据类型如下:
double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
char:固定长度字符串类型; char(10) 'lnj '
varchar:可变长度字符串类型;varchar(10) 'lnj'
text:字符串类型;
blob:二进制类型;
date:日期类型,格式为:yyyy-MM-dd;
time:时间类型,格式为:hh:mm:ss
datetime:日期时间类型 yyyy-MM-dd hh:mm:ss
注意点: 在mysql中,字符串类型和日期类型都要用单引号括起来。'lnj' '2022-02-02'
-->

五 数据库增删改查

<!--
1.创建数据库
create database [if not exists] 数据库名称 [charset=字符集];

示例一:
create database stu;
注意点: 以上语句, 如果MySQL中已经有了名称叫做stu的数据库, 再执行就会报错

示例二:
create database if not exists person;
注意点: 以上语句, 如果MySQL中已经有了名称叫做person的数据库, 并不会报错, 而是跳过这条语句

示例三:
create database if not exists it666 charset=utf8;
注意点: 为了避免将来读取的字符集和存储的字符集不一样导致乱码问题,
在创建数据库的时候, 我们还需要指定当前创建的数据库将来使用什么编码方式存储数据

2.如何查看数据库全局默认的编码
show variables like 'character_set_%';

3.如果查看某个数据库的编码
show create database person;

4.特殊的数据库名称处理
create database if not exists `create` charset=utf8;
注意点: 如果数据库的名称是SQL的关键字或者是一些特殊字符#~@*&.., 这个时候就需要用反引号括起来
-->
<!--
1.如何删除数据库
drop database [if exists] 数据库名称;

示例一:
drop database stu;
注意点: 以上语句, 如果MySQL中没有要删除的数据库, 那么就会报错

示例二:
drop database if exists person;
注意点: 以上语句, 如果MySQL中没有要删除的数据库, 那么就会跳过, 并不会报错
-->
<!--
1.如何修改数据库
alter database 数据库名称 charset=字符集;
alter database it666 charset=utf8;

1.如何查看数据库
show create database 数据库名称;
show databases;
-->
<!--
新建-- C/增加
create database [if not exists] 数据库名称 [charset=字符集];

删除-- D/删除
drop database [if exists] 数据库名称;

修改-- U/修改
alter database 数据库名称 charset=字符编码

读取-- R/查看
show databases;
show create database 数据库名称;
-->

猜你喜欢

转载自www.cnblogs.com/xiaonanxia/p/12621425.html
今日推荐