15个基础SQL查询语句
一、创建表与数据插入SQL
在开始创建数据表与向表中插入演示数据之前,要给大家解释一下实时数据表的设计理念,这样能帮助大家能更
本文介绍了数据库(如mysql,redis)的基础SQL查询语句。 一、创建表与数据插入SQL 在开始创建数据表与向表中插入演示数据之前,要给大家解释一下实时数据表的设计理念,这样能帮助大家能更好的理解SQL查询。 在数据库设计中,有一条非常重要的规则就是要正确建立主键与外键的关系。 现在我们来创建几个餐厅订单管理的数据表,一共用到3张数据表: 1.创建表: 创建Item Master表,代码如图1所示: 图1 向Item Master表插入数据,代码如图2所示: 图2 创建Order Master表,代码如图3所示: 图3 向Order Master表插入数据,代码如图4所示: 图4 创建Order Detail表,代码如图5所示: 图5 向Order Detail表插入数据,代码如图6所示: 图6 二、简单的Select查询语句 SQL中最基本也是最重要的DML语句之一为Select查询语句。那么什么是DML?DML全称Data Manipulation Language(数据操纵语言命令),它可以使用户能够查询数据库以及操作已有数据库中的数据。 下面我们在SQL Server中用select语句来查询我的姓名(Name),代码如图7所示: 图7 在数据表中使用select查询,代码如图8所示: 图8 三、合计和标量函数 合计函数与标量函数都是SQL Server的内置函数,我们可以在select查询语句中使用它们,比如Count(), Max(), Sum(), Upper(), lower(), Round()等等。下面我们用SQL代码来解释这些函数的用法,代码如图9所示: 图9 四、日期函数 在我们的项目数据表中基本都会使用到日期列,所以日期函数在项目中扮演着非常重要的角色。有时候我们对日期函数要非常的小心,它随时可以给你带来巨大的麻烦。在项目中,我们要选择合适的日期函数与日期格式,下面是一些SQL日期函数的例子: 图10 图11 五、其他Select函数 Top :结合select语句,Top函数可以查询头几条与末几条的数据记录。 Order By :结合select语句,Order By可以让查询结果按某个字段正序与逆序输出数据记录。代码如图12所示: 图12 Distinct :distinct关键字可以过滤重复的数据记录。代码如图13所示:、 图13 六、Where子句 Where子句在SQL Select查询语句中非常重要,为什么要使用where子句?什么时候使用where子句?where子句是利用一些条件来过滤数据结果集。 下面我们从10000条数据记录中查询Order_No为某个值或某个区间的数据记录,另外还有其他的条件。代码如图14所示: 图14 Where – In 子句 相关代码如图14所示: 图15 Where – Between子句 相关代码如图16所示: 图16 查询某个条件区间的数据,我们常常使用between子句。 七、Group By 子句 Group By子句可对查询的结果集按指定字段分组,代码如下所示: 图17 Group By & Having 子句 图18 图19 8、子查询 子查询一般出现在where内连接查询与和嵌套查询中,select、update和delete语句中均可以使用。代码如下所示: 图20 九、连接查询 目前为止,我们接触了不少单表的查询语句,现在我们来使用连接查询获取多个表的数据。 简单的join语句,如下所示: 图21 Inner Join,Left Outer Join,Right Outer Join and Full outer Join 下面所示的是各种类型的连接查询代码: 图22 十、Union合并查询 Union查询可以把多张表的数据合并起来,Union只会把唯一的数据查询出来,而Union ALL则会把重复的数据也查询出来。代码如下所示: 图23 具体的例子如下所示: 图24 十一、公用表表达式(CTE)——With语句 CTE可以看作是一个临时的结果集,可以在接下来的一个SELECT,INSERT,UPDATE,DELETE,MERGE语句中被多次引用。使用公用表达式可以让语句更加清晰简练。相关代码如下所示: 图25 十二、视图 很多人对视图View感到很沮丧,因为它看起来跟select语句没什么区别。在视图中我们同样可以使用select查询语句,但视图对我们来说依然非常重要。 假设我们要联合查询4张表中的20几个字段,那么这个select查询语句会非常复杂。但这样的语句我们在很多地方都需要用到,如果将它编写成视图,那么使用起来会方便很多。利用视图查询有以下几个优点: 一定程度上提高查询速度可以对一些字段根据不同的权限进行屏蔽mssql 查询子句,因此提高了安全性对多表的连接查询会非常方便 下面所示的是一个视图的代码例子: 图26 13、Pivot行转列 Pivot能帮助你实现数据行转换成数据列,具体用法如下所示: 图27 十四、存储过程 我经常看到有人提问如何在SQL Server中编写多条查询的SQL语句,然后将它们使用到C#程序中去。很多数据库(如mysql,redis)的存储过程就可完成这样的功能,存储过程可以将多个SQL查询聚集在一起,创建存储过程的基本结构是下面这样的: 图28 创建一个没有参数的存储过程: 图29 十五、函数Function 之前我们介绍了MAX(),SUM(), GetDate()等最基本的SQL函数,现在我们来看看如何创建自定义SQL函数。创建函数的格式如下所示: 图30 下面是一个简单的函数示例: 图31 下面所示的一个函数可以实现从给定的日期中得到当前月的最后一天: 图32 译文链接: 英文原文:Basic SQL Queries for Beginners (编辑:通辽站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |