需要的model,数据库映射,sql生成器都用写的代码生成器生成,提高开发效率
  1:最简单的查询单条记录
  AJ.Model.User ou = IDB.Simple(AJ.CModel.User.Select.Where(a => a.USER_TYPE == 1 & a.PASSWORD == "aaa"));
  同写sql的方式
  AJ.Model.User ou = IDB.Simple("select * from User where USER_TYPE = @ut and PASSWORD = @pa", new { ut = 1, pa = "aaa" });
  2:查询多条记录
  List olist = IDB.List(AJ.CModel.User.Select.Where(a=>a.UUID > 2));
  同写sql的方式
  List olist = IDB.List("select * from User where uuid > @uid", new { uid = 2 });
  查询1000条30毫秒左右
  3:使用直接中间语言Emit查询方式
  只用使用中间语言可以提高不少效率,可以减少解析的时间,但经过测试效率提高不是非常明显,现在.net的效率还是优化得非常不错了,为了维护方便
  主要还是使用写代码的方式
  List olist = IDB.ListEmit(AJ.CModel.User.Select.Where(a=>a.UUID > 2));
  4:条件的使用
  条件可以在Where后边任意组合
  使用 and (where a.USER_TYPE = @a3qf6eqse and a.PASSWORD = @dve2tge)
  AJ.CModel.User.Select.Where(a => a.USER_TYPE == 1 & a.PASSWORD == "aaa")
  使用 or (where a.USER_TYPE = @a3qf6eqse or a.PASSWORD = @dve2tge)
  AJ.CModel.User.Select.Where(a => a.USER_TYPE == 1 | a.PASSWORD == "aaa")
  使用 Between and
  AJ.CModel.User.Select.Where(a => a.ID.Between(1,20))
  使用like
  AJ.CModel.User.Select.Where(a => a.ID.Like("%"+2)))
  使用 > ,>=,< <=.......
  AJ.CModel.oll_user.Select.Where(a => a.UUID>10 & a.UUID <= 20 | a.UUID >=20)
  5:选择你需要查询的字段
  使用Column函数进行字段选择 as函数重命名
  只查询NAME一个字段并重名
  IDB.Simple(AJ.CModel.User.Select.Where(a => a.USER_TYPE == 1 & a.PASSWORD == "aaa").Column(a=>a.PLAYER_NAME.As("name")))
  查询多个字段
  IDB.Simple(AJ.CModel.User.Select.Where(a => a.USER_TYPE == 1 & a.PASSWORD == "aaa").Column(a=>new[]{a.PLAYER_NAME,a.STATUS,a.PASSWORD}))
  查询字段重命名使用as和写sql重明名得方式一样
  IDB.Simple(AJ.CModel.User.Select.Where(a => a.USER_TYPE == 1).Column(a=>a.PLAYER_NAME.As("name")))

  6:多表连接查询
  使用 join ,left join ,right join 函数
  使用 join gambleOrder连接notice表 条件为 gambleOrder.id =notice.id 写法
  List olist = IDB.List(AJ.CModel.oll_user.Select.Join((a, b) => a.id== b.id).Where(a => a.UUID > 10 & a.UUID <= 20 | a.UUID >= 20));
  使用left join gambleOrder连接notice表 条件为 gambleOrder.id =notice.id 写法
  List olist = IDB.List(AJ.CModel.oll_user.Select.LeftJoin((a, b) => a.id== b.id).Where(a => a.UUID > 10 & a.UUID <= 20 | a.UUID >= 20));
  使用right join gambleOrder连接notice表条件为是gambleOrder.id =notice.id 写法
  List olist = IDB.List(AJ.CModel.oll_user.Select.RightJoin((a, b) => a.id== b.id).Where(a => a.UUID > 10 & a.UUID <= 20 | a.UUID >= 20));
  多表组合连接查询 gambleOrder join notice 在left join Info表
  List olist = IDB.List(AJ.CModel.oll_user.Select.Join((a, b) => a.id== b.id).LeftJoin((c, d) => c.id== d.id).Where(a => a.UUID > 10));
  7:常用函数的使用
  直接到字段选择中就可以使用常用的函数,可以随意的进行组合的运算操作
  使用平均函数Avg  
  List go = DataBase.IDB.List(
  AJ.CModel.gambleOrder.Select.Where(a => a.UUID > 10)
  .Column(a=>a.NICK_NAME.Avg));
  使用求和函数Sum
  List go = DataBase.IDB.List(
  AJ.CModel.gambleOrder.Select.Where(a => a.UUID > 10)
  .Column(a=>a.NICK_NAME.Sum));
  组合运算操作 求平均数在计数在除以求和数
  List go = DataBase.IDB.List(
  AJ.CModel.gambleOrder.Select.Where(a => a.UUID > 10)
  .Column(a=>(a.NICK_NAME.Avg*a.PASSWORD.Count)/a.STATUS.Sum));
  8:分组排序
  和数据库的操作习惯一样 使用GroupBy,OrderBy函数
  分组 更具STATUS分组
  List go = DataBase.IDB.List(
  AJ.CModel.gambleOrder.Select.GroupBy(a=>a.STATUS));
  字段分组 更具STATUS和 TYPE分组
  List go = DataBase.IDB.List(
  AJ.CModel.gambleOrder.Select.GroupBy(a=>a.STATUS & a.USER_TYPE));
  排序 更具id降序排序 desc
  List go = DataBase.IDB.List(
  AJ.CModel.gambleOrder.Select.OrderBy(a=>a.ID.desc));
  多字段排序 更具id降序排序 desc ,TYPE升序asc
  List go = DataBase.IDB.List(
  AJ.CModel.gambleOrder.Select.OrderBy(a=>a.ID.desc & a.TYPE.asc));
  最能提高的就是自己研究和写点框架与底层的东西,你要去查询了解相关的知识,考虑很多东西,能学到很多平时学不到不常用的知识不断的改进打破重构

