MySQL 库与表操作

 1.数据库介绍

数据库:存储和管理数据的软件系统;是用通俗易懂的语言可以理解为管理数据的软件,未学MySQL之前,我们会认识到excel,这也可以被认为是一种数据库

常见数据库有MySQL,SQL-Server,Redis,Myhabits

1.1数据库分类:关系型数据库/非关系型数据库

可以将数据库分类为关系型数据库与非关系型数据库

关系型数据库:以表格为基础的数据库,通过行列的组合来管理数据,其中MySQL,SQL server就是关系型数据库

非关系型数据库:往往不是以表格的形式进行存储数据,而是使用键值对/文档的形式进行存储数据,对数据存储的形式要求不是很严格,常见的非关系型数据库有Redis,MongoDB,HBase,都是使用非常广泛的数据库,这种类型的数据库在性能上比较出色,常常在分布式的场景中使用

1.2为什么学MySQL:因为MySQL开源免费;其他的数据库,类似于SQL server会要求客户端搭配Windows Server系统,还要搭配使用.net平台,比较麻烦;另外MySQL也是比较易学的数据库

1.SQL语句的使用,SQL本质上是一个“编程语言”,专门用来操作数据库的语言,SQl语言是各个数据库之间通用的,各种数据库使用的语言都是SQL(SQL是一门结构化的查询语言)熟悉了SQL语言之后各种数据库都可以很容易上手了

2.针对数据库进行编程,使用Java来操作数据库,也就是我们听闻的jdbc,在这个过程中也是会使用到SQL语句的 

MySQL是一个“客户端-服务器”结构的程序

客户端(client):主动发起请求的一方

服务器(server):被动接受请求的一方

请求(request):客户端主动给服务器发的数据

响应(response):服务器给客户端返回的数据

MySQL是基于网络通信的数据库:

1.服务器能否知道客户端什么时候给他发请求?

不能,服务器是被动的一方;所以一个专业的服务器往往要7*24小时运行,来应对随时到来的客户端请求

2.服务器是只给一个客户端提供服务嘛?还是要给多个客户端提供服务?

多个客户端!那我们可以提出一个问题:一个客户端可以对应多个服务器嘛?理论上是可以的,但是很少见,大部分的客户端都是访问一个服务器就够了

2.MySQL其实涉及到两个部分:客户端,服务器端,在MySQL官网直接下载即可

可以直接把客户端-服务器端安在两个不同电脑上,也可以安装在同一台主机上,在我们学习阶段就安装在同一台主机上,选择第二个MySQL打开,第一个是图形化界面MySQL,我们使用命令行模式,输入在安装时设置的密码即可进入

2.1输入密码之后的界面

2.2MySQL数据结构

MySQL的数据可以这样分层:数据库->表->列->行

一个MySQL可以有多个数据库

一个数据库可以有多个表

一个表可以有多个列

一个列可以有多个行

通过具体的SQL语句可以更深刻的理解MySQL中的结构

3.操作数据库

3.1查看现有数据库:show databases;

可以看到 8 rows in set (0.01 sec),这代表着查出来了8行用了 0.01秒 无限接近于0

注意:像其中的information_schema/performance_schema/sakila/sys/world 一般都是MySQL自带的数据库,如果删除了出现问题可能得卸载重装

如果语句输入错误,我们一定要会看信息

大概可以猜出意思 databases 拼写错误,还有一些常见错误是 忘记分号以及分号或者分号是中文

3.2创建数据库:create database 数据库名;

在这里我们看到了jjj数据库被创建成功

注意:创建数据库时,数据库名不能和其他数据库名字一致,也不能是关键字,如果业务要求必须是关键字,可以使用`` 反引号引出数据库名

创建数据库时还可以指定字符集(在某些字符集中汉字有可能占3个字节,也有可能占2个字节,这取决于你使用何种类型的的字符集):create database java charset utf8;

MySQL5.7默认使用拉丁文字符集不支持中文,MySQL8默认使用utf8,支持所有语言

MySQL的utf8其实不是完全体,比完全体的utf8少了emoji表情,但是MySQL提供了utf8mb4这样的字符集,这是MySQL所特有的字符集

3.3使用/选中 数据库:use 数据库名;

3.4.删除数据库:drop database 数据库名;

