初识 MySQL 数据库

初识 MySQL 数据库

  • 引言
  • 一、MySQL 数据库
  • 二、MySQL 服务器的结构
  • 三、数据库行和列的概念
  • 四、SQL 语句
  • 五、数据库操作
    • 1. 显示数据库
    • 2. 创建数据库
    • 3. 选中数据库
    • 4. 删除数据库
  • 六、数据表操作
    • 1. 创建表
    • 2. 查看表
    • 3. 查看表结构
    • 4. 删除表
  • 七、注释
  • 八、常用的 cmd 指令
  • 九、MySQL 数据类型和关键字
    • 1. MySQL 所有的数据类型:
    • 2. 常用的数据类型
    • 3. MySQL 关键字
  • 十、常用的数据类型
  • 十一、基础的实用案例

引言

数据库是一类软件,它是用来管理数据的软件,往往是把数据存储在硬盘上(持久化存储)。用户可以很方便地实现增删查改功能。

数据库软件的典型代表:MySQL,Oracle,SQL Server

一、MySQL 数据库

MySQL 是一个客户端 — 服务器软件,在控制台上输入任何一个命令,本质上都是通过网络的方式,和服务器进行了交互。

客户端:主动发起请求的一方
服务器:被动接受请求的一方
请求:客户端给服务器发送的数据
响应:服务器给客户端返回的数据

初识 MySQL 数据库_第1张图片

二、MySQL 服务器的结构

MySQL 服务器中有放着很多数据库,一个数据库中又可以放着很多数据表,这就像套娃一样。而数据表的结构,非常类似于 Excel 表格。

图解分析:

初识 MySQL 数据库_第2张图片

三、数据库行和列的概念

首先,MySQL、Oracle,SQL Server 都是关系型数据库,它们都是由行和列构成的。

一行的数据就叫做 " 记录 ";一列的数据就叫做 " 字段 " 。

初识 MySQL 数据库_第3张图片

我们可以联想到 Excel 表格,
每一行的内容是不同属性的,每一列的内容是相同属性的。

初识 MySQL 数据库_第4张图片

四、SQL 语句

SQL 语句就是对数据库进行操作的一种语言。

语法注意事项:

① 在 SQL 中,不区分字母大小写,但建议使用小写,这主要是为了屏蔽不同系统 (Windows, Linux)所带来的差异化。

② SQL 中的字符串是用单引号包起来的,而不是双引号。

