当前位置: 首页 > news >正文

MySQL数据库基础操作指南:从创建到管理的完整流程

目录

  • 1. 操作数据库
      • 1.1 创建数据库
      • 1.2 查看数据库
      • 1.3 选中数据库
      • 1.4 删除数据库
  • 2. 操作表
      • * MySQL中的数据类型
      • 2.1 创建表
      • 2.2 查看数据库中的所有表
      • 2.3 查看指定表的结构
      • 2.4 删除表

关注我,学习更多企业开发和面试内容~

在这里插入图片描述

1. 操作数据库

此处的数据不是MySQL,而是一个数据集合。

一个MySQL服务器程序,可以在硬盘上组织保存数据(MySQL以表的结构存储数据),一个MySQL服务器可以有很多表,将有关联关系的表放到一起,就构成了一个数据集合,这个数据集合就是这里的数据库。一个MySQL服务器上可以有很多个数据库。

【举例】学校的教务系统
将同学信息,老师信息,课程信息这几个数据集合关联起来,构成一个数据库。
将成绩信息,就业信息这几个数据集合关联起来,构成一个数据库。

【语法规则】

  1. SQL语句中定义各种名字时不能与SQL的关键字相同。

  2. SQL语句不区分大小写。

  3. 单词之间至少含一个空格。

  4. 句尾必须加分号。

  5. 允许写sql语句时换行。


1.1 创建数据库

语法:create database(if not exists)数据库名 (charset utf8);

  1. 数据库创建时数据库名不能重名(加if not exists), 实际工作中是把一系列SQL语句写到一个文件中,而不会像初学时这样一条条执行。在批量执行时,如果一条SQL语句报错,后边的语句无法执行,所以创建时加”if not exists“。
  2. 创建时可以指定一下字符集(类似于ASCII码的码表),但MySQL的utf8缺少emoji表情,后来MySQL又搞了一个utf8mb4弥补了这个缺陷。
  3. MySQL是拉丁文的,必须指定编码为中文。

【常见的字符集】

  • gbk:gbk下汉字占2个字节,用的很少。
  • unicode:给单个字符进行编码,无法给字符串进行编码(区分字符与字符的边界)。
  • utf8(变长编码):utf8下占3个字节,能表示世界上任何一种文字,能识别字符串。
  • utf8mb4(完全体的utf8)

Java中,char类型是unicode编码,String类型是utf8编码(Java内部自动完成了转换)。


1.2 查看数据库

列出当前MySQL服务器上都有哪些数据库。

语法:show databases;

【代码演示】

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| java108            |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+

注:列出的数据库中有些是创建完数据库自带的,其中的mysql数据库是修改当前数据库的配置,要慎重操作。


1.3 选中数据库

数据库中最核心的操作就是针对表的增删改查,而表是属于数据库的,想对表操作,就必须指定是哪个数据库。

语法:use 数据库名;

mysql> use java108
Database changed

1.4 删除数据库

语法:drop database 数据库名;

此操作慎重!!删除数据库也会一并删除库中的表和表中的数据,如果故意删除公司数据库严重的要吃牢饭!!

【避免操作失误的方法】

  1. 公司会控制数据库的权限,只允许新人进行增查改操作,不能删除。
  2. 确实要进行一些操作时,可以找人一起盯着。

2. 操作表

针对表操作,必须先选中数据库!!!

* MySQL中的数据类型

一个表包含很多行,行中包含很多列,每一行称为一条记录,每一列称为一个字段,每个列都有一个具体的类型。

  1. 整型:
