MySQL的一些基本知识
MySQL是一种数据库软件,它是开源的,并且还是较为简单,适用的范围也叫广泛,所以接下来我将会讲解MySQL的一些基础操作知识
MySQL的学习方向
- SQL编程语言的语法(核心)
- 数据库内部的一些原理
- 使用Java代码操作数据库(JDBC)
注:SQL是一种专门用于操作数据库的编程语言
MySQL的结构
MySQL是一种 客户端-服务器 结构的程序
首先要知道什么是客户端 ,什么是服务器
举个例子:假设我现在去买水喝,我走进超市,想老板说,要一瓶可乐,老板机会给我一瓶可乐
我就相当于客户端 老板就相当于服务器
我向老板要一瓶可乐 : 向服务器发送的数据叫做请求 Request
老板给我拿了一瓶可乐 : 服务器 给 客户端返回的数据叫做 响应 Response
数据库在客户端中进行的任意操作,都会通过网络传输给服务器进行处理,即便客户端 和 服务器在同一个主机上,也都是通过网络进行传输
电脑的组成
服务器也是一种电脑,这里有必要知道电脑的几个主要的组成部分
电脑的组成:
1.CPU(中央处理器)—电脑的大脑
2.存储区(分为 内存 和外存 )
内存就是RAM,就会我们一般指的内存
外存包括硬盘 U盘 磁盘 软盘…
内存与外存的区别
内存 | 外存 | |
---|---|---|
存储空间 | 小 | 大 |
访问速度 | 快 | 慢 |
成本 | 高 | 较低 |
存储数据时间 | 数据易丢失(断电就没有了) | 数据不易丢失(断电数据也不会消失) |
补充:CPU只能直接访问内存,外存的东西要先到内存中,CPU才能处理
所以, 数据库上的数据就会存储在外存上面
原因:
1.外存的数据能够"持久化"保存
2.外存的存储空间会更加大一点 , 利于数据库数据的存储
但是也不是所有的数据库都是"外存数据库" ,Redis就是"内存数据库",换来的好处就是存储数据的速度会更加的快
一个数据库服务器上面可以管理很多的数据集合,每一个数据集合就可以成为一个数据库
关系型数据库(数据存储在一个或者多个有行和列构成的表中)
数据库服务器 => 包含了很多的数据库 => 包含了很多的数据表 => 包含了很多行 (记录)
=> 包含了很多的列(字段)
关系型数据库主要有:MySQL Oracle SQL Server SQLite
对于非关系型数据库来说,组织数据的形式会更加的灵活,通常是按照"文档" 或者 “键值对” 的方式进行存储的
MySQL的具体操作
命令行小技巧:
- 使用上下键,可以查看上一条或者下一条语句
- 使用ctrl + c 可以终止当前操作 或者输入
接下来介绍SQL语言
查看数据库
show databases;
注意点:
- show 和 databases 之间至少有一个空格
- databases 是复数 (因为我是要查看所有的数据库)
- 结尾有一个英文分号
- SQL语句不区分大小写
创建数据库
create database 数据库名;
不能创建含有关键字的数据库,否则就会报错
但是,如果一定要创建一个以关键字为命名的数据库,可以加上反引号``,就可以创建成功
有时候创建数据库会因为同名而报错,为了防止这种情况出现,可以用create if not exists 数据库名;
选中数据库(选中之后要操作的数据库)
use 数据库名;
删除数据
drop 数据库名;
需要注意的是,删库是十分危险的事情,绝对不要轻易操作!
SQL的数据类型
SQL的数据类型主要包括数值类型 字符串类型 日期类型
数据类型
分为整数类型 和 分数类型
数据类型 | 大小 | 说明 |
---|---|---|
bit (M) | 默认为1 | M表示指定位数,范围是1到64 |
tinyint | 1字节 | 相当于Java中的byte |
smallint | 2字节 | 相当于Java中的short |
int | 4字节 | int |
bigint | 8字节 | long |
float | 4字节 | 单精度,M指定长度,D指定小数点位数,会发生精度丢失 |
double | 8字节 | 双精度 |
decimal(M,D) [ˈdesɪml] | M/D最大值+2 | 不会发生精度丢失 |
numerci(M,D) | M/D最大值+2 | 和decimal一样 |
float double 是遵守IEEE754标准的浮点数,精度不准
decimal 和 numerci 类似于字符串这种变长空间存储,优点就是精度变高,误差小了
但是缺点就是计算效率减低,存储空间变大了
对于整型类型的范围:
- 有符号范围:-2^ (类型字节数* 8-1)到 2^(类型字节数*8-1)-1,如int是4字节,就
是-2^31到 2^31-1- 无符号范围:0到2^ (类型字节数*8)-1,如int就是2^32-1
字符串类型
数据类型 | 说明 | 对应 Java类型 | 对应C类型 |
---|---|---|---|
varchar (size) | 可变长字符串 | String | char[] |
text | 长文本数据 | String | char[] |
mediumtext | 中等长度文本数据 | String | char[] |
blob | 二级制形式的长文本数据 | byte[] | char[] |
varchar(size) size表示字符串之中最多能有几个字符, varchar 括号里面的size是一定要写的
常见的文件数据:.txt .java .c .html 都是文本文件
常见的二进制数据:.docx .xlsx ppt exe dll png mp4 都是二级制文件
日期类型
数据类型 | 大小 |
---|---|
datetime | 8字节 |
timestamp | 4字节 |
数据表的操作
在进行数据表的操作的时候,要先选中数据库(use 数据库名)
创建数据表
create table 表名(列名 类型,列名 类型……);
主要:这里是列名在前,类型在后
创建表的时候,同一个数据库中不能有同名的表
创建表的时候,要确保表名不能和关键字重复
要是一定要重复,就用反引号引起来
创建的时候既可以一行去写,也可以分成多行去写
查看当前数据库中有哪些表
show tables;
查看指定表的结构
desc 数据表名;
此处的desc 就是 describe描述的意思
Field是字段的意思
int(11)这里的11与存储无关,11指的是打印的时候整数最多占11个空格的位置,只是一种打印的格式
NULL列 的意思是允许这一列什么都不填
删除表
drop table 表名;
以上就是关于MySQL的最基本的操作,如有错误,欢迎各位指正!