IE盒子

搜索
查看: 112|回复: 1

14天搞定Go语言,从0到1保姆级教程(第11天)Go语言数据 ...

[复制链接]

3

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2022-9-22 03:14:46 | 显示全部楼层 |阅读模式
学习了Go语言网络编程(14天搞定Go语言,从0到1保姆级教程(第十天)Go语言网络编程-Golang模板、JSON编码、JSON解析)。本篇将开始介绍Go语言数据库编程的学习。
随着网络逐渐融入人们的生活,Web数据库也逐渐显示出它的重要性,数据库在网站的建设中已经成为必不可少的重要部分。例如,客户资料、产品资料、交易记录、访问流量、财务分析等都离不开数据库系统的支持,数据库技术已经成为网络的核心技术,因此,主要讲解数据库的相关知识。
数据库介绍、MySQL数据库的使用、MySQL数据类型、SQL基础入门
学习目标
(1)能够了解数据库
(2)能够掌握MySQL数据库的使用
(3)能够掌握MySQL数据类型
(4)能够掌握文件常规操作
(5)能够掌握DDL语句基本用法
知识讲解
Ø 数据库介绍
数据库(Database)是存储信息的表的集合。简单来说,数据库可被视为电子化的文件柜——存储电子文件的地方,用户可以对文件中的数据进行添加、删除、更新、查询等操作。与普通的文件存储相比,MySQL具有安全性高、支持海量数据存储、利于数据信息的查询和管理、支持高并发访问等优点。
关系型数据库是当前商业开发中使用最多的数据库种类,它是建立在关系模型基础上的数据库。关系模型实际上是一个二维表格模型,它可以映射现实世界中各种实体以及实体之间的联系,因此,一个关系型数据库是由二维表及其之间的联系组成的一个数据组织。
实际开发中经常使用数据库管理系统(DBMS)来完成对数据库的操作,MySQL是一种开放源代码的关系型数据库管理系统,它使用结构化查询语言(SQL)进行数据库管理。 MySQL由于其体积小、速度快,一般中小型网站的开发都选择 MySQL 作为网站数据库。
Ø MySQL数据库的使用
在使用MySQL之前,首先要在操作系统中安装MySQL。本书在附录部分详细讲解了MySQL的安装,此处不再赘述。 接下来讲解MySQL的基本使用,包括如何启动服务、登录数据库和关闭服务等。
MySQL服务和MySQL数据库不同,MySQL服务是一系列的后台进程,而MySQL数据库是一系列的数据目录和数据文件; MySQL数据库必须在MySQL服务启动之后才可以进行访问。
Ø 服务启动和停止MySQL服务
此处以Windows操作系统为例,右键单击【计算机】,选择【管理】,打开计算机管理界面,如图所示。


在界面的左侧导航栏中,展开【服务和应用程序】,点击【服务】,会出现Windows的所有服务,找到MySQL,如图所示。


右键单击【MySQL】,如图所示。


图右键菜单中有启动和停止MySQL服务的选项,因为此时已经处于启动状态,所以启动选项为灰色。
另外,还可以通过DOS命令启动和停止MySQL服务,打开DOS命令行窗口,输入“net stop mysql”命令停止MySQL服务,如图所示。


需要启动MySQL服务时,输入“net start mysql”命令,如图所示。


Ø 登录和退出MySQL数据库
启动MySQL服务后,就可以登录并使用MySQL数据库。登录MySQL数据库有两种方式,用户可以选择通过命令行登录,也可以通过Command Line Client登录。
1.使用命令行登录退出
打开DOS命令行窗口,输入“mysql –uroot -p”命令,再输入密码,成功登录MySQL数据库,如图所示。


此时可以输入“show databases;”命令查看数据库中所有的库,如图所示。


使用完毕后,可以输入“exit;”命令退出MySQL数据库,如图所示。


2.使用Command Line Client登录退出
使用DOS命令行窗口登录和退出MySQL比较烦琐,可以使用更简单的方式登录,点击开始菜单中的【程序】,找到并单击【MySQL】,然后单击【MySQL Server 5.5】,如图所示。


打开“MySQL 5.5 Command Line Client”,如图所示。


输入MySQL的登录密码然后回车,成功登录MySQL数据库,如图所示。


使用完毕后,退出MySQL数据库与DOS命令行的退出方式一致,此处不再演示。
Ø MySQL数据库基本操作
列出数据库管理系统中所有的数据库列表,具体操作如下所示。


在安装MySQL时系统会自动创建几个数据库,一般都会有information_schema、mysql数据库;information_schema主要存储了系统中的一些数据库对象信息,比如用户表信息、列信息、权限信息、字符集信息、分区信息等。mysql存储了系统的用户权限信息。
切换到要操作的数据库,具体操作如下所示。


使用该命令后所有SQL命令都只针对该数据库。
显示指定数据库的所有表,具体操作如下所示。


使用该命令前需要使用 use 命令来选择要操作的数据库。
显示表定义时的结构,具体操作如下所示。


