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()求最大
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子句必须是相同的属性名或表达式。
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.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.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.1、事务的概念
涉及数据库查询或修改的过程;通常具有一些关于并发的强特性;将SQL 的单语句执行组织成多条语句顺序执行。
7.2、事务的特点
原子性:事务中的操作要么全执行,要么全不执行
一致性:数据库中的相关数据要始终保持一致。
隔离性:一个事务执行的过程不受其他事物的干扰。
永久性:事务对数据库产生的影响是永久的。
7.3、可串行化:事务必须表现为它们是可串行运行的,一次执行一个事务,没有重叠。