③ 如果我们创建的字段名与数据库中的关键字重名了,就需要为字段名用 ` 号括起来。(英文模式下,键盘上 Esc 正下方的键)

五、数据库操作

此处所提到的数据库,指的是一些逻辑上的数据集合,一个 MySQL 服务器上可以同时管理多组这样的数据集合。

1. 显示数据库

show databases;

2. 创建数据库

数据库的名字不能是 关键字
数据库的名字不能是 已存在的数据库名

create database 数据库名;

3. 选中数据库

use 数据库名;

4. 删除数据库

drop database 数据库名;

把数据库删除掉,这个操作十分危险,因为一旦执行成功后,此时数据大概率就恢复不回来了。以后在公司中,千万不要使用 drop database !!!

六、数据表操作

进行表操作之前,一定要先使用 use 选中当前表所在的数据库,因为针对于某张表操作,实际上这张表是在某个数据库中。

1. 创建表

create table 表名(列名 类型, 列名 类型......);

2. 查看表

show tables;

3. 查看表结构

查看某个表里面有几列,每一列都是什么类型,每一列都是什么名字,每一列其他的补充信息。desc 针对的是数据库中存储的表,而不能针对 select 所查询的临时表。

desc 的意思为:describe (描述)

desc 表名;

4. 删除表

drop table 表名;

删除表也是一个非常危险的操作,因为一旦执行成功后,此时数据大概率就恢复不回来了 !!!

七、注释

方式一:

-- 
相当于 Java 中的 //

方式二:

commit 

八、常用的 cmd 指令

复制:选中语句 + Enter

粘贴:Ctrl + v

中断当前的输入,并另起一行重新输入:Ctrl + c

重复使用上一个命令:上下方向键

九、MySQL 数据类型和关键字

1. MySQL 所有的数据类型:

数据类型 举例
整数类型 TINYINT、SMALLINT、 MEDIUMINT、 INT(或INTEGER)、 BIGINT
浮点数类型 FLOAT、DOUBLE
定点数类型 DECIMAL
位类型 BIT
时间类型 YEAR、TIME、 DATE、 TIMESTAMP、DATETIME
文本字符串类型 CHAR、VARCHAR、 TINYTEXT、 TEXT、 MEDIUMTEXT、 LONGTEXT
枚举类型 ENUM
集合类型 SET
二进制字符串类 BINARY、VARBINARY、 TINYBLOB、 BLOB、 MEDIUMBLOB、 LONGBLOB
JSON类型 JSON对象、JSON数组
空间数据类型 单值类型:GEOMETRY、POINT、LINESTRING、POLYGON:
集合类型:MULTIPOINT、 MULTILINE ST RING、MULTIPOLYGON、GEOMETRYCOLLECTION

2. 常用的数据类型

① 整数类型:(最长用 INT)

整数类型 字节 有符号数取值范围 无符号数取值范围
TINYINT 1 -128 ~ 127 0 ~ 255
SMALLINT 2 -32768 ~ 32767 0 ~ 65535
MEDIUMINT 3 -8388608 ~ 8388607 0 ~ 16777215
INT、INTEGER 4
BIGINT 8

② 浮点数类型:

浮点数类型 字节 精度
FLOAT 4 单精度
DOUBLE 8 双精度

MySQL 的浮点数支持如下语法:

FLOAT(M,D) 或 DOUBLE(M,D)
在这里,M 称为精度 ,D 称为标度 。( M 表示整数位+小数位,D 表示小数位 )

③ 定点数类型:

DECIMAL(M,D) // M 称为精度 ,D 称为标度,它可以精确数值

定点数可以精确数值,常用于精度要求较高的场合,如果在代码中用到了 " 钱 " 的计算场合,或者测距等变量,可以使用 DECIMAL.

④ 时间类型:(最长用 DATETIME)

类型 名称 字节 日期格式
YEAR 1 YYYY
TIME 时间 3 HH: MM: SS
DATE 日期 3 YYYY - MM - DD
TIMESTAMP 日期时间 4 YYYY - MM - DD HH: MM: SS
DATETIME 日期时间 8 YYYY - MM - DD HH: MM: SS

⑤ 文本字符串类型:

常用 varchar 指定 size,若文本数据过大,可以考虑 TEXT 之上.

文本字符串类型 字节大小
CHAR(SIZE) 0 ~ 255
VARCHAR(SIZE) 0 ~ 65535
TINYTEXT 0 ~ 255
TEXT 0 ~ 65535
MEDIUMTEXT 0 ~ 16777215
LONGTEXT 0 ~ 4294967295

3. MySQL 关键字

MySQL关键字 含义
NULL 数据列可包含 NULL 值
NOT NULL 数据列不允许包含 NULL 值
DEFAULT 默认值
PRIMARY KEY 主键
AUTO_ INCREMENT 自动递增,适用于整数类型
UNSIGNED 无符号
CHARACTER SET name 指定一个字符集

十、常用的数据类型

int:整型,4字节

double:浮点型,8字节

varchar(SIZE):字符串类型,0 - 65,535字节,字符串的最大长度

LONGTEXT:用于长文本字符串

datetime:日期类型,8字节

在上述的 varchar(SIZE) 中的 SIZE,在学习中,可以随意写,而在工作中,就不能乱写了,一般情况下,像这种字符串的长度,都会有明确规定,(最长多少 / 最短多少),一般由产品经理规定。

十一、基础的实用案例

在 test2 表中创建一张 student 表。

SQL 语句可以先在 IDEA 编辑器编写之后,再复制到数据库中,这样做便于我们修改和观察。

-- 如果存在数据库则不创建
create database if not exists test2;

-- 选择 test2 数据库
use test2;

-- 如果存在 student 表,就理解删除
drop table if exists student;

-- 重新创建一张 student 表,并同时创建三个字段
create table student(
    id int primary key auto_increment,
    name varchar(20),
    total_score int
);

-- 插入数据
insert into student values(null, '李明', '285');
insert into student values(null, '莉莉', '290');
insert into student values(null, '小红', '280');

初识 MySQL 数据库_第5张图片

你可能感兴趣的:(MySQL,数据库,数据库,mysql)