存储系统
一个提供读写、控制类接口,能够完全有效地把数据持久化的软件叫做存储系统。而存储系统性能会比较敏感,由于需求量还要求高性能;所以存储系统的代码既简单又复杂,简单是由于要求高性能好运行。软件容易受硬件设备影响。存储系统中缓存是很重要的,贯穿整个存储体系。
数据库
一般把数据库分为关系型数据库和非关系型数据库。 关系型数据库是任意元素组成的有序偶对。 非关系型数据库也是存储系统,但一般不要求严格的结构化。
增删改查
在想要完成对于数据库的增删改查操作中,我们都需要先创建数据库表然后再golong中进行连接数据库的操作。而连接数据库需在const中输入数据库所匹配的账号密码,然后在主函数中进行对于数据库的连接操作以及对数据库是否成功的判断。在成功了连接到数据库后,我们就可以完成下面的增删改查操作了。
- 增
func query(db *sql.DB) {
var id, name, price string
trows, err := db.Query(\" select * from products where name=$1\", \"xiaoming\")
if err != nil {
fmt.Println(err)
}
defer rows.Close()
for rows.Next() {
err := rows.Scan(&id, &name, &code)
if err != nil {
fmt.Println(err)
}
}
err = rows.Err()
if err != nil {
fmt.Println(err)
}
fmt.Println(id, name, code)
}
func main() {
db := connectDB()
query(db)
}
在go语言中的数据库操作都是基于连接好数据库的基础上而进行的一系列操作。首先是使用数据库指令select进行对数据库表进行内容检索,然后对于检索的内容进行重置格式。主要是通过for循环和if判断等的操作。最后在主函数中调用所进行的数据库查询操作。
- 改
func connectDB() *sql.DB {
psqlInfo := fmt.Sprintf(\"host=%s port=%d user=%s \"+\"password=%s dbname=%s sslmode=disable\",host, port, user,password, dbname)
db, err := sql.Open(\"postgres\", psqlInfo)
if err != nil {
panic(err)
}
err = db.Ping()
if err != nil {
panic(err)
}
return db
}
func UpdateUser(db *sql.DB) {
stmt, err := db.Prepare(\"UPDATE products set price=$1 WHERE product_no=$2\")
if err != nil {
log.Fatal(err)
}
_, err = stmt.Exec(\"11.88\", 6)\n\tif err != nil {
tlog.Fatal(err)
} else {
fmt.Println(\"udpate user_tbl success\")
}
}
func main() {
db := connectDB()
UpdateUser(db)
}
数据库中的修改操作和查询操作还是有些许的相似性,但是说不一样又是完全的不一样,他是先使用数据库命令中的update指令对数据库内容进行修改,然后再使用for循环和if判断进行对数据库修改的内容进行重置格式操作。
总结
在文中只介绍了数据库和存储系统的区别以及数据操作中的查询和修改操作,后续可能还会继续深度学习后再进行继续更新,期待后面继续学习的成果吧。