golang에서 mysql 데이터를 조작하는 방법
현대 소프트웨어 엔지니어링에서는 효율적이고 안정적인 서버 애플리케이션을 구축하는 데 필요한 기술에 대한 수요가 높습니다. 그 중 Go 언어를 사용하여 관계형 데이터베이스를 호출하는 것은 필수적인 기초입니다. 이 기사에서는 Go 언어의 표준 패키지를 사용하여 MySQL 데이터를 쿼리하고 삽입합니다.
MySQL이란 무엇입니까
MySQL은 인터넷 인프라에서 널리 사용되는 관계형 데이터베이스 관리 시스템으로 Oracle Corporation의 후원으로 개발되었습니다. Go 언어를 포함한 여러 운영 체제와 프로그래밍 언어를 지원하며 대규모 데이터 통합 및 고성능 쿼리를 지원하는 일련의 기능을 갖추고 있습니다.
MySQL 데이터는 테이블을 기반으로 합니다. 데이터의 한 행은 하나의 레코드에 해당하고, 데이터의 한 열은 하나의 필드에 해당합니다. SQL 언어를 사용하여 데이터 작업을 수행하며 가장 일반적인 SQL 작업에는 SELECT, INSERT, UPDATE, DELETE 및 CREATE TABLE이 포함됩니다.
Go 언어의 MySQL 드라이버
Go 언어에서는 타사 MySQL 드라이버를 사용하여 MySQL 데이터베이스에 연결하고 쿼리할 수 있습니다. 그러나 GO 언어 표준 라이브러리에는 이미 database/sql
패키지가 포함되어 있습니다. 이 패키지는 표준 SQL 데이터베이스 인터페이스를 구현했으며 MySQL, PostgreSQL 및 SQLite 등을 포함한 다른 편리하고 널리 사용되는 SQL 데이터베이스와 상호 작용할 수 있습니다. database/sql
包,这个包已经实现了标准的 SQL 数据库接口,可以和其他方便的流行的 SQL 数据库交互操作,包括 MySQL、PostgreSQL 和 SQLite 等。
因此,在我们开始构建查询 MySQL 的 Go 应用程序之前,我们需要安装 MySql 驱动程序。可以使用命令行命令 go get -u github.com/go-sql-driver/mysql
快捷安装。
这是因为在 Go 语言中,所有的数据访问都需通过 SQL.DB
连接进行。并且驱动程序的目的是用来实现 database/sql
的功能中那样的的接口约定。
建立连接
在 Go 语言中,建立到 MySQL 数据库的连接是基于连接字符串的,连接字符串包含连接 MySQL 所需的所有参数,如用户名、密码、主机名或 IP 地址、端口号和数据库名称等。
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname") if err != nil { log.Fatal(err) }
查询数据
在 Go 语言中,可以使用 db.Query()
、db.QueryRow()
和 db.Exec()
函数查询和操作 MySQL 数据库中的数据。
db.Query()
函数用于查询多条记录,返回一个 *sql.Rows
对象。db.QueryRow()
函数用于查询单条记录,返回一个 *sql.Row
对象,类似于 resultset
,但是它只返回第一行记录,通常用于查询单个唯一记录。db.Exec()
函数用于执行非查询 SQL 语句,例如 INSERT、UPDATE 和 DELETE,返回一个 sql.Result
对象。
在本例中,我们使用 db.Query()
函数来查询所有记录。我们将使用一个简单的计数器来统计记录的数量,并将每行数据打印到控制台。
rows, err := db.Query("SELECT id, name FROM users") if err != nil { log.Fatal(err) } defer rows.Close() count := 0 for rows.Next() { var id int var name string if err := rows.Scan(&id, &name); err != nil { log.Fatal(err) } fmt.Printf("id=%d, name=%s\n", id, name) count++ } if err := rows.Err(); err != nil { log.Fatal(err) } fmt.Printf("Found %d users\n", count)
必须在检索数据后调用 rows.Close()
函数以释放与 *sql.Rows
关联的数据库资源。同时,代码中使用了 rows.Next()
函数,它返回一个布尔值,指示是否还有更多的行可以进行处理。另外,在这个例子中使用了 rows.Scan()
函数将每行记录的值复制到这个例子中定义的 id
和 name
变量中,然后在控制台中打印每个值。
插入数据
我们也可以使用 Go 语言插入数据到 MySQL 数据库中,最简单的方法使用 db.Exec()
函数。我们可以将插入语句传递到 db.Exec()
函数中,它将以 SQL 语句的形式在 MySQL 中执行。
result, err := db.Exec("INSERT INTO users(name, email) VALUES('John Doe', 'johndoe@gmail.com')") if err != nil { log.Fatal(err) } rowsAffected, err := result.RowsAffected() if err != nil { log.Fatal(err) } fmt.Printf("Inserted %d rows into users table\n", rowsAffected)
我们可以使用 result.RowsAffected()
获取结果集中受影响的行数,并使用该数值在控制台中打印更新数据的数量。
总结
在本文中,我们介绍了使用 Go 语言进行 MySQL 数据库的基础查询操作。我们了解了如何使用标准库 database/sql
和第三方 MySQL 驱动程序,建立连接并查询数据。我们还了解了如何插入数据,使用 db.Exec()
go get -u github.com/go-sql-driver/mysql
명령줄 명령을 사용할 수 있습니다. 🎜🎜Go 언어에서는 모든 데이터 접근이 SQL.DB
연결을 통해서 이루어져야 하기 때문입니다. 그리고 드라이버의 목적은 database/sql
의 함수에서 인터페이스 규칙을 구현하는 것입니다. 🎜🎜🎜연결 설정🎜🎜🎜Go 언어에서 MySQL 데이터베이스에 대한 연결 설정은 연결 문자열을 기반으로 합니다. 연결 문자열에는 사용자 이름, 비밀번호, 호스트 이름 등 MySQL에 연결하는 데 필요한 모든 매개변수가 포함되어 있습니다. 또는 IP 주소, 포트 번호 및 데이터베이스 이름 등 🎜rrreee🎜🎜Query data🎜🎜🎜Go 언어에서는 db.Query()
, db.QueryRow()
및 db.Exec()을 사용할 수 있습니다.
MySQL 데이터베이스의 데이터를 쿼리하고 조작하는 함수입니다. 🎜🎜db.Query()
함수는 여러 레코드를 쿼리하는 데 사용되며 *sql.Rows
개체를 반환합니다. db.QueryRow()
함수는 단일 레코드를 쿼리하는 데 사용되며 resultset
와 유사한 *sql.Row
개체를 반환하지만 일반적으로 단일 고유 레코드를 쿼리하는 데 사용되는 레코드의 첫 번째 A 행만 반환합니다. db.Exec()
함수는 INSERT, UPDATE, DELETE와 같은 쿼리가 아닌 SQL 문을 실행하여 sql.Result
개체를 반환합니다. 🎜🎜이 예제에서는 db.Query()
함수를 사용하여 모든 레코드를 쿼리합니다. 간단한 카운터를 사용하여 레코드 수를 계산하고 각 데이터 줄을 콘솔에 인쇄하겠습니다. 🎜rrreee🎜*sql.Rows
와 연결된 데이터베이스 리소스를 해제하려면 데이터를 검색한 후 rows.Close()
함수를 호출해야 합니다. 또한 코드는 처리할 수 있는 행이 더 있는지 여부를 나타내는 부울 값을 반환하는 rows.Next()
함수를 사용합니다. 또한 이 예에서는 rows.Scan()
함수를 사용하여 각 행 레코드의 값을 정의된 id
및 name
에 복사합니다. 이 예에서는 > 변수를 선택하고 콘솔에 각 값을 인쇄합니다. 🎜🎜🎜데이터 삽입🎜🎜🎜Go 언어를 사용하여 MySQL 데이터베이스에 데이터를 삽입할 수도 있습니다. 가장 간단한 방법은 db.Exec()
함수를 사용하는 것입니다. insert 문을 db.Exec()
함수에 전달할 수 있으며 이는 MySQL에서 SQL 문으로 실행됩니다. 🎜rrreee🎜result.RowsAffected()
를 사용하여 결과 집합에서 영향을 받은 행 수를 가져오고 이 값을 사용하여 콘솔에 업데이트된 데이터 수를 인쇄할 수 있습니다. 🎜🎜🎜Summary🎜🎜🎜이 글에서는 Go 언어를 이용한 MySQL 데이터베이스의 기본 쿼리 연산을 소개했습니다. 표준 라이브러리 database/sql
및 타사 MySQL 드라이버를 사용하여 연결을 설정하고 데이터를 쿼리하는 방법을 배웠습니다. 또한 db.Exec()
함수를 사용하여 MySQL 데이터베이스에 데이터를 삽입하는 방법도 배웠습니다. 이러한 개념은 Go에서 효율적이고 안정적인 서버 애플리케이션을 구축하는 데 중요한 부분이며 현대 소프트웨어 엔지니어링에 필수적인 기술입니다. 🎜위 내용은 golang에서 mysql 데이터를 조작하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











