GraphQL
发表于|更新于
|浏览量:
可怕的不是外貌的丑陋,而是无法与人亲近的内心空虚——科恩
graphql是一个API的查询语言,可以理解为一个规范
正如它官方文档宣传的那样:
定义你的数据规范(数据类型)
Describe your data
1 | type Project { |
描述你想干什么(查询)
Ask for what you want
1 | { |
获得预期结果(只获得你需要的结果)
Get predictable results
1 | { |
它有多种语言的库:

相关推荐
2020-08-14
mysql join
首先先放张图 今天聊聊mysql表join连接,其本质是拿主表每条数据取出来和子表每行数据进行循环比较,如果满足则返回,不满足返回null 首先是内连接 两者之间取交集,两边都满足返回,不满足不返回 语法很简单 1234567SELECT * FROM tb_goods a INNER JOIN tb_goods_desc b WHERE a.id = b.goods_id 其中,INNER可以省略掉只写个JOIN 然后是左外连接 左外连接,此时可以理解为理解 左表为主表,右表为子表。在条件不满足时,左表数据存在,右表数据为null 简单来说就是结果集包含左表所有行,右表不匹配则为null 12345SELECT * FROM sp_user a LEFT OUTER JOIN tb_seller b ON a.seller_id = b.seller_id 其中,OUTER可省略 反向操作一波就是右外连接 1234567SELECT * FROM tb_seller a RIGHT OUTER JOIN sp_user b ON a.seller_id = b.sell...
2020-12-05
explain
人们很少做他们相信是对的事,他们做比较方便的事,然后后悔。——鲍勃.迪伦 使用explain+SQL 作用: 表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实际使用 表之间的引用 每张表有多少行被优化器查询 id select_type table partitions type possible_keys key key_len ref rows filtered Extra id:查询的序列号,包含一组数字,表示查询中执行select字句或操作表的顺序id值越大执行优先级越高,id相同情况下执行顺序从上到下 select_type:查询的类型,主要是用于区别普通查询、联合查询、子查询等的复杂查询simple简单的select查询,不包含子查询、UNION primary子查询的最外层 subquery子查询的内层 derived表示 FROM临时表,这个表被标记为衍生 union在union后面的查询,若union包含在from字句的子查询中,外层select被标记为derived union result从union表获取结果的select t...
2021-01-27
Client does not support authentication protocol requested by server
宿命论是那些缺乏意志力的弱者的借口。——罗曼·罗兰 今天试了试使用js连接数据库,发现报错Client does not support authentication protocol requested by server; consider upgrading MySQL client 乍一看,代码好像没问题 1234567891011121314151617181920var mysql = require("mysql");let connection = mysql.createConnection({ host: "127.0.0.1", port: 3306, user: "root", password: "789456", database: "ruben"});connection.connect();connection.query("select * from user", funct...
2024-04-22
Mysql的NULLIF
秉性难移。——冯梦龙 NULLIF函数是MySQL中的一个条件函数,用来返回两个表达式的比较结果。具体来说,如果两个表达式相等,NULLIF函数返回NULL;如果不相等,它就返回第一个表达式的值。其基本语法如下: 1NULLIF(expr1, expr2) 其中,expr1和expr2可以是任何类型的表达式,但它们应该是相同的数据类型或者可以隐式转换的类型。 在数学运算特别是除法运算中,除以零会导致错误。使用NULLIF可以有效避免这种错误。例如,我们要计算两个列A和B的比值,可以这样写: 12SELECT A, B, A / NULLIF(B, 0) AS resultFROM your_table; 这里,如果B为0,则NULLIF(B, 0)返回NULL,A / NULL也会返回NULL,从而避免了运行时错误。 在数据导入或处理过程中,我们可能会遇到一些特殊值需要转换为NULL以保持数据的一致性。例如,某些系统中使用-1表示数据缺失,我们可以使用NULLIF来转换这些值: 12SELECT NULLIF(column_name, -1)FROM your_table...
2021-12-27
h2database
走的慢的人,只要他不丧失目标,也比漫无目的徘徊的人走得快。——莱辛 首先新建一个项目,勾选MP和H2 编写配置文件 1234567891011121314151617# DataSource Configspring: datasource: driver-class-name: org.h2.Driver schema: classpath:db/schema-h2.sql data: classpath:db/data-h2.sql url: jdbc:h2:mem:test username: root password: test# Logger Configlogging: level: com.baomidou.mybatisplus.samples.quickstart: debugmybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 然后是数据表结构以及数据文件: schema-h2.sql...
2026-02-17
zvec
志士惜日短,愁人知夜长。——傅玄 Zvec:轻量、极速、可嵌入的向量数据库,用起来就是“爽”当你在做 RAG、语义检索或个性化推荐时,常常会纠结:要不要起一个向量数据库服务、怎么部署、如何兼顾性能和易用性。Zvec 给出了一个非常优雅的答案——把向量库做成“在进程内使用”的开发者友好形态,直接嵌入到你的应用里,不需要额外的服务进程,也没有复杂配置。它由阿里巴巴开源,底层基于成熟的 Proxima 向量检索引擎,开箱即用却又具备生产级的低延迟与可扩展性。 官方一句话描述:A lightweight, lightning-fast, in-process vector database。 主页与文档: Home: https://zvec.org/en/ Quickstart: https://zvec.org/en/docs/quickstart/ Docs: https://zvec.org/en/docs/ Benchmarks: https://zvec.org/en/docs/benchmarks/ 许可证:Apache 2.0 为什么是 Zvec?把向量数据库做...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog