数据库------MYSQL

目录

数据库

关系型数据库

非关系型数据库

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;

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

感谢观看 !

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值