数据库查询
2017-11-06 17:09
127 查看
查询语言
查询的基本语法
select 字段列表 frmo 表名 where [条件]查询所有:SELECT * FROM product;
查询部分字段:SELECT pname,price FROM product;
定义字段的别名:SELECT pname AS ‘品牌’ FROM product
去掉重复值:SELECT DISTINCT price FROM product
查询的执行顺序
编写顺序:select…from…执行顺序是: 先frmo后select
条件查询—基本
select…from…where…比较运算符:特别注意的是不等于的写法是“!=”或者“<>”
逻辑运算符
and
or
not
范围查询:between…and… 在什么之间
多个值的等性条件:
in([值…])相当于多个or
模糊查询:like
%: 通配符 表示多个字符
_:通配符 表示一个字符
NULL 状态 查询
空:is null;
非空:is not null;
注意的是:空串(”“)和NULL是不一样的。以后空串使用NULL状态表示。
条件查询—排序
select …from …order by…order by..字段.{[asc]|[desc]}
asc:升序(从小到大)
desc:降序
多列排序:先是对第一个排序列排序,如果第一个排序列的值不同,就不按第二排序列排序,只有当第一排序列相同了才使用第二排序列进行排序。
聚合函数
select 聚合函数 from…where…count(字段):统计行数
sum(字段):求和,数值类型
max(字段):求最大值;数值类型、字符串、日期
min(字段):求最小值
avg(字段):求平均值
聚合函数的结果是“计算出来的结果”,与任何记录没有关系,可能跟某一个记录的这列的值相同,但不是这个值。
聚合函数查询结果中,只包含聚合函数的结果列,查询的结果和其他的字段(属性列)没有关系。
分组查询
查询每种的….select …[聚合函数]…from …group by[字段1],[字段2]…
分组的意思是将同一数据内容的【字段】数据进行分组。
分组查询的查询结果中,最多只能出现分组字段、聚合字段其他字段没有意义。
执行过程:先分组在聚合。
对聚合后的结果进行筛选 Having
select …from…where…group by…order by…执行顺序
from
where
group by
聚合函数
select
order by
格式:
select …from…where…group by…having…order by…
执行顺序
from
where
group by
聚合函数
having 对聚合后的结果进行筛选
select
order by
多表查询
什么是主表:存放信息被其他表所引用;主键字段是被引用的字段什么是从表:引用其他表的表;外键:引用主键字段
SQL语句建立外键的约束
alter table 从表 add [constraint] [外键名称] foreign key (从表外键字段名) references 主表 (主表的主键);ALTER TABLE student ADD CONSTRAINT fk_student FOREIGN KEY (kmid) REFERENCES km (id);
从表往主表托。引用表是主表,
- 一对一
- 一对多
- 多对多
内连接查询
隐式内连接:select * from table1 t1,table2 t2 where t1.id=t2.id(两个表的等值条件);显示内连接:select * frmo t1 INNER JION t2 ON t1.id=t2.id(两个表的等值条件)
外连接查询
左外连接:select * from t1 left join t2 on t1.id=t2.id;右外连接:select * from t1 right join t2 on t1.id=t2.id;
三表查询
内连接查询隐式内连接:select * from t1,t2,t3 where t1.id=t2.id(表1好中间表的等值关系) and t2.id=t3.id(中间表和表3的等值关系) and 其他查询条件
显示内连接:select * from 表一 INNER JOIN 中间表 ON 表一和中间表的等值关系 INNER JOIN 表2 ON 中间表和表2 的等值关系 and 其他查询条件
外连接查询
左外连接:select * from 表一 LEFT JOIN 中间表 ON 表一和中间表的等值关系 LEFT JOIN 表2 ON 中间表和表2 的等值关系 and 其他查询条件
右外连接:select * from 表一 RIGHT JOIN 中间表 ON 表一和中间表的等值关系 RIGHT JOIN 表2 ON 中间表和表2 的等值关系 and 其他查询条件
子查询
select * from t1 where fielt(字段)>(select fielt(字段) from 表 where 字段2 =‘条件’);分页查询
select * from t_grade where gradeName like ‘%计%’ limit 0,10
select * from t_grade limit 0,10
相关文章推荐
- 如何使DropdownList 默认选中为从数据库中查询的字段
- 数据库实验报告5(多表查询 复杂查询)
- 在数据库中写查询语句的时候,把float转成字符串
- kettle中使用javascript步骤和fireToDB函数实现自定义数据库查询
- SQL查询数据库里表大小的命令
- 数据库——(10)联合查询和子查询
- PHP获取生成一个页面的数据库查询次数
- MySql 查询数据库中所有表名
- 查询数据库的表空间
- 数据库查询优化——Mysql索引
- 数据库优化之锁表查询 (Sql Server)
- 数据库查询优化方案的总结
- [C#] 数据库 参数化 查询
- ms sql server sql 查询所有数据库、表名、表字段总结
- Java 通过JDBC查询数据库表结构(字段名称,类型,长度等)
- 通过查询数据库中的sysobjects来判断数据库中是否已有该表
- Delphi多线程数据库查询(ADO)
- 在一个千万级的数据库查寻中,如何提高查询效率?
- 数据库本周本月上月当天查询代码
- 10-30SQLserver基础--(备份和还原、分离和附加数据库)、语句查询操作