资源描述:
《简单SQL查询.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Mysql查询语言一、为什么需要查询语言?1.查询出另一种关系,得到我想要的数据和结果.2.查询出的数据更直观,更简洁二、查询(检索)数据的四个问题1.你想得到什么结果?回答这个问题需要从存储在数据库中的多个表中选择数据列,当然,需要知道所有的列名.一般而言,最难的部分是搞清楚所有表,并且找到确实需要查询的列.如果数据库有几百个表和几千个列,问题将更为复杂.2.已经知道什么(或者有哪些(限制)约束)?大部分情况下查询带有多个限制条件.例如,只对某一特定日期或者某一部门的销售感兴趣.查询条件需要转换成标准的布尔表达式(用And和or连
2、接的表达式),以帮助理解查询的目的.3.涉及哪些表?很多查询可能只涉及一个表,所以不需要考虑表的连接例:如果想得到整个公司的销售总额,而非某一个特定员工的总销售额,所以可能没有任何(条件)限制.对于较少的表,这个问题很容易.对于数百个表.需要确定究竟需要哪些表.那么表的命名是否准确地反映了内容和目的也是至关重要的.4.如何连接表?这个问题和数据规范化问题相关,并且是关系数据库的核心.具有相似列的表可以连接.三、查询的种类根椐查询的表数量:可以分为单表查询与多表查询根椐查询的复杂程序:可以分为简单查询与复杂查询根椐查询的种类:可以分为
3、子查询与复杂查询四、单表查询的语法Select{*
4、列列表}from表名[where条件][groupby分组][orderby排序][having分组后条件]五、简单查询与单表查询的具体应用1.查询全部行(记录)语法1:select*from表名;//*代表所有的列语法2:select所有的列名显式列出from表名2.查询部分列(记录)语法:select列名,列名1from表名;//只需列出你想显示的列名3.去掉重复查询distinct关键字前面介绍的最基本的查询方式会返回从表格中搜索到的所有行的数据,而不管这些数据是否重复,这常
5、常不是用户所希望看到的。使用DISTINCT关键字就能够从返回的结果数据集合中删除重复的行,使返回的结果更简洁。在使用DISTINCT关键字后,如果表中有多个为NULL的数据,服务器会把这些数据视为相等。语法:Selectdistinct列1,列2from表;注:distinct必须放在所有的列之前,代表几个列组合不重复,使用distinct会减慢查询速度,数量大的查询更明显1.更改列名的查询语法:select列as别名from表名例如:selectstuName姓名,stuSex性别,stuAge年龄fromstudent;注:更
6、改别名的意义是为了可读性,别名可以一致在这里顺带提一下表名也可以更改别名,主要的意义用于多表查询时。2.使用计算列查询(这里讲讲mysql的算术运算符(+,-,*,/)在进行数据查询时,经常需要对查询到的数据进行再次计算处理。T-SQL允许直接在SELECT语句中使用计算列。计算列并不存在于表格所存储的数据中,它是通过对某些列的数据进行演算得来的结果。Select单价*数量as金额fromstudent;注:一般情况下,计算列可以取别名。3.MySQL聚集函数查询(aggregatefunction)1、有时候需要计算某一个数据集的
7、行数,某一数据栏所有数据的总和时就需要用到聚集函数。常见的聚集函数有:2、聚集函数应用详解:Count()用法:得到行的数量,有几种不同的用法:selectcount(*)fromstudent;//返回一张表中的所有行selectCOUNT(stuSex)fromstudent;/*返回这张表中这一列的数量,不包含null*/selectCOUNT(distinctstuSex)fromstudent;/*去掉这一列的重复列,再得到数量*/avg()用法:avg是求一张表中一列的平均值语法selectavg([distinct]列
8、名)from表名;注:avg只对用于数值型的列有意义.对其它类型无意义Max()用法:求某一列的最大值语法:selectmax(列名)from表;列名可以是字符串类型或者数字类型,字符串类型比较的是ASCII码,数字类型比较的是大小。max()用法:求某一列的最大值语法:selectmax(列名)from表;列名可以是字符串类型或者数字类型,字符串类型比较的是ASCII码,数字类型比较的是大小。Sum()用法:求所有列的数值总和语法,selectsum(列)from表注:只适用于数值类型聚集函数返回的是某一个单独的值,而不是象有些s
9、ql语句一样返回多行的记录。1.查询SELECT语句返回指定的记录数Select*fromtablelimit[offset,]rows;例如:mysql> SELECT * FROM table LIMIT 5,10; // 检索