文章目录:
前言
九月份,我开始了MySQL的学习,并以博客的方式对所学知识进行总结,方便自己日后复习 and 借此向大家分享。希望大家互相支持!互相激励!我们共同进步!
一、SQL简介
SQL
Structured Query Language:结构化查询语言,简称SQL,是一种用于管理关系数据库管理系统(RDBMS)的标准化编程语言。它允许用户执行各种操作,如数据查询、数据更新、数据插入、数据删除、数据模式创建和修改等。SQL是几乎所有现代关系数据库系统的基础语言。
MySQL
MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一。关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
二、数据库(数据集合)操作
这里标题的数据库指的是数据集合,逻辑上的概念,一个mysql服务器上,会有多个这样的数据集合。
1. 连接服务器
下载好mysql客户端后,输入设置的密码,连接服务器。
出现以上内容,表示已经成功连接服务器
2. 创建数据库
语法:
create database 数据库名;
注意:
这里的 create 和 database 都是SQL语言的关键字
数据库名不能和关键字冲突
语句结尾有分号
成功执行SQL语句后,会提示查询成功:
“Query OK”:查询成功
“n rows affected”:成功执行该语句后,n行数据受到影响
“0.00 sec”:执行语句消耗0.00秒 (sec:second 秒)
在创建数据库时,可以设置数据库的编码方式
设置编码方式,有助于中文或其他语言的存储
关键字:charset
字符集:不同的字符集有着不同的编码方式
我们熟知的字符集一般有:GBK、Unicode、utf-8 等
GBK:(Windows简体中文版,默认使用的字符编码)
一个汉字占2个字节,只能表示6w个汉字;
utf-8:变长编码
一个utf8的字符可能是一个或两个或三个字节,中文一般是3个字节
可以表示所有语言
Unicode:
中文一般是2个字节;
Java的char是使用unicode编码,可以存储中文
Java的String是utf8,原因:多个unicode字符编码的数据拼在一起后,汉字划分不出来
我使用的客户端是MySQL5.x 版本,默认的字符集是拉丁文,无法直接存储中文
MySQL中:utf8是不完全体,少了一些emoji表情,完全体版utf8:utf8mb4
3. 查看数据库
语法:
show databases;
上图中,java110是刚刚创建的数据库,其他是MySQL系统自带的数据库
一个服务器中,数据库的名字不能重复!!!!
4. 选中数据库
语法:
use 数据库名;
服务器上存在多个数据库,在后续的表操作之前,需要选定要操作的数据库
具体使用的时候,可以多显示地选中一下数据库,use是一个没什么成本的操作
5. 删除数据库
语法:
drop database 数据库名;
删除数据库是未来使用MySQL时相当危险的操作:实际操作中,删除数据库的操作一定要慎重,删除之后数据就彻底没了。
三、数据表操作
1. MySQL中常用数据类型
数据表中有很多列,每一列数据都有具体的数据类型
整形和浮点型
可以看到,这里的数据类型的名字和之前学习的编程语言有所不同,那是因为sql可以算是很古老的编程语言,那个时候对类型的名字还没有一个习惯用法
其中:float和double存在严重的缺陷:数据不能精确保存
比较两个浮点数不能使用 == 需要通过作差,小于一个误差值的方式;
原因:IEEE 754标准约定了float和double的存储规则
所以就引入了decimal类型:也能表示小数,但不是按照IEEE 754标准来表示,而是类似字符串的方式表示付出了更多的空间和计算时间,换来更高的精度。
注意:
1. 数值类型可以指定为无符号数,表示不取负数
尽量不要使用unsigned:int存储不下的数据,int unsigned可能也存储不下
2. 1字节(byte) = 8 bit
3.
字符串类型
注意:
1. 其中varchar(size):
size表示的是最大长度,并不是每个数据都一定有这么长
存在中文,一个汉字算一位
设置size来设置上限,为了兜底,数据库存储数据的时候,需要关注当前占用的空间
2. text:没有限定长度,最长也是64kb的长度
3. varchar、text、mediumtext都是存储的字符串(文本数据)
文本文件存储的是标准字符,都可以在字符码表(ASCII、utf8)上查到
blob:存储的二进制数据:没有上述要求,可以存储任意数据(视频、音频、图片、动态 库)
时间日期
推荐使用datetime
了解了MySQL中常用的数据类型,下面可以开始了解数据表的基础操作。
数据表:存储数据的基本单位
前提:一定要选中一个数据库!!!!
2. 创建表
语法:
create table 表名(列名 类型,列名 类型,……);
也可以分行写创建表:
例:
这里的comment:用来注释,但不够通用 只能作为“表的列”的注释
其他注释方式:- 或者 #
关系型数据库的基本要求:创建表的时候,必须描述出表包含哪些列,每一列的名字,每一列的类型,后续表中存放的数据要遵守这些规则。(明确了列的类型,可以更方便的对数据的值进行检查和校验)
3. 查看表
语法:
show tables;
4. 查看表结构
语法:
desc 表名;
desc ——> describe
查看一个表的列、列的名字和类型……
其中:
Filed:列
Type:类型
Null:是否可以为空
Default:默认值
Key和Extra后续会有了解
这里的int(11):并不是表示int占11个字节
这里的11是指“位宽”:int在mysql客户端打印时,最多占多少的宽度
int:-21亿——+21亿(10位)+符号位 ——> 11位
5. 删除表
语法:
drop table 表名;
同样的,删除表也是一个相当危险的操作,可能比删除库更严重!!
删库后,任何操作都是错的,更容易被发现
删表后,大多数操作都没事,更不容易被发现,错误越积越多,影响更大
标签:存储,数据库,SQL,数据表,MySQL,操作,数据 From: https://blog.csdn.net/2401_86777036/article/details/142311572