为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

sql数据库基础搜索

2017-09-19 3页 doc 23KB 8阅读

用户头像

is_594886

暂无简介

举报
sql数据库基础搜索1、选择所有的记录    select * from table_name;    其中*表示表中的所有字段。   2、查询不重复的记录    用关键字distinct    select distinct  字段名  from  表名;    3、条件查询    用关键字where    select * from 表名 where 条件;    where后面的条件是一个字段的比较,可以使用=、>、=、<=、!=等比较运算符;多个条件还可以使用or、and等逻辑运算。   4、排序和限制    用关键字order by  ...
sql数据库基础搜索
1、选择所有的记录    select * from table_name;    其中*表示表中的所有字段。   2、查询不重复的记录    用关键字distinct    select distinct  字段名  from  表名;    3、条件查询    用关键字where    select * from 表名 where 条件;    where后面的条件是一个字段的比较,可以使用=、>、<、>=、<=、!=等比较运算符;多个条件还可以使用or、and等逻辑运算。   4、排序和限制    用关键字order by  desc(降序), asc(升序),limit(排序结果显示一部分)    order by后面可以跟多个不同的排序字段,并且每个排序字段可以有不同的排序顺序。    例如:把emp表中的记录按照工资sal的高低顺序排序。       select * from emp order by sal;      select * from emp order by sal,deptno desc;(sal升序,septno降序)    先按第一个字段排序,当第一个字段相同时,按照第二个字段排序。       select······limit offset_start, row_count;    offset_start表示起始偏移量,默认值为0。 row_count表示显示的行数。    例如:select * from emp order by sal limit 1,3;    显示前3条记录,起始偏移量为1,从第二条记录开始显示。    order  by 和limit 通常一起使用来控制记录的分页显示。    5、聚合    很多情况下,用户需要一些汇总操作,例如统计整个公司的人数或者每个部门的人数。    语法:    select 字段1,字段2.。。函数名 from 表名  where where_condition1  group by  字段11,字段12  with rollup  having  where_condition2;     函数名表示要做的聚合操作,就是聚合函数,常用的有sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。    group by 关键字表示要进行分类聚合的字段、    having 关键字表示对分类后的结果在进行条件的过滤。    having和where的区别是having是对聚合后的结果进行条件的过滤,而where是在聚合前就对记录进行过滤,如果逻辑允许,我们可以用where先进行过滤,这样结果集变小了,将对聚合的效率大大的提高,最后在根据逻辑看是否用having进行再过滤。 select sum(sal), max(sal), min(sal) from emp;   6、表连接    当需要同时显示多个表中的字段时,就可以用表连接来实现这样的功能。    从大类上分,表连接分为内连接和外连接,它们之间的最主要的区别是内连接仅选出两张表中互相匹配的记录,而外连接会会选出其他不匹配的记录。我们最常用的是内连接。    例如:查询出所有雇员的名字和所在的部门名称,因为雇员名称和部门分别放在表emp和表dept中,因此,需要使用表连接来进行查询。    select ename, deptname from emp, dept where emp.deptno=dept.deptno;  (ename是表emp中的字段,deptname是dept表中的字段)     外连接又分为左链接和右连接(关键字left join和 right join)    左连接:包含所有的左边表中的记录甚至是右边表中没有和他匹配的记录。    右连接:包含所有的右边表中的记录甚至是左边表中没有和他匹配的记录。    例如:select ename, deptname from emp left join dept on emp.deptno=dept.deptno;          select ename, deptname from dept right join emp on emp.deptno=dept.deptno;          ename是表emp中的字段,deptname是dept表中的字段。 就是包含表emp中的所有记录。     以上两条语句等价。   7、字查询    在某些情况下,当进行查询的时候,需要的条件是另外一个select语句的结果,这个时候,就要用到子查询。用于子查询的关键字主要包括in、not in、=、!=、exists、not exists等。         select * from emp where deptno in (select deptno from dept);    (表示的意思就是就表emp中的所有记录,除去dept表对应的部门不存在的删掉。)    在某些情况下,子查询可以转化成表连接。例如,上面的语句可以写成:    select emp.* from emp, dept where emp.deptno=dept.deptno;   8、记录联合    我们经常会碰到这样的应用,将两个表的数据按照一定的查询条件查询出来后,将结果合并到一起显示出来。这个时候,就需要用到union和 union all关键字来实现这样的功能。union和union all的区别:union all 是把结果集合并在一起,而union是将union all后的结果进行一次distict,去除重复记录。    select * from table1  union| union all select * from table2;    例如:    ① select deptno from emp  union all select deptno from dept;    ② select deptno from emp  union select deptno from dept;    ①中的记录将会有重复记录,②中没有重复记录。   :SELECT * FROM `book_info` WHERE `BOOK_ID`=2
/
本文档为【sql数据库基础搜索】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索