当前位置: 首页 > news >正文

【Gorm】传统sql的增删查改,通过go去操作sql

       MySQL中的建库,建表,删库,删表,添加记录,查询,删除记录,更新记录这些命令是一定要回的,就算我们脱离 orm 这些,也能直接连接上数据库进行操作。

一、数据库的操作

# 查询全部的数据库
show databases;# 创建数据库,并制定字符集和排序方式
create database grom_new_dbcharaceter set utf8mb4collate utf8mb4_unicode_ci;# 选中数据库
use grom_new_db;# 删除数据库
drop databases grom_new_db;

二、表的操作

# 查询当前库的所有表
show tables;# 建表
create table users(id bigint unsigned auto_increment primary key,name varchar(50) not null default '',age int unsigned not null default 0,email varchar(50) not null default '',create_at datetime default current_timestamp,updata_at datetime default current_timestamp on update current_timestamp
) engine = innodbdefault charset = utf8mb4collate = utf8mb4_unicode_ci;# 插入数据
insert into users (name, age, email)
values ('张三', 18, 'zhangsan@qq.com'),('李四', 22, 'lisi@qq.com');# 查询数据
select * from users;# 删除数据
delete from users where id = 1;# 更新数据
updata users set name = '张三丰', age = 19 where id = 2;# 删除表
drop table users;

三、通过go去操作sql

db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/gorm_new_db")
if err != nil {log.Fatalf("数据库连接失败 %s", err)
}

3.1 安装驱动

go get -u github.com/go-sql-driver/mysql

3.2 连接

在连接数据库的时候,我们需要使用一句连接字符串,格式如下:

username:password@protocol(address)/dbname?param=value

各部分解释:

  1. username:password:数据库的用户名和密码
  2. @protocol(address) :指定连接协议和数据库服务器的地址。
  3. /dbname:要连接的数据库名

3.3 执行sql

我们除了查询语句之后,其他的语句全是使用 Exac 函数,代码如下:

func main() 
{// 连接数据库db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/gorm_new_db")if err != nil {log.Fatalf("数据库连接失败 %s", err)}defer db.close()_, err := db.Exec("CREATE TABLE userss1(id INT NOT NULL , name VARCHAR(20), PRIMARY KEY(ID));")if err2 != nil {log.Fatal(err2)}fmt.Println("successfully create table")
}

3.4 查询sql

当使用到查询语句的时候,我们可以使用 Query 函数

func main() {// 连接数据库db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/gorm_new_db")if err != nil {log.Fatalf("数据库连接失败 %s", err)   }defer db.close()    res, err := db.Query("select id, name from users")for res.Next() {var id intvar name string// 这里 scan 的字段要对上err = res.Scan(&id, &name)fmt.Println(id, name, err)}
}

我们也可以使用 QueryRow 函数去查一行的数据,代码如下:

func main() {// 连接数据库db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/gorm_new_db")if err != nil {log.Fatalf("数据库连接失败 %s", err)}defer db.close()var id intvar name string// 这里scan的字段要对上err = db.QueryRow("select id, name from users").Scan(&id, &name)fmt.Println(id, name, err)
}

相关文章:

【Gorm】传统sql的增删查改,通过go去操作sql

MySQL中的建库,建表,删库,删表,添加记录,查询,删除记录,更新记录这些命令是一定要回的,就算我们脱离 orm 这些,也能直接连接上数据库进行操作。 一、数据库的操作 # 查…...

HTML小阶段二维表和思维导图

下面是对标签、元素、属性的对比二维表,通过对比3w1h(what是什么、where用在哪、why为什么要用、how如何用)来学习区分学习标签、元素、属性 标签 元素 属性 what (Tags)标签是用来标记内容块或标明元素内容意义 …...

AI与低代码的碰撞:企业数字化转型的新引擎

引言 在当今的商业环境中,企业数字化转型已从选择题变成了必答题。面对日益复杂的市场竞争和不断变化的客户需求,传统的开发模式常常显得力不从心——开发周期冗长、技术门槛高、成本居高不下,企业很难快速响应市场变化。而在这种背景下&…...

HarmonyOS应用开发者基础认证——初级闯关习题参考答案大全

