第五章——sql基础操作

1、简单查询

1.1、SELECT * FROM table WHERE (条件) ORDER BY  (ASC升序 DESC降序)

1.2、关系运算符 NOT 、AND、 OR、 IN、 LIKE、 BETWEEN AND

1.3、转义“\” LIKE和‘%’,‘_’搭配。‘%’匹配任意长度的字符串‘_’匹配任意一个字符

1.4、标准日期格式year—month—day 标准时间格式hour—minute—second.ssss

查找在某一段时间内的东西,一般用BETWEEN 开始时间AND 结束时间来查询

1.5、空值判断

当判断是否为空值的时候用 IS NULL 或者IS NOT NULL来判断,结果是false或者true

1.6、三个布尔值(false、true和unknowon)

1.7、IN和NOT IN SELECT * FROM table WHERE something IN(which,which,...);

DISTINCT 去掉结果中的重复行 SELECT DISTINCT something FROM table WHERE ...;

1.8、聚集函数

AVG() 求平均 ;COUNT() 元组的个数;  SUM()相加;  MIN() 求最小; MAX()求最大

  1. 连接查询

3.1、自然连接的直接写法SELECT type,spec FROM saleitem,saleorder,merchandise WHERE saleorder.empid=‘A0043’;遇到相同的名字的时候可以用R.A来区分。改名字的话可以用AS或者省略。

3.2、几个操作 UNION  INTERSECT  EXCEPT

 查询所有顾客和销售员的名字和电话SELECT name,phone FROM customer Union ALL SELECT name,phone FROM salesman;ALL意味着结果中可能有重复的元组,要求两个SELECT子句必须是相同的属性名或表达式。

  1. 子查询查询另一个查询的一部分

4.1、Select name,phone from customer where custid = any(select custid from saleorder where empid=’Aoo43’);

Any he all的区别,any和子查询结果中的任意一个值比较,all和子查询结果中所有值比较

4.2、In的子查询,条件为真,当且仅当表达式的值等于在子查询中的值where 表达式 in(子查询)或者表达式=any|all(子查询)

4.3、exists子查询 条件为真,当且仅当子查询结果为非空

查询选修了C1课程的学生姓名select name from student where exists(select*from sc where cid=‘c1’and sid = student.sid);

4.4、比较运算符要求子查询必须返回单值,所以一般用IN

5、分组查询

5.1、Group By子句 根据某种标准将关系的元组分组,然后再每个组内在进行聚集。结果的行数取决于组的个数。

5.2、查询每个订单的订单总额,并把结果按订单号升序排列。

Select orderno,sum(untiprice * quantity)as amount from saleitem group by orderno order by orderno;

5.3、当用分组查询的时候,select子句中的表达式只能是下列三种情况(聚集函数,group by子句中出现分组属性,常量)

5.4、selec子句中通常会出现分组属性和聚集函数,但是并不要求两者同时出现

5.5、在每个group by子句的后面跟上having短语来指明对组的筛选条件。

Having短语中如果有涉及到分组属性的筛选条件,该条件可以使用where子句替代。(having要放在group by 的后面)

如果having短语中如果涉及到聚集函数的筛选条件,该条件不能使用where子句替代。Having短语不能再没有group by子句的情况下出现。Select a,b from r s where cond1 group by c d having cond2 oder by ff;

6、数据操纵看书p172更容易懂

6.1、数据的插入

INSERT INTO R(A1,A2,A3,...,An) VALUES (V1,V2,V3,...,Vn)

Insert语句一次只能插入一条元组,如果R的属性列表不包含R的所有属性,则插入的新元组在未列出的属性的分量上取默认值

如果在语句中省略了属性列表,则values子句汇总常量的顺序应该与与该关系属性的标准顺序相同。

INSERT INTO R(A1,A2,A3,...,An) SELECT B1,B2,B3,...Bn FROM ...WHERE...

6.2、数据的删除

DELETE FROM R WHERE cond;关系R中任何满足条件cond的元组都将被删除;如果省略WHERE子句,R中所有的元组都将被删除。

6.3、数据的修改

UPDATE R SET A1=V1,A2=V2,...,An=Vn WHERE cond;对于每一个满足条件的cond的元组,改变其属性A1上的分量值为V1,属性A2上的分量值为V2....;如果省略WHERE子句,将会修改所有的元组。

7、事务

7.1、事务的概念

涉及数据库查询或修改的过程;通常具有一些关于并发的强特性;将SQL 的单语句执行组织成多条语句顺序执行。

7.2、事务的特点

原子性:事务中的操作要么全执行,要么全不执行

一致性:数据库中的相关数据要始终保持一致。

隔离性:一个事务执行的过程不受其他事物的干扰。

永久性:事务对数据库产生的影响是永久的。

7.3、可串行化:事务必须表现为它们是可串行运行的,一次执行一个事务,没有重叠。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值