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

【PostgreSQL】通过docker的方式运行部署PostgreSQL与go操作数据库

目录

1、docker的方式运行部署PostgreSQL

 2、控制台命令

3、go操作增删改查


1、docker的方式运行部署PostgreSQL

docker pull postgres
docker run --name learn_postgres -e POSTGRES_PASSWORD=docker_user -e POSTGRES_USER=docker_user -p 5433:5432 -d postgres

 进入容器:

docker exec -it a1adf294c991 bash

 进入数据库:

docker exec -ti a1adf294c991 psql -U docker_user 

CREATE TABLE user(name VARCHAR(20), create_date DATE);

 2、控制台命令

\h:查看SQL命令的解释,比如\h select。
\?:查看psql命令列表。
\l:列出所有数据库。
\c [database_name]:连接其他数据库。
\d:列出当前数据库的所有表格。
\d [table_name]:列出某一张表格的结构。
\du:列出所有用户。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息。
# 创建新表
CREATE TABLE user(name VARCHAR(20), create_date DATE);# 插入数据
INSERT INTO user(name, create_date ) VALUES('张三', '2922-07-27');# 选择记录
SELECT * FROM user;# 更新数据
UPDATE userset name = '李四' WHERE name = '张三';# 删除记录
DELETE FROM user WHERE name = '李四' ;# 添加栏位
ALTER TABLE user ADD email VARCHAR(40);# 更新结构
ALTER TABLE user ALTER COLUMN create_date SET NOT NULL;# 更名栏位
ALTER TABLE user RENAME COLUMN create_date TO update_time;# 删除栏位
ALTER TABLE user DROP COLUMN email;# 表格更名
ALTER TABLE user RENAME TO user_rename;# 删除表
DROP TABLE IF EXISTS user_rename;

3、go操作增删改查

package mainimport ("database/sql""fmt"_ "github.com/lib/pq"
)var db *sql.DBfunc main() {var err error//参数根据自己的数据库进行修改db, err = sql.Open("postgres", "host=localhost port=5432 user=docker_user password=docker_user dbname=docker_user sslmode=disable")defer db.Close()checkErr(err)// insert("宋", "2022-08-01")//query()//delete()revise()}// 核对错误
func checkErr(err error) {if err != nil {fmt.Println(err)}
}// 插入数据
func insert(arg1 string, arg2 string) {//插入数据stmt, err := db.Prepare("INSERT INTO test(name, create_date ) VALUES($1, $2)")checkErr(err)res, err := stmt.Exec(arg1, arg2)checkErr(err)id, err := res.RowsAffected()checkErr(err)fmt.Println(id)
}// 查询接口
func query() {rows, err := db.Query("SELECT * FROM PUBLIC.test")checkErr(err)for rows.Next() {var name stringvar create_date stringerr = rows.Scan(&name, &create_date)checkErr(err)fmt.Printf("%s  %s\n", name, create_date)}}// 删除数据
func delete() {//删除数据stmt, err := db.Prepare("DELETE FROM PUBLIC.test where name=$1")checkErr(err)res, err := stmt.Exec("宋")checkErr(err)affect, err := res.RowsAffected()fmt.Println(affect)
}// 修改数据
func revise() {stmt, err := db.Prepare("UPDATE  PUBLIC.test set name=$1 where create_date=$2")checkErr(err)res, err := stmt.Exec("张", "2922-07-27")checkErr(err)affect, err := res.RowsAffected()checkErr(err)fmt.Println(affect)
}

http://www.lryc.cn/news/56440.html

相关文章:

  • Kotlin协程序列:
  • java获取视频时长
  • EDAS投稿系统的遇到的问题及解决办法
  • t-learning 产品经理课程笔记
  • 校招,从准备开始准备(持续更新ing...)
  • Android:使用LayerDrawable动态生成四宫格头像(包含双人、三人头像)
  • Android Jetpack 从使用到源码深耕【数据库注解Room 从实践到原理 】(三)
  • 中国电子学会2023年03月份青少年软件编程Scratch图形化等级考试试卷三级真题(含答案)
  • 分布式事务培训
  • 关键词采集工具可以帮助我们做那些方面的工作
  • 2023年5月PMP难考吗?
  • 定语从句的省略
  • 简易小工具实现批量打开多个网页
  • swiper 点击事件
  • 旅游心得Traveling Experience
  • 【 SpringBoot ⽇志⽂件 】
  • ThinkPHP路由不转换的原因及解决方法
  • 【案例教程】基于RWEQ模型的土壤风蚀模数估算及其变化归因分析实践技术
  • Twitter推荐算法总架构和算法说明
  • 1.C语言题目---指针类(基础)
  • 【算法与数据结构】关于排序的问题思考
  • 行为型模式-命令模式
  • SHELL综合练习1
  • ROS开发之如何使用发布者、订阅者和话题消息?
  • 基于Java+Springboot+vue高校资源共享交流平台设计和实现
  • 收藏! 38个Python数据科研库
  • SpringBoot过滤器获取Bean-请求重复可读-获取请求体数据-用户IP归属地获取
  • 有哪些特别小众而有趣的编程语言呢?
  • vue中使用高德
  • React class组件和hooks setState异步更新数据详解