数据库------MYSQL

article/2025/9/25 20:13:10

目录

数据库

关系型数据库

非关系型数据库

MYSQL

登录

创建数据库

字符集

警告,错误,致命

查看数据库

 选中数据库

 删除库

数据类型

数值类型

字符串类型

日期类型

表的操作

选定数据库

 创建表

多行输入

注释

单行注释:

多行注释 

 查看表结构

查看表

 删除表

 练习题



数据库

在使用MYSQL之前,先简单了解一下数据库的类型

数据库的类型分为四大类:

一:关系型数据库。

二:非关系型数据库。

三:网状数据库。

四:层次数据库。

目前最常见的数据库模型主要是:关系型数据库和非关系型数据库

关系型数据库

关系型数据库有Oracle,MYSQL,SQL Server,SQLite

非关系型数据库

非关系型数据库有Memcached、MongoDB,redis,HBase

MYSQL

我们要使用的MYSQL就是关系型数据库

下载和安装网上都有,这里不复述

登录

安装完成后打开MYSQL,会看到这个页面

输入安装的时候,设置的密码 

忘了就删了重新安装吧

后面还有很多你不小心的操作也会导致你需要重新安装MYSQL      

所以先不要急躁,学习编程就是要多折腾,要有耐心  

看到这个页面说明登录成功

如果密码输入错误,会直接闪退

创建数据库

create database 库名;

注意:

库名不能和MYSQL的关键字重复

 报错的大意是:你有一个SQL语法错误,检查MySQL 的语法手册,在第一行create附近.

to use 前面的话,都不重要,重要的是后面的,他会告诉你那部分出现了错误.

如果非要使用关键字来创建库名,可以使用反引号把他括起来 `create`

反引号就是P社游戏的控制台按键,在你键盘的左上角,ESC的下面,1的左边,table的上面也就是~号的位置

我们打上反引号试试

create database `create`;

 可以看到创建成功,有人可能会好奇后面括号里面是什么东西?

他的括号里面的(0.00sec),指的是创建完成的时间

为0不一定是0S,可能是更小的时间单位,比如毫秒,微秒等

字符集

创建数据库的时候,还可以指定他的字符集

说到字符集,我们需要了解一下计算机是如何表示英文字母?

计算机中表示英文字母的办法是用数字来表示字母

ascii码表就是字母和数字有对应关系

UTF8这个字符集,它支持各种非英语字母表

所以我们可以在创建库的时候把他带上

create database test charset utf8;

 

 可以看到我们已经成功创建了一个名为test的库,他使用utf8这个字符集

汉字在utf8中是占三个字节位置进行存储,但是有些特殊的字,他不是三个字节存储,这就导致utf8并不能表达所有的汉字,这个时候,我们就可以使用utf8mb4字符集.

utf8mb4字符集除了识别一些不常用的汉字,还可以识别Emoji 表情.

我们可以和使用utf8字符集一样使用utf8mb4字符集

create database test charset utf8mb4;

 哎,这是为什么呢,明明代码和前面的一模一样,为什么就报错了?

难道是utf8mb4字符集的使用方式不一样?

仔细看一下报错,我们会发现,(报错大意:)不能创建数据库,因为这个数据库存在

原来不是添加字符集的方式错了,而是一个已经添加了字符集的库不能改用另一个字符集

我们可以先给库换个名字来看看utf8mb4的添加方式对不对,在来看如何下次避免这个问题再出现

create database test_2 charset utf8mb4;

 可以看到utf8mb4这个字符集的添加方式和utf8是一样的

如果为了节省空间,可以使用utf8字符集

警告,错误,致命

可能有人会想,我不想看到他老是报错,我看到他报错就烦,怎么样能避免报错呢?

现在我们再来看如何避免报错

 我们可以加上一段话来解决这个报错问题

create database if not exists test;

 加上的if not exists的意思就是如果不存在就创建

连起来就是如果test这个库 不存在 就创建,存在 就 不创建

我们可以看到加上这句话以后,他不报错,但是给了一个警告