最新内容请见作者的GitHub页:http://qaseven.github.io/

Sunshine数据库篇之查询相关推荐

  1. IOS开发数据库篇—SQLite模糊查询

    IOS开发数据库篇-SQLite模糊查询 一.示例 说明:本文简单示例了SQLite的模糊查询 1.新建一个继承自NSObject的模型 该类中的代码: 1 // 2 // YYPerson.h 3 ...

  2. Java数据库篇6——多表查询

    Java数据库篇6--多表查询 1.笛卡尔积 交叉连接查询 设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), ...

  3. alin的学习之路(数据库篇:二)(select查询,where条件查询,order by排序,单行函数,多行函数,group by分组)

    alin的学习之路(数据库篇:二)(select查询,where条件查询,order by排序,单行函数,多行函数,group by分组) 1. SQL语句 1.1 sql语言类型 sql是一门独立的 ...

  4. 通过adsi查询所有计算机_计算机考研/保研复试重点整理-数据库篇

    在各位小伙伴的召唤下,数据库篇终于出炉! 新鲜[计算机l考研/保研复试重点整理]这个系列目前已经集齐了操作系统.数据结构.计算机网络.数据库,大家可以召唤神龙背起来了,文末会奉上其他科目的传送门. 我 ...

  5. alin的学习之路(数据库篇:三)(多表查询,子查询,集合运算,数据处理)

    alin的学习之路(数据库篇:三)(多表查询,子查询,集合运算,数据处理) 1. 多表查询 1.1 笛卡儿积 笛卡尔积就是两个集合的乘积计算 . 如果多个表进行联合查询, 得到结果是一个笛卡尔积, 举 ...

  6. python数据库模糊查询_python中数据库like模糊查询方式

    python中数据库like模糊查询方式 在Python中%是一个格式化字符,所以如果需要使用%则需要写成%%. 将在Python中执行的sql语句改为: sql = "SELECT * F ...

  7. 未来软件是什么样呢?数据库篇(转载)

    观点3:数据库就是对象数组(Y10) 如果对<未来软件是什么样子?-数据库篇>中的观点1和观点2表示认同,那请让我们继续,否则就当我扯淡吧. 既然数据库都放在内存中了,那么我们索性把它作为 ...

  8. 使用t-sql语句修改表中的某些数据及数据类型。_测试开发工程师数据库篇(一)...

    点击蓝字之后,我们就是好朋友了啦 15    数据库篇(一)  01事务概念及应用场景 事务是一组不可分割的mysql语句组,这些语句组要么全部执行成功,要么全部执行失败.事务的提出主要是为了解决并发 ...

  9. VBScript 教程之数据库篇

    VBScript 教程之数据库篇,以 vbscript DBHelper 类的方式,封装数据库连接.查询.基本的存储过程访问方法. option Explicit ' 数据库读取选项 Public C ...

最新文章

  1. 使用C#开发Socket通讯
  2. R语言plotly可视化:可视化直方图、归一化的直方图、水平直方图、互相重叠的直方图、堆叠的直方图、累积直方图、通过bingroup参数设置多个直方图使用相同的bins设置、自定义直方图条形的间距
  3. 2020 年七大 AI 编程语言大盘点
  4. linux用户登录实验,Linux用户和组相关命令及实验
  5. android开发app初始化,Android 的 Application 初始化
  6. android 默认shell busybox,采用busybox 代替android 自带的shell
  7. Mac电脑的连接服务器功能如何使用?
  8. fopen()和fgetl()打开问件,读取内容
  9. 对手机彩铃的一些想法
  10. 四阶龙格库塔matlab计算例题,四阶龙格库塔法matlab实现
  11. 快排的单指针扫描和双指针扫描
  12. html5 3d资源,视觉盛宴 HTML5 3D动画应用赏析
  13. Unity 性能优化之合批
  14. windows10如何关闭cortana
  15. 2023年湖北一级(高级)技师二级技师报名时间、考试时间是什么时候?
  16. 【.net 深呼吸】自己动手来写应用程序设置类
  17. Netbackup5230备份一体机重删率异常故障分析日志收集
  18. 手把手教你看懂电脑硬件测试软件CPU-Z(二)
  19. 在OpenCV里实现二维离散卷积1
  20. 蜜雪冰城、茶颜悦色“卷”向咖啡赛道

热门文章

  1. iview 表格合并行
  2. 从一个故事开始讲递归
  3. 社群公会GangSDK:程序员入行AI领域需要哪些技能?
  4. 如果要你向别人推荐电影,你最先想到的是那些呢?
  5. css 设置 多行超出 显示为 省略号 ,可 多行超出 显示为 省略号
  6. PX4 Position_Control RC_Remoter引入
  7. 夜暗方显万颗星,灯明始见一缕尘
  8. ext3格式化成ext4
  9. 《程序员延寿指南》火爆 GitHub,日涨 1500+ 星,优秀 !
  10. 好玩的手机淘宝社群,发单初体验