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服务器上可以有很多个数据库。
【举例】学校的教务系统
将同学信息,老师信息,课程信息这几个数据集合关联起来,构成一个数据库。
将成绩信息,就业信息这几个数据集合关联起来,构成一个数据库。
【语法规则】
SQL语句中定义各种名字时不能与SQL的关键字相同。
SQL语句不区分大小写。
单词之间至少含一个空格。
句尾必须加分号。
允许写sql语句时换行。
1.1 创建数据库
语法:create database(if not exists)数据库名 (charset utf8);
- 数据库创建时数据库名不能重名(加if not exists), 实际工作中是把一系列SQL语句写到一个文件中,而不会像初学时这样一条条执行。在批量执行时,如果一条SQL语句报错,后边的语句无法执行,所以创建时加”if not exists“。
- 创建时可以指定一下字符集(类似于ASCII码的码表),但MySQL的utf8缺少emoji表情,后来MySQL又搞了一个utf8mb4弥补了这个缺陷。
- 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 数据库名;
此操作慎重!!删除数据库也会一并删除库中的表和表中的数据,如果故意删除公司数据库严重的要吃牢饭!!
【避免操作失误的方法】
- 公司会控制数据库的权限,只允许新人进行增查改操作,不能删除。
- 确实要进行一些操作时,可以找人一起盯着。
2. 操作表
针对表操作,必须先选中数据库!!!
* MySQL中的数据类型
一个表包含很多行,行中包含很多列,每一行称为一条记录,每一列称为一个字段,每个列都有一个具体的类型。
- 整型:
数据类型 | 大小 | 说明 | 对应Java类型 |
---|---|---|---|
BIT[(M)] | M指定位数,默认为1 | 二进制数,M范围1-64,存储范围0到2^M-1;Boolean对应BIT(1)时存0/1 | Boolean |
TINYINT | 1字节 | 小整数 | Byte |
SMALLINT | 2字节 | 短整数 | Short |
INT | 4字节 | 整数 | Integer |
BIGINT | 8字节 | 长整数 | 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字节 | 功能同DECIMAL | BigDecimal |
- 浮点型
- float(m,n) ()用来描述精度。m指小数长度,n指小数点后边有几位。
- double(m,n) 如,double(3,2)——>3.33。
- decimal(m,n) 精度更高的浮点数,但占用内存大,运行速度慢 注:float和double都是IEE 745标准下的浮点数,精度会有所丢失,如 0.1 + 0.2 != 0.3。
2.字符相关:
- varchar(size) :size表示该类型最多存几个字符(不是字节!!)一个汉字占一个字符,但不一定占一个字节。size虽然会指明空间大小,但不会分配这么大空间,而是先分配较小空间,不够再扩展。这些存的字符都是能在码表上找到的,码表上找不到的就是二进制的数据,如,音乐,视频
- text:长文本数据。
- mediumtext:中等长度的文本数据。
- blob:二进制数据。
3.时间相关
- datetime:8字节,不会进行时区的检索及转换。
- 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 表名;(此操作慎重!!删除表会连表中的数据一起删除,不可恢复)