删除数据库非常危险,MySQL没有回收站的概念,这对自己和公司都是毁灭性的打击,一般公司会有权限或者备份,但也不要有这种危险的思想

上述操作是整体操作数据库,接下来讲述具体操作数据库内部的操作

我们在上面说了数据库中有很多表

在创建表之前我们先认识一下SQL语言的数据类型:

数据类型-SQL

1.数值类型(整型+浮点型)

类型大小范围(有符号)范围(无符号)用途
TINYINT1 Bytes(-128,127)(0,255)小整数值
SMALLINT2 Bytes(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT3 Bytes(-8 388 608,8 388 607)(0,16 777 215)大整数值
INT或INTEGER4 Bytes(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
BIGINT8 Bytes(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
FLOAT4 Bytes(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度
浮点数值
DOUBLE8 Bytes(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度
浮点数值
DECIMALDECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值
常见的有 INT BIGINT FLOAT DOUBLE DECIMAL(*,*),demical(3,1)代表着小数长度位3,小数点后保留1位,例如22.1,99.3,77.3都符合该数据类型

 2.日期类型

类型大小
( bytes)
范围格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3'-838:59:59'/'838:59:59'HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME8'1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'YYYY-MM-DD hh:mm:ss混合日期和时间值
TIMESTAMP4

'1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC

结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

YYYY-MM-DD hh:mm:ss混合日期和时间值,时间戳
DATETIME和TIMESTAMP 中较为常见的是TIMESTAMP 也就是我们常见的时间戳

 3.字符串类型

类型大小用途
CHAR0-255 bytes定长字符串
VARCHAR0-65535 bytes变长字符串
TINYBLOB0-255 bytes不超过 255 个字符的二进制字符串
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据
常见的有:VARCHAR(20),里面代表的是20个字节,VARCHAR有自适应机制,可以自动扩容,在开发中更多地使用VARCHAR
BLOB是用来存储的二进制数据,增删查改对二进制数据来说效率比较低下,所以平时会很少使用到,除非是一些特殊情况

表操作:

1.列出当前数据库的表:show tables;

2.创建表:create table 表名(列名 类型,列名 类型,列名 类型,.....);

create table ttt(t1 varchar(20),t2 blob,t3 decimal(3,1),t4 timestamp);

desc ttt; 查看该表

同一个表中的列名不能重复

3.查看该表结构:desc 表名;

desc代表着describe表示的意思,后面也会有desc,不过会代表着descand降序。下表中Type代表着数据类型,field代表着字段的含义,null/key/default/extra后面再讲,这涉及到主键之类的限制

4.删除表:drop table 表名;

comment是注释的意思,只在创建表时有效果,在之后查看表是没有注释的

删除数据表是比删除数据库更为严重的问题,有可能很久之后才发现问题,此时就是造成更深远影响,会损失更多的钱财,所以平时要慎重

下一期我们会详细介绍CRUD

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在docker中操作mysql并创建库表,您可以按照以下步骤进行操作: 1. 首先,通过docker命令查看所有正在运行的实例。使用命令`docker ps`可以列出正在运行的docker容器实例。 2. 运行一个mysql容器,并将它映射到主机的3306端口。您可以使用以下命令来创建并运行mysql容器: ``` docker run -d -p 3306:3306 --name mysql -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql ``` 3. 进入mysql容器。通过以下命令进入正在运行的mysql容器: ``` docker exec -it <CONTAINER_ID> /bin/bash ``` 其中,`<CONTAINER_ID>`是mysql容器的ID。 4. 在mysql容器中,您可以使用mysql客户端来创建库表。运行以下命令以启动mysql客户端: ``` mysql -u root -p ``` 输入之前设置的root密码(在上面的示例中为123456)。 5. 进入mysql客户端后,您可以使用标准的mysql语句来创建库表。例如,要创建一个数据库,可以运行以下命令: ``` CREATE DATABASE mydatabase; ``` 要在该数据库中创建表,可以使用`USE`语句选择该数据库,然后使用`CREATE TABLE`语句创建表格。 请注意,这些步骤假设您已经安装并配置了docker,并且已经下载了mysql镜像。此外,您还需要调整命令中的路径和参数以适应您的环境和需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Docker 安装MySql后创库、创表](https://blog.csdn.net/Lin_FFF/article/details/128436646)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值