包括该表中每列(字段)的名称、该列的数据类型、该列的约束条件等。
MySQL数据类型
Ø 数值类型
MySQL支持所有标准SQL中的数值类型,其中包括严格数据类型(如INTEGER、SMALLINT、DECIMAL和NUMBERIC)、近似数值数据类型(如FLOAT、REAL和DOUBLE PRESISION)。作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。MySQL中不同数值类型所对应的字节大小和取值范围是不同的,具体如表所示。
类型大小范围(有符号)范围(无符号)用途
TINYINT1 字节(-128,127)(0,255) 2的8次方微小整数值
SMALLINT2 字节(-32 768,32 767)(0,65 535) 2的16次方小整数值
MEDIUMINT3 字节(-8 388 608,8 388 607)(0,16 777 215) 2的24次方中整数值
INT或INTEGER4 字节(-2 147 483 648,2 147 483 647)(0,4 294 967 295) 2的32次方大整数值
BIGINT8 字节(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
FLOAT4 字节(-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 字节(-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的值小数值

在表中,占用字节最小的是TINYINT,占用字节数最大的是BIGINT,DECIMAL类型的取值范围与M和D相关。M是表示有效数字数的精度。M的范围为1〜65。D是表示小数点后的位数。D的范围是0~30。MySQL要求D小于或等于(<=)P。
Ø 日期时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。最常用DATATIME类型。每个时间类型有一个有效值范围和一个"零"值,当指定MySQL不能表示的值时使用"零"值。这些日期时间类型有对应的字节数和取值范围等,具体如表所示。
类型大小(字节)范围格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3'-838:59:59'/'838:59:59'HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:00/2038结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07YYYYMMDD HHMMSS混合日期和时间值,时间戳
Ø 字符串类型
MySQL提供了8种基本的字符串类型,分别为CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 和SET类型,可以存储的范围从简单的一个字符到巨大的文本块或二进制字符串数据。常见的字符串类型所对应的字节大小和取值范围如表所示。
类型大小用途
CHAR0-255字节定长字符串
VARCHAR0-65535 字节变长字符串
TINYBLOB0-255字节不超过 255 个字符的二进制字符串
TINYTEXT0-255字节短文本字符串
BLOB0-65 535字节二进制形式的长文本数据
TEXT0-65 535字节长文本数据
MEDIUMBLOB0-16 777 215字节二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215字节中等长度文本数据
LONGBLOB0-4 294 967 295字节二进制形式的极大文本数据
LONGTEXT0-4 294 967 295字节极大文本数据
CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。最大长度和是否尾部空格被保留等方面也不同。它们在存储或检索过程中不进行大小写转换。
BINARY和VARBINARY类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而非字符型字符串。也就是说,它们没有字符集,并且按照二进制的值进行排序和比较。
BLOB是一个二进制大对象,可以容纳可变数量的数据。BLOB有4种类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。
TEXT有4种类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。这些对应4种BLOB类型,具有相同的最大长度和存储需求。
SQL基础入门
Ø SQL语言简介
结构化查询语言(Structured Query Language,SQL)是一种特殊目的的编程语言。
SQL是最重要的关系型数据库操作语言,用于存取数据以及查询、更新和管理关系数据库系统;SQL的影响力已经超出数据库领域,改语言得到其他领域的重视和采用,如人工智能领域的数据检索,第四代软件开发工具等。
Ø SQL分类
完整的结构化查询语言包含6个部分,或者说SQL语句有6个类别,如表所示。
简称全称汉语名称用途
DQLData Query Language数据查询语言用以从表中获得数据
DMLData Manipulate Language数据操作语言添加,修改和删除表中的行
DDLData Define Language数据定义语言创建、删除数据库和表
TPLTransaction Process Language事务处理语言同时执行多条SQL语句的情况
DCLData Control  Language数据控制语言获得许可,确定单个用户和用户组对数据库对象的访问。
CCLCursor Control Language指针控制语言用于对一个或多个表单独行的操作

学习SQL的重心应该放在DQL和DML语句上,尤其是DQL是重点及难点。
在数据库操作中常提到的CRUD是在做计算处理时的增加(Create)、查询(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写。CRUD主要被用在描述数据库的基本操作,相当于DQL + DML。
Ø DDL语句基本方法
1.创建数据库
语法结构如下所示。


执行结果如下所示。


Query OK表示执行成功。
如果创建已经存在的数据库,则会提示错误,如下所示。


表示创建数据库失败,因为该库已经存在。
操作数据库需要注意,数据库名不要使用中文,由于数据库中将来会存储一些非ascii字符, 所以务必指定字符编码, 一般都是指定utf-8编码。CHARSET 选择 utf8 COLLATION 选择 utf8_general_ci。mysql中字符集是utf8,不是utf-8。
2. 删除数据库
语法结构如下所示。


执行结果如下所示。


数据库删除后,该库中所有的表数据都会全部删除,所以删除前一定要仔细检查并做好备份工作。
3. 创建表
语法结构如下所示。


列名称、数据类型是必选项,而约束条件是可选项。
选择数据库引擎。有两种选择:InnoDB或MyISAM。如果要支持事务,需要选择InnoDB,MyISAM不支持事务;如果对该表的绝大多数操作都只是查询数据,而很少增、删、改,可以使用MyISAM,如果读写比较频繁,那么就得使用InnoDB数据库引擎。
4. 删除表
语法结构如下所示。


执行结果如下所示。


5. 修改表
(1)更改表名
语法结构如下所示。


执行结果如下所示。


(2)增加表字段(表中增加新列)
语法结构如下所示。


关键字 “COLUMN”  为可选项,可以省略不写。
执行结果如下所示。


(3)删除表字段
语法结构如下所示。


关键字 “COLUMN”  为可选项,可以省略不写。
下面先添加tel表,再删除,执行结果如下所示。





PS:梳理了Go语言数据库编程-数据库介绍、MySQL数据库的使用、MySQL数据类型、SQL基础入门的笔记和视频教程若有不懂或者想要全部笔记的可私信交流哦~
回复

使用道具 举报

2

主题

9

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 3 天前 | 显示全部楼层
不错 支持下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表