SqlSugar基础查询
查所有
List<Student> list=db.Queryable<Student>().ToList()//select * from Student |
查询总数
int count=db.Queryable<Student>().Count()//select count(1) from Student |
按条件查询
db.Queryable<Student>().Where(it=>it.Id==1).ToList()//select * from Student where id=1db.Queryable<Student>().Where(it=>it.name !=null).ToList()//不是null//select * from Student where name is not nulldb.Queryable<Student>().Where(it=>it.name ==null).ToList()//是null//select * from Student where name is nulldb.Queryable<Student>().Where(it=>it.name !="").ToList()//不是空 ,不为空//select * from Student where name <> '' |
多条件查询
db.Queryable<Student>().Where(it=>it.Id>10&&it.Name=="a").ToList()//select * from Student where id>10 and name='a'db.Queryable<Student>().Where(it=>it.Id>10).Where(it=>it.Name=="a").ToList()//select * from Student where id>10 and name='a'//如果是或者关系可以用 || |
动态OR查询
var exp= Expressionable.Create<Student>();exp.OrIF(条件,it=>it.Id==1);//.OrIf 是条件成立才会拼接ORexp.Or(it =>it.Name.Contains("jack"));//拼接ORvar list=db.Queryable<Student>().Where(exp.ToExpression()).ToList(); |
模糊查询
db.Queryable<Student>().Where(it =>it.Name.Contains("jack")).ToList();//select * from Student where name like %jack% |
根据主键查询
susgar中的single等同于EF中的SingleOrDefault
/*单主键查询*/db.Queryable<Student>().InSingle(2) //通过主键查询 SingleByIddb.Queryable<Student>().Single(it=>it.Id==2) //根据ID查询//select * from Student where id=2/*多主键查询*/var getAll=db.Queryable<Order>().WhereClassByPrimaryKey(new Order(){Pk1=1,Pk2=xx}).ToList(); //单个实体 vargetAll=db.Queryable<Order>().WhereClassByPrimaryKey(List<Order>).ToList(); //支持集合 |
查询第一条 ,第一行
.First() 等同于C#中的 FirstOrDefault , 没有值返回 null
db.Queryable<Student>().First(it=>it.Id==1) //没有返回Null//select top 1 * from Student where id=1 |
查询最后一条
First() 等同于C#中的 FirstOrDefault , 没有值返回 null
db.Queryable<Student>().OrderBy(it=>it.Id,OrderByType.Desc )// 倒序.First(it=>it.Id>10) //没有返回Null//select top 1 * from Student order by id desc where id>10 |
查前几条
db.Queryable<Student>().Take(10).ToList()//select top 10 * from Student |
数据行数
db.Queryable<Student>().Where(it=>it.Id>11).Count()//同步db.Queryable<Student>().Where(it=>it.Id>11).CountAsync()//异步//select count(*) from Student where id>11//你也可以用函数SqlFunc.AggregateCount |
设置新表名
//例1:更新表名db.Queryable<School>().AS("Student").ToList();//生成的SQL SELECT [ID],[NAME] FROM Student//动态表名 表别名 指定表明//例2:给表名添加前缀db.Queryable<School>().AS("dbo.School").ToList();//生成的SQL SELECT [ID],[NAME] FROM dbo.School//如果不用AS也可以在特性中设置别名,看文档:实体本置 |
是否存在记录
is exists
db.Queryable<Student>().Where(it=>it.Id>11).Any()db.Queryable<Student>().Any(it=>it.Id>11) //上面语法的简化//异步就是 AnyAsync() |
In查询(单个字段)
单个字段
int [] allIds =new int[]{2,3,31};db.Queryable<OrderItem>().Where(it => allIds.Contains(it.OrderId)).ToList()//orderid in (2,3,31)//字符串类型 varchar和nvarchar (默认varchar来保证性能) NameList.Contains(it.Name,true) //true和false来控制是varchar还是nvarchar |
In查询(多个字段)
多个字段 (升级:5.1.4.67-preview04)
List<OrderItem> list=xxx; db.Queryable<OrderItem>().Where(it => list.Any(s => s.Id == it.Id && s.Name == it.Name)) //也可以用动态表达式拼OR实现 |
In模糊查询
对象集合In like 升级:5.1.4.67
List<OrderItem> list=xxx; db.Queryable<OrderItem>().Where(it => list.Any(s => it.Name.Contanins(s.Name))) //也可以用动态表达式拼OR实现 |
数组集全 in like :5.1.4.85
List<string> list=xxx; db.Queryable<OrderItem>().Where(it => list.Any(s => it.Name.Contanins(s))) //也可以用动态表达式拼OR实现 |
Not In
int [] allIds =new int[]{2,3,31};db.Queryable<OrderItem>().Where(it => !allIds.Contains(it.OrderId)).ToList()//orderid NOT in (2,3,31) |
简单排序
db.Queryable<Student>().OrderBy((st,sc)=>sc.Id,OrderByType.Desc).ToList()//排序 可以多个//更多用法https://www.donet5.com/Home/Doc?typeId=2312 |
查询一列
db.Queryable<Student>().Select(it=>it.Name).ToList() //单值 查询列 查询单独列 |
查询单条
查询一条
db.Queryable<Student>().Single(it=>it.Id==1) //没有返回Null,如果结果大于1条会抛出错误//select * from Student where id=1 // 查询id等于1的单条记录 |
获取最大值
db.Queryable<Order>().Max(it=>it.Id);//同步 db.Queryable<Order>().MaxAsync(it=>it.Id);//异步//也可以用函数 SqlFunc.AggregateMax |
获取最小值
db.Queryable<Order>().Min(it=>it.Id);//同步db.Queryable<Order>().MinAsync(it=>it.Id);//异步//也可以用函数 SqlFunc.AggregateMin |
求和
db.Queryable<Order>().Sum(it=>it.Id);//同步db.Queryable<Order>().SumAsync(it=>it.Id);//异步//也可以用函数 SqlFunc.AggregateSum |
查询过滤排除某一个字段
生成的sql Select 不会有Files
/***单表***/db.Queryable<Order>().IgnoreColumns(it=>it.Files).ToList();//只支持单表查询 /***联查***///是主表var leftQuery=db.Queryable<Order>().IgnoreColumns(it=>it.Files);var list=db.Queryable(leftQuery).LeftJoin<OrderDetails>((o,d)=>o.id==d.orderid).Select(o=>o).ToList(); //是Join的表var rightQuery= db.Queryable<OrderItem>().IgnoreColumns(it=>it.Files);var list=db.Queryable<Order>().LeftJoin(rightQuery,(o,d)=>o.Id == d.OrderId).Select(o=>o).ToList(); |
SqlSugar基础查询的更多相关文章
- HQL基础查询语句
HQL基础查询语句 1.使用hql语句检索出Student表中的所有列 //核心代码 @Test public void oneTest() { Query query=session.createQ ...
- Mego开发文档 - 基础查询
基础查询 Mego 使用语言集成查询(LINQ)从数据库查询数据.LINQ允许您使用C#(或其他.NET语言)根据派生的上下文和实体类编写强类型查询.将LINQ查询的表示传递给数据库提供者,翻译为数据 ...
- T-SQL基础查询——单表查询
1,查询的顺序 SELECT empid, YEAR(orderdate) AS orderyear, COUNT(*) AS numorders FROM Sales.Orders GROUP BY ...
- Mongodb 基础 查询表达式
数据库操作 查看:show dbs; 创建:use dbname; // db.createCollection('collection_name'); 隐式创建,需要创建的数据库中有表才表示创 ...
- mysql基础查询语法
一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count( ...
- SQL基础--查询之三--嵌套查询
SQL基础--查询之三--嵌套查询
- SQL基础--查询之五--查询语句一般格式
SQL基础--查询之五--查询语句一般格式
- SQL基础--查询之四--集合查询
SQL基础--查询之四--集合查询
- SQL基础--查询之一--单表查询
SQL基础--查询之一--单表查询
- SQL基础--查询之二--连接查询
SQL基础--查询之二--连接查询
随机推荐
- auth认证模块 auth_user表扩展
目录 auth认证模块前戏 django后台管理功能 创建超级管理员 auth认证相关模块及操作 用户注册 用户登录 网站首页效果 校验用户登录的装饰器 用户修改密码 用户注销登录 auth_user ...
- Go--字符串函数
示例: package main import ( "fmt" "strings" ) func main() { //strings.Contains(): ...
- AtCoder Beginner Contest 182 Person Editorial
Problem A - twiblr 直接输出 \(2A + 100 - B\) Problem B - Almost GCD 这里暴力枚举即可 int main() { ios_base::sync ...
- CodeCraft-21 and Codeforces Round #711 (Div. 2) A~C 个人题解
补题链接:Here 1498A. GCD Sum 题意:给定一个 gcdSum 操作:\(gcdSum(762) = gcd(762,7 + 6 + 2) = gcd(762,15) = 3\) 请问 ...
- 技术文档 | 免下载、0配置、多任务并发,在Docker Image中使用OpenSCA
想跳过下载步骤快速使用OpenSCA检测代码风险?想实现多个项目并发扫描? 在Docker Image中使用OpenSCA即可轻松实现.一起来look look 目的 方便用户使用最新版本的 Open ...
- SpringCloud学习 系列一、 前言-为什么要学习微服务
系列导航 SpringCloud学习 系列一. 前言-为什么要学习微服务 SpringCloud学习 系列二. 简介 SpringCloud学习 系列三. 创建一个没有使用springCloud的服务 ...
- python · ssh · SQL | python 连接远程 SQL 数据库
python 连接本地 SQL 的 教程存档. 如果要连接远程的 SQL 数据库,需要先开一个 ssh 连接,在 ssh 连接里写 pymysql 的 connect 代码. 代码如下: ''' pi ...
- UofTCTF 2024 比赛记录
这次的题目挺有意思,难度适中,*开头的代表未做出,简单记录一下解题笔记. Introduction General Information 题目 The flag format for all cha ...
- [转帖]Prometheus系列之Grafana 版本9.0.0 设置Email邮件报警实战
目录 1. 配置文件conf/defaults.ini修改 2. Grafana Web页面配置报警邮箱接收者 3. 创建Dashboard 4. 创建Alert的文件夹 5. 设置Notificat ...
- [转帖]使用 TiUP 扩容缩容 TiDB 集群
https://docs.pingcap.com/zh/tidb/stable/scale-tidb-using-tiup TiDB 集群可以在不中断线上服务的情况下进行扩容和缩容. 本文介绍如何使用 ...