警告不影响代码运行,错误会影响代码的运行,致命就是非常严重的问题,会致命

我们还可以查看当前有多少警告

show warnings;

 能看到只有刚才的警告

查看数据库

和查看警告一样,需要使用show

show databases;

需要注意的是:他是复数形式的databases,不是database

 这样我们就可以看到我们创建了多少数据库,其中有些数据库是你自己创建的,有些数据库是系统自带的,后面我会把系统自带的数据库标记出来,并且说明如果你不小心操作错了数据库,会怎么样

 选中数据库

如果你不选中数据库,系统也不知道你要干什么,让谁干什么,就像如果不喊名字,喊那个谁,那谁知道你在喊谁

use 库名;

 删除库

drop database 库名;

选择删除test这个数据库,删完以后查看一下,是否成功删除 

 

 

通过对比可以看到已经没有test这个数据库了

注意:

删库需谨慎!   这东西没有回收站!   删完无法恢复!

删库需谨慎!   这东西没有回收站!   删完无法恢复!

删库需谨慎!   这东西没有回收站!   删完无法恢复!

如果你不小心把系统的数据库干掉了,那恭喜你,又可以重新安装一次了!

 这四个红框里面的就是MYSQL的数据库

干掉一个,你就可以把他删完然后重新安装了

误删系统库我就不演示了,欢迎感兴趣的小伙伴尝试一下,然后给我分享一下,蟹蟹了.

数据类型

数值类型

标红的是常用的

数据大小

大小

说明

对应Java类型

BIT[ (M) ]

M指定位数,认为1

二进制数,M范围从1到64,
存储数值范围从0到2^M-1

常用Boolean对应BIT,

此时默认是1位,

即只能存0和1

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

双精度,M指定长度,D指定
小数位数。精确数值

BigDecimal

注意:

常用的是int和double以及decimal

float和java里面一样,他是单精度浮点,一般不用他保存数据,容易丢失精度

一般都是使用double或者他下面的decimal来保存带小数的数据

字符串类型

数据类型

大小

说明

对应Java类型

VRCHAR(SIZE)

0-65535字节

可变长度字符串

String

TEXT

0-65535字节

长文本数据

String

MEDIUMTEXT

0-1677215字节

中等长度文笔数据

String

BLOB

0-65535字节

二进制形式的长文本数据

byte[]

注意:

常用的是VRCHAR(SIZE)

VRCHAR(SIZE)这个代码用到SQL里面以后他的SIZE,不是字节,而是字符

日期类型

数据类型

大小

说明

对应Java类型

DATATIME

8字节

范围从1000到9999年,不会进行时区的
检索及转换

java.util.Date、
java.sql.Timestamp

TIMESTAMP

4字节

范围从1000到2038年,自动检索当前时区并进行转换

java.util.Date、
java.sql.Timestamp

注意:

TIMESTAMP这个代码有一定危险性,他到2038年就会出现问题

使用的时候需要避免

没必要刀尖上跳舞,你说是吧,不作死就不会死

表的操作

选定数据库

创建表之前,需要先选定你要操作的数据库,不然他也不知道,你要对那个数据库进行操作

use 数据库;

 创建表

-- 创建一个表
create table 表名(
commodity_name VARCHAR(字符),
commodity_price decimal(长度,精度),
commodity_stock int,
commodity_details VARCHAR(字符)
);

create table 表名(
列名 类型,
列名 类型,
列名 类型,
列名 类型
);
create table `table`(id int);

注意:

1.创建表名的时候,表名后面跟着的是先是列名,然后才是类型.

2.同一个数据库里面,不能有两份一样的表名

3.表名和列名不能和SQL的关键字一样,如果非要一样,就用 ` ,反引号引起来

` 反引号在键盘的左上角,ESC的下面,1的左边,table的上边,和数据库的创建要求一样

多行输入

看到这个表的创建方式有人会好奇,为什么可以分开这么多行输入,

这是因为MYSQL的结束是需要加英语的封号才算结束这句话,

