MySQL数据库基础知识(数据库/表的基础操作 + 基本类型)

数据库的操作

  • 输入的单词之间要带有空格,多个空格也可以,至少有一个
  • 语句后面加上英文分号
  • 关键字和函数名大小写不区分
  • 本文中 [ ] 里面的内容不是必要的,可写可不写

显示当前数据库服务器上有哪些数据库

SHOW DATABASES;

在这里插入图片描述

这四个是MySQL自带的数据库(系统库),不要乱改
0.01sec表示花的时间在10ms到20ms之间

创建数据库

CREATE DATABASE 数据库名;

库名要求不能和SQL中的"关键字"重复
如果实在想使用"关键字"作为数据库名,可以用反引号 `` 把"关键字"引起来使用

  • GBK: 使用2个字节表示一个汉字
  • UTF8:变长编码,对于汉字来说一般是3个字节,还能表示世界上其他语言

GBK和UTF8都是兼容ASCll的

在创建数据库时,还可以指定字符集

CREATE DATABASE 数据库名 CHARSET 字符集名;

MySQL 5.7默认字符集是拉丁文,不支持中文,所以建议使用UTF8作为字符集,MySQL8默认就是UTF8了

一个Charset可以有多个Character Set,而一个Character Set只能属于一个Charset。

举例:

如果系统没有 db_test2 的数据库,则创建一个名叫 db_test2 的数据库,如果有则不创建

CREATE DATABASE IF NOT EXISTS db_test2;

如果系统没有 db_test 的数据库,则创建一个使用utf8mb4字符集的 db_test 数据库,如果有则不创建

CREATE DATABASE IF NOT EXISTS db_test CHARACTER SET utf8mb4;

说明:MySQL的utf8编码不是真正的utf8,没有包含某些复杂的中文字符和表情。MySQL真正的utf8是utf8mb4,建议大家都使用utf8mb4

创建数据库时还可以指定"校验规则"(可以认为是字符串比较时对应的规则),一般不用修改,使用默认即可

使用数据库

use 数据库名;

删除数据库

DROP DATABASE [IF EXISTS] 数据库名;

说明:数据库删除以后,里边的表和数据全部被删除

常用数据类型

数值类型

分为整型和浮点型:

数据类型大小说明对应java类型
BIT[ (M) ]M指定位数,默认为1二进制数,M范围从1到64,存储数值范围从0到 2 M − 1 2^{M-1} 2M1常用Boolean对应BIT,此时默认是1位,即只能存0和1
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和DECIMAL一样BigDecimal

扩展资料

数值类型可以指定为无符号(unsigned),表示不取负数。

对于整型类型的范围:

  • 有符号范围: − 2 (类型字节数 ∗ 8 − 1 ) -2^{(类型字节数*8-1)} 2(类型字节数81 2 (类型字节数 ∗ 8 − 1 ) 2^{(类型字节数*8-1)} 2(类型字节数81-1,如int是4字节,就是 − 2 31 -2^{31} 231 2 31 − 1 2^{31}-1 2311
  • 无符号范围:0到 2 (类型字节数 ∗ 8 ) 2^{(类型字节数*8)} 2(类型字节数8-1,如int就是0到 2 32 − 1 2^{32}-1 2321
  • 尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此,还不如设计时,将int类型提升为bigint类型。

相比于float / double 来说, decimal 与numeric 存储需要消耗更多的空间,计算也需要更多的时间,但是更加精确

字符串类型

数据类型大小说明对应java类型
VARCHAR (SIZE)0-65,535字节可变长度字符串String
TEXT0-65,535字节长文本数据String
MEDIUMTEXT0-16 777 215字节中等长度文本数据String
BLOB0-65,535字节二进制形式的长文本数据byte[]
  • VARCHAR的参数SIZE表示能存储的最大字符数,假设传入SIZE为256,VARCHAR 的大小不是固定的256个字符,可能比256少,但不会超过256
  • TEXT的长度是靠"自适应"的,比较依赖自动扩容,实际开发中为了明确数据存储上限慎重使用TEXT,更多使用VARCHAR
  • 要想存储更长的文本,可以考虑使用MEDIUMTEXT,但要慎重,因为效率可能比较低
  • BLOB存储二进制数据(图片、音频、视频、可执行程序、.class文件…),而前三个类型是存储文本数据

日期类型

数据类型大小说明对应java类型
DATETIME8字节范围从1000到9999年,不会进行时区的检索及转换。java.util.Date、java.sql.Timestamp
TIMESTAMP4字节范围从1970到2038年,自动检索当前时区并进行转换。java.util.Date、java.sql.Timestamp

TIMESTAMP是时间戳的意思,而这个类型只到2038年,快不能用了,所以推荐DATETIME

小结(主要使用)

表示整型:int
表示小数:double
表示字符串:varchar
表示时间日期:datetime

表的操作

需要操作数据库中的表时,需要先使用该数据库:

use 数据库名;

创建表

  • 设定表名/列名时, 也不能和SQL关键字重复,如果确实需要重复,可以使用反引号 ``引起来
  • 同一个数据库中,表名不能重复
CREATE TABLE 表名(列名 类型,列名 类型, 列名 类型, ......);

查看表结构

desc 表名;

在这里插入图片描述

在这里插入图片描述

  • int(11)的(11)表示:在控制台显示这一列数值最多占11个字符(位宽)
  • 列也可以叫做字段(Field)
  • 数据库中的NULL / null表示的是这个单元格没填

列出当前数据库的表

show tables;

删除表

不仅删除表本身,也删除了表里面的数据

DROP TABLE 表名;

示例:如果存在 stu_test 表,则删除 stu_test 表

drop table if exists stu_test;

注释

在这里插入图片描述
这个注释只能在创建表的时候声明列
更推荐使用# 或者-- 作为注释

  • 注释不会存储到数据库中
  • 起到的作用是解释说明

MySQL创建的数据库/表存储在系统的位置

我们可以在系统中找到数据库产生的对应目录和文件(不同电脑实际存储的位置可能不一样)

方法

开始菜单找到MySQL客户端的快捷方式 - 更多 - 打开文件位置
在这里插入图片描述
打开属性
在这里插入图片描述
属性里的目标就是双击快捷方式本质运行什么程序

"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe" "--defaults-file=C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" "-uroot" "-p"

在这里插入图片描述

"--defaults-file=C:\ProgramData\MySQL\MySQL Server 5.7\my.ini"

my.ini是 MySQL的配置文件,我们要找到它

Windows下是my.ini
Linux下是my.cnf

给程序猿使用的专业软件,不会像游戏设置界面那样的图形化界面进行编辑"配置项",而是直接用一个文件的方式进行呈现,这样的文件就是配置文件

C盘的ProgramData是隐藏目录,默认状态看不到
把查看 - 显示 - 隐藏的项目 勾选上就能看到
在这里插入图片描述
顺着路径找到my.ini,双击可能打不开,可以先打开记事本,把my.ini拖到里面就能打开了

里面有这样的配置项描述的就是数据库存储的数据是在哪里
在这里插入图片描述

  • 13
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值