데이터베이스 및 프로그래밍에서 MySQL의 위치는 매우 중요합니다. 다양한 응용 프로그램 시나리오에서 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) MySQL은 웹, 모바일 및 엔터프라이즈 레벨 시스템을 지원하는 효율적인 데이터 저장, 조직 및 검색 기능을 제공합니다. 2) 클라이언트 서버 아키텍처를 사용하고 여러 스토리지 엔진 및 인덱스 최적화를 지원합니다. 3) 기본 사용에는 테이블 작성 및 데이터 삽입이 포함되며 고급 사용에는 다중 테이블 조인 및 복잡한 쿼리가 포함됩니다. 4) SQL 구문 오류 및 성능 문제와 같은 자주 묻는 질문은 설명 명령 및 느린 쿼리 로그를 통해 디버깅 할 수 있습니다. 5) 성능 최적화 방법에는 인덱스의 합리적인 사용, 최적화 된 쿼리 및 캐시 사용이 포함됩니다. 모범 사례에는 거래 사용 및 준비된 체계가 포함됩니다

Apache는 데이터베이스에 연결하여 다음 단계가 필요합니다. 데이터베이스 드라이버 설치. 연결 풀을 만들려면 Web.xml 파일을 구성하십시오. JDBC 데이터 소스를 작성하고 연결 설정을 지정하십시오. JDBC API를 사용하여 Connections, 명세서 작성, 매개 변수 바인딩, 쿼리 또는 업데이트 실행 및 처리를 포함하여 Java 코드의 데이터베이스에 액세스하십시오.

