数据库

简介: 数据查询的单表查询和连接查询

1数据查询

select (*/查询属性列/计算表达式)         //查询的对象
from  (查询所需表)                    //查询的范围
where                                //查询的条件
group by        
order by                            //对查询结果的处理

1 单表查询

1.选择表中的若干列
1.select Sno,Sname from Student    //查询属性列
2.select *                            //查询所以列
3.select 2014-Sage         //目标表达式是表达式形式                 无列名,需要起别名
4.select lower(Sdept)            //院系属性列在表中用小写表示        无列名,需要起别名

别名:select 属性 as/空格 别名
    select 2014-Sdept birthday
    select 2014-Sdept as birthday
2.选择表中的若干元组

where子句

插叙条件 谓词
比较 =,>,<,>=,<=,!=,!>,!<
确定范围 between and,not between and
确定集合 in,not in
字符匹配 like,not like
空值 is null,is not null
多重条件 and,or,not
select distinct Sno from Student        //distinct (去重)  all(默认)

where Sage<20;
where Sage between 20 and 23;
where Sdept in('CS',"MA");
where Sname like '刘%';      //%任意长度,_一个长度,
where Sname like 'DB\_Design' escape'_';        //escape设置一个换码字符,这个字符后面的转义字符为普通字符
where Grade is null;
where Sdept='CS' and Sage<20;
3.order by 字句
排序字句:ASC(升序),DESC(降序)
order by Grade desc        //按成绩降序排列
4.聚集函数
语句 作用
count(*) 统计元组个数
count (distinct/all 列名) 统计一列多少个
sum (distinct/all 列名) 计算一列值的和(int)
avg (distinct/all 列名) 计算一列值的平均数(int)
max (distinct/all 列名) 求一列中最大值
min (distinct/all 列名) 求一列中最小值
select count(*)
select avg(Grade)
5.group by 字句
group by 属性 :对该属性相同的值分为一组,与having搭配删选使用

MySQL:having能代替where,where不能代替having。SQL server不支持。

select Sno,AVG(Grade)
from SC
group by Sno                //学号相同的为一组
having AVG(Grade)>=90        //删选一组的平均成绩不小于90的

2 连接查询

1.等值与非等值的连接
格式:

表一 . 列 <比较运算符> 表二 . 列 比较运算符:=、>、<、>=、<=、!=

表一 . 列 between 表二 . 列 and 表三 . 列

如果属性名在连接的表中是唯一的,可以省略表名前缀。

在等值连接中把目标列中重复的属性列去掉为自然连接

当比较运算符为==时,为等值连接,其余为非等值连接。

2.自身连接

一个表与自身进行连接。

通常要为该表起两个别名First,Second

where First . Cpon = Second . Cno
3.外连接

把不满足条件的元组也保存在结果中

必须写在form中
select *
from Student left outer join sc on(Student.Sno=SC.Sno);
或
from Student left outer join sc using(Sno);
//USING()函数的作用是简化等值连接语句
4.多表连接

多表连接时一般需要符合条件连接查询

目录
相关文章
|
8月前
|
数据库
数据库视频(一)
数据库视频(一)
53 0
|
关系型数据库 MySQL 数据库
数据库练习
数据库练习
98 0
|
关系型数据库 Linux BI
数据库的一些知识
数据库的一些知识
45 0
|
8月前
|
SQL 关系型数据库 MySQL
盘点数据库中的一些坑(一)
盘点数据库中的一些坑(一)
65 0
|
4月前
|
存储 SQL NoSQL
常见的数据库
常见的数据库
57 6
|
4月前
|
SQL 关系型数据库 MySQL
|
7月前
|
存储 数据管理 数据库
理解数据库中的参照完整性
【6月更文挑战第13天】数据库设计旨在创建和维护企业的数据管理系统,确保数据完整性和消除冲突。好的数据库设计应减少冗余,保证信息准确完整,并满足处理和报告需求。设计工具包括E-R图和UML等。
570 2
理解数据库中的参照完整性
|
8月前
|
存储 SQL 关系型数据库
我们应该要知道的数据库知识
我们常常谈到数据库可能就会想到Oracle数据库、ACCESS数据库、SQL数据库、MySQL等等,
44 1
|
8月前
|
SQL BI 数据库
数据库视频(二)
数据库视频(二)
50 1
|
8月前
|
SQL 数据库
数据库(五)
`UPDATE` SQL语句用于修改表中的数据。基本语法是:`UPDATE 表名 SET 属性名1=新值1,属性名2=新值2 WHERE 条件表达式`。例如,更新员工工资:`UPDATE emp SET salary=5000 WHERE id=1`。可以使用`+=`操作符增加值,如`UPDATE emp SET salary=salary+500 WHERE dept_id=2`。统计查询中,`COUNT`, `MAX`, `MIN`, `AVG`, `SUM`等函数用于数值、字符和日期的统计分析,注意`WHERE`子句不能直接使用聚集函数。
39 2