当前位置:网站首页>MySQL——基础知识
MySQL——基础知识
2022-07-30 17:53:00 【Xiaolock830】
接下来的几篇博客将介绍MySQL的基础知识和相关使用方法,然后再回到Java,介绍JavaEE的知识
什么是数据库
受硬件的技术影响,我们不可能将所有的文件存储在计算机的内存中。并且,我们还需要考虑存储的安全问题,存储数据的增删查找的效率问题等。而数据库是用来管理海量数据的一款软件
数据库的分类
关系型数据库
由关系模型(二维表格模型)来组织数据,常见的实现关系型数据库的软件有
- Oracle
- MySQL
- SQL Server
使用了SQL,支持事务,也支持复杂操作,对于海量数据的增删查改的效率低,基本的结构类似exile表格,用于业务方面的OLTP系统(联机事务处理)
非关系型数据库
没有关系,可分为如下类别:
- 基于键值对的
- 基于文档的
- 基于列族的
- 基于图形的
不支持事务和复杂操作,对海量数据增删查改的效率低,用于数据的缓存
SQL的分类
- 维护存储数据的结构
例如:create,drop,alter - 对数据进行操作的关键字
例如:insert,update,delete - 关于权限管理和事务的关键字
例如:grant,revoke,commit
MySQL中的数据类型
数据类型 | 大小 | 对应JAVA中的类型 |
---|---|---|
bit(1-64) | 指定的位数,默认是1 | boolean |
tinyint | 1 | byte |
smallint | 2 | short |
int | 4 | int |
bigint | 8 | long |
float(长度,位数) | 4 | float |
double(长度,位数) | 8 | double |
decimal(长度,位数) | 长度和位数最大值加2 | bigdecimal |
numeric(长度,位数) | 长度和位数最大值加2 | bigdecimal |
varchar(长度) | 0-65536 | String |
text | 0-65535 | String |
mediumtext | 0-16777215 | String |
blob | 0-65535 | byte[] |
datetime | 8 | java.util.Date,java.sql.Timestamp |
timestamp | 4 | java.util.Date,java.sql.Timestamp |
需要注意的是,MySQL中支持unsigned,也就是无符号数,但是并不支持,因为也许会引发bug
对数据库的操作
需要注意的是,MySQL中的代码不区分大小写,我个人更倾向于小写,而和其他的编程语言一样,在每个代码的结束都有;
显示数据库
show databases;
可以显示当前用户底下有哪些数据库
创建数据库
create database 数据库名字;
由于不能创建同名的数据库,我们用以下语法可以进行判定系统中有没有我们要创建的数据库,如果没有就创建
create database if not exists 数据库名字;
在之前的博客中讲到不同的语言有不同的编码字符集,而不同的字符集对各种语言的支持不一样,例如ascii码不支持中文,而我们可以在创建数据库时指定要使用的字符集
create database 数据库名字 character set utf8mb4;
使用数据库
我们只能对单一的数据库进行操作,在相关代码执行前,应该先选中我们要使用的数据库
use 数据库名;
删除数据库
️ 这是一个非常危险的操作,网上报道过程序员删库跑路被判刑的相关新闻,因此在公司中操作一定要小心谨慎
drop database 名字
和创建数据库一样,我们也可以判定一下要删除的数据库存不存在
drop database if exists 名字;
对表的操作
有了数据库,我们就可以选中数据库,在其中创建表
创建表
需要注意的是,MySQL和C,java不同,数据的类型要放到内容的后面
create table 表名字(表头1 类型,表头2 类型....);
查看数据库中的所有表
和查看所有数据库类似
show tables;
查看表的结构
我们可以通过如下代码查看表的表头名,类型,是否允许为空,索引类型,默认值,扩充
desc 表名;
注释
我们可以用comment给表中增加字段说明
create table 表名字(表头1 类型 commit xxx,表头2 类型....);
删除表
和删除数据库的操作相同
drop table 表名
也同样可以进行if exists的操作
边栏推荐
- Wincc报表教程(SQL数据库的建立,wincc在数据库中保存和查询数据,调用Excel模板把数据保存到指定的位置和打印功能)
- mysql刷脏的几种场景以及相关参数
- 【开发者必看】【push kit】推送服务典型问题合集3
- ARC在编译期和运行期做了什么
- 数据库系统原理与应用教程(063)—— MySQL 练习题:操作题 39-50(七):SELECT 基本语法联系
- C陷阱与缺陷 第7章 可移植性缺陷 7.3 整数的大小
- LayaBox---TypeScript---类型兼容性
- 数据库系统原理与应用教程(067)—— MySQL 练习题:操作题 82-89(十一):数据的增、删、改操作
- linux 安装mysql8.0 超详细教程(实战多次)
- 公司部门来了个00后测试卷王之王,老油条表示真干不过,已经...
猜你喜欢
Web 3.0入门教程
un7.30:linux——如何在docker容器中安装MySQL?
Servo System of Hydraulic Steering Gear Based on Fuzzy PID
ESP8266-Arduino编程实例-HC-SR04超声波传感器驱动
基于亚马逊云科技无服务器服务快速搭建电商平台——性能篇
你好好想想,你真的需要配置中心吗?
宽带射频放大器OA4SMM4(1)
Mongo for infrastructure
【HMS core】【FAQ】Account Kit、MDM能力、push Kit典型问题合集6
Confluence OGNL注入漏洞复现(CVE-2022-26134)
随机推荐
SQL存储过程详解
顺通海关查验预约综合管理系统
多年以后「PageHelper」又深深的给我上了一课
公司部门来了个00后测试卷王之王,老油条表示真干不过,已经...
LayaBox---TypeScript---泛型
知识蒸馏2:目标检测中的知识蒸馏
数据库系统原理与应用教程(066)—— MySQL 练习题:操作题 71-81(十):连接查询
Linux-安装MySQL(详细教程)
leetcode-684:冗余连接
LayaBox---TypeScript---基础数据类型
UE5第一人称射击游戏蓝图教程
强啊,点赞业务缓存设计优化探索之路。
Arranger software FL Studio Chinese version installation tutorial and switching language tutorial
首发!阿里技术大牛最新耗时半个月整理出最全MySQL性能优化和高可用架构技术宝典,直接封神!
图解LeetCode——11. 盛最多水的容器(难度:中等)
【HarmonyOS】【FAQ】鸿蒙问题合集4
592. Fraction Addition and Subtraction
【HMS core】【FAQ】Account Kit、MDM能力、push Kit典型问题合集6
un7.30:Linux——如何在docker容器中显示MySQL的中文字符?
C陷阱与缺陷 第6章 预处理器 6.3 宏并不是语句