美文网首页V语言
V语言学习笔记-20内置SQL支持

V语言学习笔记-20内置SQL支持

作者: lydiandy | 来源:发表于2020-05-20 00:27 被阅读0次

内置SQL支持

目前仅为alpha阶段,当demo体验而已

V语言有一个内置的ORM,目前只支持postgres和mysql,后续支持sqlite

V ORM的好处有:

  • 针对不同的数据库,统一的一套语法,这样迁移到其他数据库变得更容易
  • SQL语法内置在V语言的语法中,不需要学习其他的语法
  • 安全,不可以通过注入生成SQL语句
  • 编译时检查,语法错误在编译时就可以被捕捉到
  • 简单易读,不再需要手工解析结果和构造对象
import pg
struct Customer { // 数据库表对应到结构体,结构体名目前要求跟表名一致
    id int // 第一个字段必须是一个整型的id字段
    name string
    nr_orders int
    country string
}

db := pg.connect(db_name, db_user) //连接数据库,返回DB类型

// select count(*) from Customer
nr_customers := db.select count from Customer //db.后面的就可以直接写SQL语句,并返回结果集,数组
println('number of all customers: $nr_customers')

// V syntax can be used to build queries
// db.select返回一个数组
uk_customers := db.select from Customer where country == 'uk' && nr_orders > 0
println(uk_customers.len)
for customer in uk_customers {
    println('$customer.id - $customer.name')
}

customer := db.select from Customer where id == 1 limit 1
println('$customer.id - $customer.name')

//插入数据到数据库
new_customer := Customer{name: 'Bob', nr_orders: 10}
db.insert(new_customer) 

更详细的SQL内容,可以参考pg章节

相关文章

  • V语言学习笔记-20内置SQL支持

    内置SQL支持 目前仅为alpha阶段,当demo体验而已 V语言有一个内置的ORM,目前只支持postgres和...

  • V语言学习笔记-19内置json支持

    内置json支持 v标准库的json模块有点特别: 基于C语言的cJSON库实现 没有使用运行时反射,性能会更好 ...

  • SQL学习笔记day1

    SQL学习笔记day1 sql语句种类 DDL(Data Definition Language,数据定义语言):...

  • SQL基础应用

    MySQL内置功能 连接数据库 提供内置命令 SQL的基础应用 SQL的介绍 结构化查询语言,遵循SQL92标准(...

  • 2018-02-09持续更新的SQL语言

    SQL学习笔记Structured Query Language: 对于SQL语言,有几个特点:1 永远第一个出现...

  • First week

    用于自己复习笔记,初学MARKDOWN(W3SCHOOL学习) SQL SQL 指结构化查询语言SQL 使我们有能...

  • SQL表(增、删、改、查)基础:)

    学习SQL的第一天(7月17日) 跟着W3school学习SQL语法.... 整理笔记 SQL(结构化查询语言)由...

  • SQL 笔记

    SQL 笔记 SQL 简介 SQL = Structured Query Language 总的来说,SQL语言定...

  • V语言学习笔记-总览

    最新版本学习笔记:github电子书 利用闲暇时间,体验了V语言,边看边动手记录,所以有了这个V语言学习笔记 写在...

  • Datatables学习笔记

    笔记请查看这个链接——Datatables的学习笔记简书不支持内置html标签了。查看起来格式太差。

网友评论

    本文标题:V语言学习笔记-20内置SQL支持

    本文链接:https://www.haomeiwen.com/subject/tybbohtx.html