数据类型大小说明对应Java类型
BIT[(M)]M指定位数,默认为1二进制数,M范围1-64,存储范围0到2^M-1;Boolean对应BIT(1)时存0/1Boolean
TINYINT1字节小整数Byte
SMALLINT2字节短整数Short
INT4字节整数Integer
BIGINT8字节长整数Long
FLOAT(M,D)4字节单精度浮点数,M为长度,D为小数位数(可能丢失精度)Float
DOUBLE(M,D)8字节双精度浮点数Double
DECIMAL(M,D)M/D最大值+2字节精确数值,M为长度,D为小数位数BigDecimal
NUMERIC(M,D)M/D最大值+2字节功能同DECIMALBigDecimal
  1. 浮点型
  1. float(m,n) ()用来描述精度。m指小数长度,n指小数点后边有几位。
  2. double(m,n) 如,double(3,2)——>3.33。
  3. decimal(m,n) 精度更高的浮点数,但占用内存大,运行速度慢 注:float和double都是IEE 745标准下的浮点数,精度会有所丢失,如 0.1 + 0.2 != 0.3。

2.字符相关:

  1. varchar(size) :size表示该类型最多存几个字符(不是字节!!)一个汉字占一个字符,但不一定占一个字节。size虽然会指明空间大小,但不会分配这么大空间,而是先分配较小空间,不够再扩展。这些存的字符都是能在码表上找到的,码表上找不到的就是二进制的数据,如,音乐,视频
  2. text:长文本数据。
  3. mediumtext:中等长度的文本数据。
  4. blob:二进制数据。

3.时间相关

  1. datetime:8字节,不会进行时区的检索及转换。
  2. timestamp:4字节,自动检索当前时区并进行转换。

2.1 创建表

语法:create table 表名(列名 类型,列名 类型…);

若想让表名/列名和关键字同名,把表名/列名用 ` (反引号)引起来即可。

mysql> use java109;
Database changed
mysql> show tables;
Empty set (0.00 sec)mysql> create table student(id int,name varchar(20));
Query OK, 0 rows affected (0.04 sec)
mysql> create table test(id int,name varchar(20),`show` int);
Query OK, 0 rows affected (0.03 sec)

2.2 查看数据库中的所有表

show tables;

mysql> show tables;
+-------------------+
| Tables_in_java109 |
+-------------------+
| student           |
| test              |
+-------------------+
2 rows in set (0.00 sec)

2.3 查看指定表的结构

desc 表名;
在这里插入图片描述


2.4 删除表

drop table 表名;(此操作慎重!!删除表会连表中的数据一起删除,不可恢复)

http://www.dtcms.com/a/336206.html

相关文章:

  • Linux系统中6种替代top的工具
  • SparkSQL性能优化实践指南
  • ubuntu 24.04 安装
  • RAC环境redo在各节点本地导致数据库故障恢复---惜分飞
  • 云智智慧停充一体云-allnew全新体验-路内停车源码+路外停车源码+充电桩源码解决方案
  • 从零配置YOLOv8环境:RTX 3060显卡完整指南
  • 43.安卓逆向2-补环境-使用unidbg(使用Smali语法调用方法和使用方法地址调用方法)
  • n2n局域网搭建
  • 0-12岁幼儿启蒙与教育
  • Linux操作系统远程连接
  • 代码管理系统简介与部署
  • 《告别 if-else 迷宫:Python 策略模式 (Strategy Pattern) 的优雅之道》
  • Honor of Kings 101star (S40) 2025.08.17
  • Spring Bean 的生命周期:从创建到销毁的完整旅程​
  • Gemini 学习记录:实践与反思
  • 深度解析 Spring Bean 生命周期
  • UE5多人MOBA+GAS 49、创建大厅
  • MariaDB 多源复制
  • Qt异步编程:QFuture与QPromise深度解析
  • Mysql常见的查询总结
  • Golang database/sql 包深度解析(二):连接池实现原理
  • 快速掌握Hardhat与Solidity智能合约开发
  • Rust Web 全栈开发(十三):发布
  • 实时视频延迟优化实战:RTSP与RTMP播放器哪个延迟更低?
  • 数据结构初阶(19)外排序·文件归并排序的实现
  • 博士招生 | 麻省理工学院 招收化学+人工智能方向 博士/博士后
  • 【编程实践】关于S3DIS数据集的问题
  • Docker+飞算JavaAI=未来:全流程容器化AI开发实战
  • Python注解
  • 【leetcode】14. 最长公共前缀