所以只要你不加英语的封号,就可以实现多行输入

就和上面创建表一样;

也可以仔细看一下我上面这段话,是不是和多行输入代码有点相似的东西,又有点不相似的东西

注释

说到创建表,就会有人好奇,-- 创建一个表,中的-- 是什么东西

这个就是MYSQL的注释

注释在sql语句中用来标识说明或者注意事项的部分,对sql的执行没有任何影响。因此,注释内容中无论是英文字母还是汉字都可以随意使用。

MYSQL注释分为单行注释和多行注释

单行注释:

单行注释可以使用 #注释符,#注释符后直接加注释内容。格式如下
#注释内容
单行注释使用注释符 # 的示例如下:

#创建一个测试库
create database test;

 

 单行注释可以使用 -- 注释符,-- 注释符后需要加一个空格,注释才能生效。格式如下:
-- 注释内容
单行注释使用注释符 -- 的实例如下:

-- 使用测试库
use test;

 

多行注释 

多行注释使用/**/注释符,/*用于注释内容的开头,*/用于注释内容的结尾。多行注释格式如下:
/*

第一行注释内容

第二行注释内容

*/

注释内容写在/*和*/之间,可以跨多行。

多行注释的使用示例如下:

/*创建一个测试表,里面有id和名字
create table test1(
id int;
name VARCHAR(4)
);*/

 任何注释(单行注释和多行注释)都可以插在sql语句中
在sql语句中插入单行注释,在sql语句中插入多行注释,如下所示:

-- 创建图书表2
create table library2(
-- 图书名称
library_title VARCHAR(4),
-- 图书作者
library_author VARCHAR(4),
/* 
图书价格
图书分类
*/
library_Price decimal(4,4),
library_type VARCHAR(4)
);

 

可以看到在多行注释符里面

就算是你输入的是sql语句,他也看不见

 查看表结构

创建完表格以后,我们可以看一下我们创建的表在MYSQL里面长什么样子

desc 表名;

下图就是表的组成成分

查看表

在创建完成后,我们可以查看当前数据库里面的表有哪些

show tables;

 这句sql语句和显示数据库的语句非常相似

同样使用show 并且是tables是复数形式

(这个表是我其他库的表,所以演示出来效果和上图演示建立的表不一样,不过这不重要)

 

 删除表

drop table 表名;

 

 删除表之后我们看一看,再次查询表,他会报错说表不存在,说明删除成功

注意:

删除表和删除库是一样的性质!   没有回收站!   一旦删除就无法找回!    谨慎操作!

删除表和删除库是一样的性质!   没有回收站!   一旦删除就无法找回!    谨慎操作!

删除表和删除库是一样的性质!   没有回收站!   一旦删除就无法找回!    谨慎操作!

如果你把库删了,但是不想动里面的表,那不好意思东西都没了

代码演示:

-- 使用库
use test2;--创建商品表
create table commodity(
-- 商品名称
commodity_name VARCHAR(20),
-- 商品价格,单位分
commodity_price decimal(11,2),
-- 商品库存
commodity_stock int,
-- 商品描述
commodity_details VARCHAR(100)
);--看一眼表
desc commodity;--删除库
drop database test2;--看所有库
show databases;--看表
desc commodity;

 使用test2这个库

 

创建表 

 

 看一眼表

删除库

 

看所有库

 

test2此时已经不存在了

相对应的它存储的表也不会存在

 看表

 不出意外,表不存在了

注意:

删库和删表绝对要谨慎!                                                                     删错没有回收站!

删库和删表绝对要谨慎!                                                                     删错没有回收站!

删库和删表绝对要谨慎!                                                                     删错没有回收站!

 练习题

文章看完了,该你动手了

1.设计一张商品表,包含以下字段:商品名称、商品价格、商品库存、商品描述

2.设计一张老师表,包含以下字段:姓名、年龄、身高、体重、性别、学历、生日、身份证号

3.设计一张图书表,包含以下字段:图书名称,图书作者、图书价格、图书分类