相关文章 HarmonyOS应用开发者中级认证——中级闯关习题参考答案大全 HarmonyOS应用开发者高级认证——高级闯关习题参考答案大全 文章目录 HarmonyOS第一课 HarmonyOS介绍判断题单选题多选题 HarmonyOS第一课 DevEco Studio的使用判断题单选题多选题 HarmonyOS第一课 ArkTS语法…...

Vue背景图片自适应大屏与小屏

1&#xff0c;父绝子相 效果是台式看的更多&#xff0c;笔记本看部分。但是图片不会变形 <div class"father" style"width:100%; position:relative"> <img src"test.png" class"son" style"width:1920px; position:a…...

MongoDB 8.0.3版本安装教程

MongoDB 8.0.3版本安装教程 一、下载安装 1.进入官网 2.选择社区版 3.点击下载 4.下载完成后点击安装 5.同意协议&#xff0c;下一步 6.选择第二个Custon&#xff0c;自定义安装 7.选择安装路径 &#xff01;记住安装路径 8.默认&#xff0c;下一步 9.取…...

【C语言】预处理(预编译)详解(下)(C语言最终篇)

文章目录 一、#和##1.#运算符2.##运算符 二、预处理指令#undef三、条件编译1.单分支条件编译2.多分支条件编译3.判断符号是否被定义4.判断符号是否没有被定义 四、头文件的包含1.库头文件的包含2.本地头文件的包含3.嵌套包含头文件的解决方法使用条件编译指令使用预处理指令#pr…...

[Linux] linux 软硬链接与动静态库

标题&#xff1a;[Linux] linux 软硬链接与动静态库 个人主页水墨不写bug &#xff08;图片来源于网络&#xff09; /** _oo0oo_* o8888888o* 88" . "88* (| -_- |)* …...

GitHub Actions的 CI/CD

GitHub Actions 是一个强大的 CI/CD 工具&#xff0c;适用于自动化各种开发任务。GitHub Actions 的原理是基于事件驱动的自动化流水线工具&#xff0c;通过定义触发条件和执行步骤&#xff0c;可以让项目在特定条件下自动运行一系列操作&#xff0c;比如构建、测试、部署等。 …...

doris 表结构批量导出

导出 test 数据库中的 table1 表&#xff1a;mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces --databases test --tables table1 导出 test 数据库中的 table1 表结构&#xff1a;mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces --databases test --tables tab…...

linux查看文件命令

查看文件命令 显示命令 cat 语法&#xff1a;cat 【选项】 文件 选项 命令含义n显示行号包括空行b显示行号不包括空行s压缩空行为一行A显示隐藏字符 cat -n 文件&#xff1a;显示行号包括空行 cat -b 文件 cat -s 文件 cat -A 文件 more和less是 分页查看 tac和rev都…...

【2023工业图像异常检测文献】DiAD: 基于扩散模型的多类异常检测方法

DiAD: A Diffusion-based Framework for Multi-class Anomaly Detection 1、Background 当前主流的三种异常检测方法&#xff1a; 基于合成的方法&#xff1a;在正常图像上合成异常&#xff0c;通过训练模型识别这些合成的异常来提高检测和定位能力。基于嵌入的方法&#xff…...

三相继电保护机 继电器保护校验仪 微机继电保护测试仪

性能特点 电压电流输出灵活组合 输出达4相电压3相电流&#xff0c;可各种组合实现常规4相电压3相电流型输出模式&#xff0c;既可兼容传统的各种试验方式&#xff0c;也可方便地进行三相变压器差动试验和厂用电快切和备自投试验。 操作方式装置直接外接笔记本电脑或台式机进行…...

MyEclipse中讲解Git使用——结合GitLab

1、什么是Git Git是分布式版本控制系统 Git是一款免费、开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 2、在myeclipse安装Git插件 下载该文件&#xff0c;将egit.zip解压放入 myeclipse安装路径>dropins>下重新启动myeclipse EGit -…...

pdf转为txt文本格式并使用base64加密输出数据

第一步&#xff0c;pom.xml中引入jar包 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</version></dependency> 第二步 package org.example.test.example.changefile;…...

SpringBoot篇(运维实用篇 - 临时属性)

