目录

数据库

关系型数据库

非关系型数据库

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;

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

感谢观看 !

数据库------MYSQL相关推荐

  1. linux笔记本没有insert,无法在Linux中将UTF8插入数据库MySQL(Can not insert UTF8 to Database MySQL in Linux)...

    无法在Linux中将UTF8插入数据库MySQL(Can not insert UTF8 to Database MySQL in Linux) 当创建表时,我已经设置了charset = utf8. ...

  2. 数据库MYSQL学习系列三

    数据库MYSQL学习系列三 三.MYSQL事务与存储引擎 3.1-数据库事务 什么是事务 一系列有序的数据库操作: o要么全部成功 o要么全部回退到操作前的状态 o中间状态对其他连接不可见 事务的 ...

  3. mysql数据库64免安装_MYSQL数据库mysql 5.7.18 winx64 免安装 配置方法

    <MysqL数据库MysqL 5.7.18 winx64 免安装 配置方法>要点: 本文介绍了MysqL数据库MysqL 5.7.18 winx64 免安装 配置方法,希望对您有用.如果有 ...

  4. mysql 分区指定路径_[数据库]MySQL 指定各分区路径

    [数据库]MySQL 指定各分区路径 0 2016-11-08 18:00:44 介绍 可以针对分区表的每个分区指定各自的存储路径,对于innodb存储引擎的表只能指定数据路径,因为数据和索引是存储在 ...

  5. mysql利用触发器删除数据库_[数据库]mysql 触发器的创建 修改 删除

    [数据库]mysql 触发器的创建 修改 删除 0 2015-12-16 23:00:04 //做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 '日记本的回忆' ...

  6. 解决向数据库mysql插入double数据小数点不显示问题

    解决向数据库mysql插入double数据小数点不显示问题 参考文章: (1)解决向数据库mysql插入double数据小数点不显示问题 (2)https://www.cnblogs.com/sovi ...

  7. mysql存储的判断if_if在数据库mysql存储中判断

    我们经常会对一个事物作出选择,就如屏幕前的小伙伴们选择继续浏览本篇文章,或者关闭这个界面,这就是我们所说的判断.当然看文章的判断条件是,文章的内容是否符合小伙伴们的兴趣.今天我们就数据库mysql存储 ...

  8. mysql数据库可以升级吗_[数据库]MySQL升级

    [数据库]MySQL升级 0 2016-08-16 22:00:18 MySQL的升级相对来说还是比较简单的. 它支持两种方式的升级: 原地升级(In-place Upgrade) 关闭数据库,替换旧 ...

  9. 数据库MYSQL学习系列一

    数据库MYSQL学习系列一 一.MYSQL数据库基础 1.1-认识MYSQL 什么是数据库 计算机处理和存储的一切信息都是数据 计算机系统中一种用于存取数据的程序 一种: 计算机系统中有很多种能够存取 ...

  10. 大数据之数据库mysql优化实战(一)

    2019独角兽企业重金招聘Python工程师标准>>> :facepunch: 大数据之数据库mysql优化实战(一) 首先你要有数据,不然怎么测试,几百条就算了,还没跑就完了. 本 ...

最新文章

  1. Android中SharedPreferences与Editor的使用
  2. DataGrid多行数据的展示和编辑(6)
  3. 并发编程实战——锁分段
  4. 关于RICHEDIT的两个问题
  5. tenda 服务器无法打开网页,Win7系统网页打不开qq能上怎么办? | 192路由网
  6. PAT乙级1003我要通过!
  7. ArrayList 类方法toArray的一点疑惑
  8. 《从零开始学Swift》学习笔记(Day 62)——Core Foundation框架之内存托管对象与非托管对象...
  9. Java学习笔记-函数
  10. tcpcopy,模拟在线MySQL压力测试的好帮手
  11. 公司打卡少几秒分析--学会拒绝,学会选择
  12. Axure建立自己的元件库(超详细)
  13. matlab 加权残值法,分步迭代加权残值法
  14. Remote Desktop Connection Manager (RDCMan) 介绍
  15. 幅相曲线渐近线_第十讲 频域分析法(Nyquist曲线)
  16. matlab读写xlsx文件
  17. 北京邮电大学计算机导论试题,2020年秋季《北京邮电大学网络教育》各种考试题目汇总.docx...
  18. Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能。(ArrayList,SQLite)
  19. 如何用Java微信扫码实现签到_详解JAVA后端实现统一扫码支付:微信篇
  20. 美创科技入选第九届CNCERT网络安全应急服务支撑单位

热门文章

  1. NOIP2018D1T3赛道修建
  2. 基于vtkVoxelContoursToSurfaceFilter实现勾画图像的轮廓线面重建
  3. MATLAB仿真判断系统是否为线性时不变系统
  4. 文本生成 | 一篇带风格的标题生成的经典工作
  5. f49.in index.php,国家语言,语言代码,locale id对应表
  6. SQL优化--not in和or出的问题
  7. 【P2P网络】DHT协议基础1:Kademlia翻译稿
  8. vue3 使用富文本tinymce-vue
  9. 关于The C10K problem的一些资料
  10. 深入浅出Spring源码:IOC原理解析(一)