创建商品表
//设计一张商品表,包含以下字段:商品名称、商品价格、商品库存、商品描述-- 创建库,规定他的使用字符集为utf8mb4
create database test1101
default character set utf8mb4;--使用库
use test1101;--创建表
create table commodity(
-- 商品名称
commodity_name VARCHAR(20),
-- 商品价格,单位分
commodity_price decimal(11,2),
-- 商品库存
commodity_stock int,
-- 商品描述
commodity_details VARCHAR(100)
);//查看表
desc commodity;//设计一张老师表,包含以下字段:姓名、年龄、身高、体重、性别、学历、生日、身份证号-- 创建教师库
create database teacher1101
default character set utf8mb4;-- 使用教师库
use teacher1101;--创建教师表
create table teacher(
-- 姓名,考虑少数名族
teacher_name VARCHAR(20),
-- 年龄
teacher_age int,
-- 身高,双精度
teacher_hight double,
-- 体重,双精度
teacher_weight double,
-- 性别,一个汉字
teacher_Gender int,
-- 学历
teacher_education VARCHAR(8),
-- 生日,日期
teacher_birthday datetime,
-- 身份证号18位
teacher_ID VARCHAR(18)
);--查看表
desc teacher;//设计一张图书表,包含以下字段:图书名称,图书作者、图书价格、图书分类-- 创建图书库
create database library1101
default character set utf8mb4;-- 使用图书库
use library1101;-- 创建图书表
create table library(
-- 图书名称
library_title VARCHAR(20),
-- 图书作者
library_author VARCHAR(20),
-- 图书价格
library_Price decimal(11,2),
-- 图书分类
library_type VARCHAR(20)
);-- 显示表
desc library;

本文完,欢迎大家指出里面的错误,大家一起交流,互相学习,才能有所进步!

感谢观看 !


http://chatgpt.dhexx.cn/article/ZKWNySQZ.shtml

相关文章

Python之安装MySQLdb

Python连接mysql需要MySQLdb模块 一.环境 系统版本:windows10家庭版 Python版本: python3.7.1 IDE:sublime_text3 二.安装说明 如果是python 2.x版本的,在命令行输入执行:pip install MySQLdb即可安装成功如果是py…

DB SQL mysql

今天我们用10分钟,重点梳理一遍以下几方面: 数据库知识点汇总; 数据库事务特性和隔离级别; 详解关系型数据库、索引与锁机制; 数据库调优与最佳实践; 面试考察点及加分项。 知识点汇总 一、数据库的…

python -MySQLdb的安装与使用

MySQLdb是一款较为底层的,python连接mysql用的模块。和更加高级的,提供ORM的模块不同,MySQLdb主要还是聚焦于如何和数据库进行连接和进行基本的操作,操作的体现形式主要还是进行SQL语句的执行。 在Linux下 pip install MySQL-py…

数据库--mysql

数据库 《高性能Mysql(第三版)》 数据库三大范式、反模式 强调属性的原子性约束,要求属性具有原子性,不可再分解强调记录的唯一性约束,表必须有一个主键,并且没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主…

Python 如何安装 MySQLdb ?

人生苦短 我用python Python 标准数据库接口为 Python DB-API, Python DB-API为开发人员提供了数据库应用编程接口。 Python 数据库接口支持非常多的数据库, 你可以选择适合你项目的数据库: GadFlymSQLMySQLPostgreSQLMicrosoft SQL Serve…

MySQL——数据库