目录 一、临时属性设置 1. 简介 2. 属性加载优先级 那是否还有其他的配置方式呢&#xff1f; 3. 知识小结 二、开发环境中使用临时属性 1. 如何操作 2. 知识小结 3. 思考 三、配置文件分类 1. 简介 2. 4个级别 3. 为什么设计多种配置文件&#xff1f; 一个典型的应…...

MySQL定时异机备份

场景&#xff1a;将A机器MySQL数据库部分表每日定时备份到B机器上 &#xff08;只适用于Linux&#xff09; 实现方式算是比简单了&#xff0c;就是用mysqldump生成文件&#xff0c;使用scp命令传输到另一台机器上。 1. 编写备份shell脚本 在A机器新建脚本 (当然没有vim的话vi…...

MMA: Multi-Modal Adapter for Vision-Language Models

两个观察 图1所示。各种基于transformer的CLIP模型中不同层的数据集级识别精度。这个实验是为了确定样本属于哪个数据集。我们用不同的种子运行了三次&#xff0c;并报告了每层识别精度的平均值和标准差。 X E m b e d XEmbed XEmbed是指变压器块之前的文本或图像嵌入层&#x…...

uniapp通过id获取div的宽度,高度,位置等(应该是 任意平台都通用 )

uniapp通过id获取div的宽度&#xff0c;高度&#xff0c;位置等&#xff08;应该是 任意平台都通用 &#xff09; <template><view class"" id"domId"></view> </template>// 如果获取的dome高度等不对&#xff0c;还需要加上延迟…...

Python Transformer 模型的基本原理:BERT 和 GPT 以及它们在情感分析中的应用

Transformer 模型的基本原理&#xff1a;BERT 和 GPT 以及它们在情感分析中的应用 近年来&#xff0c;Transformer 模型在自然语言处理&#xff08;NLP&#xff09;领域取得了巨大成功&#xff0c;为任务如翻译、生成文本、问答和情感分析带来了显著的性能提升。本文将介绍 Tr…...

【云原生】Kubernets1.29部署StorageClass-NFS作为存储类,动态创建pvc(已存在NFS服务端)

文章目录 在写redis集群搭建的时候,有提到过使用nfs做storageclass,那时候kubernetes是1.20版本,https://dongweizhen.blog.csdn.net/article/details/130651727 现在使用的是kubernetes 1.29版本,根据之前的修改方式并未生效,反而提示:Error: invalid argument "Re…...

使用 Pandas 进行时间序列分析的 10个关键点

使用Pandas进行时间序列分析的10个关键点&#xff08;由于篇幅限制&#xff0c;这里调整为10个&#xff0c;但实际操作中可能涉及更多细节&#xff09;如下&#xff1a; 1. 创建时间序列数据 时间序列数据是指在多个时间点上形成的数值序列。在Pandas中&#xff0c;可以使用t…...

使用 Mermaid 语言描述 AGI 系统架构图

使用Mermaid语言描述AGI系统架构图 一、整体架构概述 以下是一个简化的AGI&#xff08;Artificial General Intelligence&#xff0c;通用人工智能&#xff09;系统架构的Mermaid描述。该系统主要包括数据收集与预处理、模型训练、推理与决策以及交互接口等模块&#xff0c;各…...

绘制线性可分支持向量机决策边界图 代码解析

### 绘制线性可分支持向量机决策边界图 def plot_classifer(model, X, y):# 超参数边界x_min -7x_max 12y_min -12y_max -1step 0.05# meshgridxx, yy np.meshgrid(np.arange(x_min, x_max, step),np.arange(y_min, y_max, step))# 模型预测z model.predict(np.c_[xx.ra…...

No.23 笔记 | WEB安全 - 任意文件漏洞 part 5

本文全面且深入地探讨了文件上传漏洞相关知识。从基础概念出发&#xff0c;清晰地阐述了文件上传漏洞的定义及其产生的本质原因&#xff0c;同时列出了该漏洞成立的必要条件。详细说明了文件上传漏洞可能对服务器控制权、网站安全以及业务运营带来的严重危害。 文中还深入解析了…...

EasyPlayer.js网页播放器,支持FLV、HLS、WebSocket、WebRTC、H.264/H.265、MP4、ts各种音视频流播放

