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基础--查询之二--连接查询
随机推荐
- Kubernetes(K8S) 镜像拉取策略 imagePullPolicy
镜像仓库,镜像已更新,版本没更新, K8S 拉取后,还是早的服务,原因:imagePullPolicy 镜像拉取策略 默认为本地有了就不拉取,需要修改 [root@k8smaster ~]# kube ...
- 用户 IP,里面藏了多少秘密?
大家都知道,要邮寄一封信给正确的收件人,需要提供准确而精细的地址,这个地址需要从国家和城市精确到邮政编码,街道和门牌号码.只有这样,邮局的工作人员才能知道将信送到那里. Internet 上也是如此, ...
- Codeforces Round #741 (Div. 2) 个人题解 A~D
比赛链接:Here 1562A. The Miracle and the Sleeper 题意: 给出 \(l,r\) 求出最大化的 \(a\ mod\ b\) (\(l\le b\le b\le a ...
- jdk1.8(java8)新特性
借鉴之:https://blog.csdn.net/qq_28410283/article/details/80601495 Lambda 表达式: //1.Lambda 表达式,也可称为闭包,它是推 ...
- java实现mysqlplus查询一个月之间的数据
先说需求使用mysqlplus查询一个月之内的数据,传入的参数是202108 要求就查8月份这个月的所有数据,oracle数据中数据记录的时间类型是Date类型 public static void ...
- vim处理冲突文件
一.文件冲突前: 二.文件冲突后(默认为): 此时编辑文档,将before改为after但是异常退出了,此时编辑文档提示冲突: 回车进入展示编辑前的文档: ll-a可查看到隐藏文件的信息: 三.文件冲 ...
- MINGW64 禁用 Bash 路径参数转换
MINGW64 可以让 Windows 无缝使用 Linux 命令,但是路径参数会被转换为 Windows 风格.例如: $ ./adb shell ls /system ls: C:/Program ...
- (已解决)vscode python 代码高亮异常 - 引入的包不显示
问题情况:识别不了引入的包,代码一片白花花的. 解决方法:点最左下角的齿轮,打开设置,搜索 language,把 python 的 language server 改成 pylance,如下图: 如果 ...
- 【日常踩坑】解决 kex_exchange_identification 报错
目录 踩坑 原因分析 解决办法 1. 临时关闭代理 2. 修改代理软件配置,22 端口走直连 3. 改用 HTTPS 协议,走 443 端口 参考资料 踩坑 最近在使用 git 时,发现 git pu ...
- 【ArgParse】一个开源的入参解析库
项目地址:argtable3 本地验证: 编译构建 新增验证 // examples/skull.c #include "argtable3.h" int main(int arg ...