Docker에서 MySQL을 시작하는 프로세스는 다음 단계로 구성됩니다. MySQL 이미지를 가져와 컨테이너를 작성하고 시작하고 루트 사용자 암호를 설정하고 포트 확인 연결을 매핑하고 데이터베이스를 작성하고 사용자는 데이터베이스에 모든 권한을 부여합니다.

Centos에 MySQL을 설치하려면 다음 단계가 필요합니다. 적절한 MySQL Yum 소스 추가. mysql 서버를 설치하려면 yum install mysql-server 명령을 실행하십시오. mysql_secure_installation 명령을 사용하여 루트 사용자 비밀번호 설정과 같은 보안 설정을 작성하십시오. 필요에 따라 MySQL 구성 파일을 사용자 정의하십시오. MySQL 매개 변수를 조정하고 성능을 위해 데이터베이스를 최적화하십시오.

MySQL을 우아하게 설치하는 열쇠는 공식 MySQL 저장소를 추가하는 것입니다. 특정 단계는 다음과 같습니다. 피싱 공격을 방지하기 위해 MySQL 공식 GPG 키를 다운로드하십시오. MySQL 리포지토리 파일 추가 : rpm -uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm yum repository cache : yum 업데이트 설치 mysql : yum 설치 mysql-server startup startup mysql 서비스 : systemctl start mysqlctl start mysqlctl.

웹 응용 프로그램에서 MySQL의 주요 역할은 데이터를 저장하고 관리하는 것입니다. 1. MySQL은 사용자 정보, 제품 카탈로그, 트랜잭션 레코드 및 기타 데이터를 효율적으로 처리합니다. 2. SQL 쿼리를 통해 개발자는 데이터베이스에서 정보를 추출하여 동적 컨텐츠를 생성 할 수 있습니다. 3.mysql은 클라이언트-서버 모델을 기반으로 작동하여 허용 가능한 쿼리 속도를 보장합니다.

C는 하드웨어 리소스 및 고성능 최적화가 직접 제어되는 시나리오에 더 적합하지만 Golang은 빠른 개발 및 높은 동시성 처리가 필요한 시나리오에 더 적합합니다. 1.C의 장점은 게임 개발과 같은 고성능 요구에 적합한 하드웨어 특성 및 높은 최적화 기능에 가깝습니다. 2. Golang의 장점은 간결한 구문 및 자연 동시성 지원에 있으며, 이는 동시성 서비스 개발에 적합합니다.

Golang과 C는 각각 공연 경쟁에서 고유 한 장점을 가지고 있습니다. 1) Golang은 높은 동시성과 빠른 발전에 적합하며 2) C는 더 높은 성능과 세밀한 제어를 제공합니다. 선택은 프로젝트 요구 사항 및 팀 기술 스택을 기반으로해야합니다.