EasyPlayer.js功能&#xff1a; 1、支持解码H.264视频(Baseline, Main, High Profile全支持&#xff0c;支持解码B帧视频) 2、支持解码H.265视频&#xff08;flv id 12&#xff09; 3、支持解码AAC音频(LC,HE,HEv2 Profile全支持) 4、支持解码MP3音频以及Speex音频格式 5、可…...

WPF数据绑定的五大模式

WPF&#xff08;Windows Presentation Foundation&#xff09;是微软推出的一种用于构建Windows用户界面的UI框架。它支持数据绑定&#xff0c;允许开发者将UI元素与数据源绑定&#xff0c;从而实现数据和界面的自动同步。WPF数据绑定有几种不同的模式&#xff0c; 以下是五种…...

从零到一:大学新生编程入门攻略与成长指南

文章目录 每日一句正能量前言编程语言选择&#xff1a;为大学新生量身定制Python&#xff1a;简单而强大的选择JavaScript&#xff1a;Web开发的基石Java&#xff1a;面向对象的经典C#&#xff1a;微软的全能选手 学习资源推荐&#xff1a;编程学习的宝藏在线课程教程和文档书籍…...

详细分析Pytorch中的transpose基本知识(附Demo)| 对比 permute

目录 前言1. 基本知识2. Demo 前言 原先的permute推荐阅读&#xff1a;详细分析Pytorch中的permute基本知识&#xff08;附Demo&#xff09; 1. 基本知识 transpose 是 PyTorch 中用于交换张量维度的函数&#xff0c;特别是用于二维张量&#xff08;矩阵&#xff09;的转置操…...

初识WebGL

思路&#xff1a; 构建<canvas>画布节点&#xff0c;获取其的实例。使用getWebGLContext() 拿到画布上下文。拿到上下文用clearColor() 设置背景颜色。最后清空canvas画布,是为了清除颜色缓冲区。 html结构&#xff1a; <!DOCTYPE html> <html lang"en&…...

网站建设的基础/网站优化基本技巧

这里主要梳理一下作业的主要内容和思路&#xff0c;完整作业文件可参考: https://github.com/pandenghuang/Andrew-Ng-Deep-Learning-notes/tree/master/assignments/C4W2/Excercise/KerasTutorial 作业完整截图&#xff0c;参考本文结尾&#xff1a;作业完整截图。 Residua…...

jsp动态网站开发与实例pdf/3d建模培训学校哪家好

阮一峰的个人网站&#xff1a; 传送门 《未来世界的幸存者》&#xff1a;传送门 书籍_《未来世界的幸存者》阮一峰--1/5  传送门 书籍_《未来世界的幸存者》阮一峰--2/5  传送门 书籍_《未来世界的幸存者》阮一峰--3/5  传送门 书籍_《未来世界的幸存者》阮一峰--4/5  …...

无法定位 wordpress 根目录./seo策略工具

一直以来&#xff0c;我们在网页上都是使用图片作为表情。但是图片表情使用起来麻烦&#xff0c;同时衍生了css sprite技术&#xff08;雪碧图&#xff0c;就是很多个小图片拼接成一张大图片&#xff09;。但其实unicode编码中就定义了大量的表情符号&#xff0c;而且你还可以使…...

威海好的网站建设公司哪家好/公众号推广费用一般多少

测试一口吧! 运行代码转载于:https://www.cnblogs.com/a6948076/p/9909800.html...

郑州小程序开发多少钱/宁波seo营销

C中的::的作用 2018-06-08 13:47:46 一米阳光-ing 阅读数 8036更多 分类专栏&#xff1a; C/C (1)作用域限定符&#xff0c;当在类体中直接定义函数时&#xff0c;不需要在函数名字的前面加上类名&#xff0c;但是在类体外实现函数定义的时候&#xff0c;必须加上类名并且加…...

软件下载网站 知乎/搜索引擎免费登录入口

1.安装查看是否安装了FTP&#xff1a;rpm -qa|grep vsftpd安装&#xff1a;yum -y install vsftpdchkconfig vsftpd on 启动vsftpd&#xff1a; systemctl start vsftpd.service vsftpd几种用户&#xff1a;本地用户、虚拟用户、匿名用户。 主动模式、被动模式&#xff1a; POR…...