1.什么是数据库: 数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。 2.DSMS数据库管理系统: 数据库管理系统:数据库是通过DBMS创建和操作的容器。 数据库管理系统(DBMS&a…

数据库----MySQL

文章目录 常识常见数据库数据库结构SQL语句分类 事务事务的4个特性 ACID隔离级别事务处理**提交** **commit****回滚** **rollback** 常用操作库的常用操作建库删库查库使用库 表的常用操作创建表修改表删除表查看所有表查看表结构/设计表 表记录的常用操作插入记录查询记录修改…

数据库—mysql

提示:以下是本篇文章正文内容 一、InnoDB InnoDB 内部做了很多优化,包括从磁盘读取数据时采用的可预测性读,能够自动在内存中创建 hash 索引以加速读操作的自适应哈希索引,以及能够加速插入操作的插入缓冲区等。 InnoDB 支持真正…

MySQLdb安装与使用

一、MAC系统 1. 安装(使用pip命令) 【1】使用 easy_install pip命令安装pip 【2】安装成功,输入pip显示用法、命令行等信息;命令 which pip 可以查看安装位置 【3】要通过python连接mysql数据库,需要安装MySQLdb模块,该模块其实…

MYSQL 数据库

MySql数据库特点 1、开源数据库,不需要支付额外费用,项目上云首选; 2、关系型数据库,支持多条件场景查询; 3、支持多种存储引擎; MySql数据库语句执行步骤 1)创建连接,验证用户…

【Python】MySQLdb库的使用以及格式化输出字段中的值

一.项目简单介绍 我们获取字段的内容方式有很多种,但基本都要ctrlc(复制)ctrlv粘贴,然后还有手动去更改 而以python作为处理工具将会快很多,本项目需要安装的库:MySQLdb,pandas,numpy 比如我们想要在每个不同的值加上"" 而复制的数据为下图 那么我们每次都要在每行…

图片信息用浏览器显示:data:image/png;base64,+图片内容

最近看到若依图片验证码获取方式时,后台返回的是一串验证码字符串: 例如 /9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyM…

图片中隐藏信息——图片隐写术

https://www.jianshu.com/p/72f0d0953ca4 主要原理: 图片是由一个个像素组成的。每个像素由一组(r,g,b)值表示(png格式图片,多一个alpha透明度值)。而对于单个r,g或b,其范围在0~25…

android 获取图片信息 之 ExifInterface

Android--操作图片Exif信息 --------------------------------------------------------------------------------------- 作者:承香墨影 出处:http://plokmju.cnblogs.com/ 更多内容,请阅读本人新书:《Android深入浅出》 欢迎…

图片头文件信息解析

今天发现获取图片的宽高,并不需要把图片完全读完之后再来获取,而只需要读取文件头文件,几十个字节便可以读出文件的宽高。 图片的文件头部存储有该图片相关信息,可以从中读取相应字段,得到尺寸、大小、格式等信息。由于…

图片Exif信息解析(Java实现)

前言 可交换图像文件(Exchangeable Image File,Exif)信息图像在拍摄时保留的相关参数:比如图像信息(厂商,分辨率等),相机拍摄记录(ISO,白平衡,饱和度,锐度等…

java项目实战:处理图片水印,提取图片信息,生成excel表

在这次应用软件设计课程中,要求从今年的软件杯大赛上的项目选择一个实现。我选的是"网店工商信息提取",具体要求就是:从给出的带水印的图片中提取出企业名称和企业注册号,并根据这些信息生成excel表格。 刚刚开始以为这…

nodejs图片读取

response返回都是html/text,向前台输出一张图片用的image/jpeg,服务器读取图片的时候是按照binary的二进制方式读取,给客户端返回的时候也按照binary二进制的方式返回。 从服务器读取一张图片给客户端输出: 效果:输入localhost:…

[软件工具] 如何批量获取图片信息,尺寸、大小、路径、文件名,然后导出表格或者txt的文本,下面教你使用方法

前几天遇到一个比较棘手的需求: 如何获取几万张图片的大量的图片信息,如尺寸、大小、路径、文件名等等, 去看了百度 好多都是教写批处理的文件信息,对批处理不是很懂,写了几次都没成功 然后做这么一款软件&#xff…

APICloud框架——获取本地图片信息

api.getPicture 获取本地图片放置到服务器上或者在app中预览是app的基本功能,今天使用了APICloud框架的api.getPicture这个api获取到的本地图片预览在app中,就像上传qq头像一样,其实就是这个需求,获取本地照片(拍摄照片…