1.多表查询:一张以上的表进行查询,称为多表查询,多表查询的时候可以为表指定别名的方式以简化查询列的编写,在多表查询中,会产生笛卡尔积,就是两张表的总数相乘得到的结果,如果要想消除笛卡尔积要通过关联条件。注意左连接和右连接
2.分组统计和统计函数
·统计函数:COUNT(),AVG(),SUM(),MAX(),MIN()
·统计函数必须出现在分组统计之中,所谓的分组就是指定列中存在重复的内容,使用GROUP BY 的方式进行分组统计。
·如果要加入分组条件,则编写HAVING字句,所有的统计函数作为条件的话只能在HAVING中出现,不能在WHERE之中使用。
·在使用分组的时候,一定要注意,查询的时候只能出现分组函数和分组条件。
·分组函数允许嵌套,但是嵌套之后不能在查询其他字段,包括分组字段。
3.子查询
·在一个查询中包含另外一个查询,称为子查询
·子查询可以出现在任意位置:SELECT、FROM、WHERE
·子查询可以结合多表关联,分组统计完成复杂的查询功能
4.数据库的更新操作
·复制表(Orcale) CREATE TABLE 表名称 AS(子查询);
·表的数据增加 INSERT INTO 表名称(字段) VALUES(值)
·更新 UPDATE 表名称 SET 字段=值....WHERE 条件
·数据删除 DELETE FROM 表名称 WHERE 删除条件
5.事务处理
·所有的操作要么全部成功,要么全部失败
·在Orcale之中每一个连接到数据库上的用户表示一个session,一个session所做的修改不会立刻真正的修改数据库,而是等待用户的提交,用户通过COMMIT 提交或者使用rollback 进行回滚操作
·在Orcale之中是会出现死锁的情况,互相等待对方的提交。
7.表的建立
·建立新表:自己制定需要的字段及类型
·复制表:复制已有表的结构或者数据,如果不需要数据,只需要再子查询写一个永远不可能成立的条件
8.可以使用DROP TABLE 删除一张表
9.截断表:TRUNCATE TABLE ,被阶段后的表,内容不可回滚,会立即释放所有的资源
10.约束,SQL 之中存在5种约束:
·单表上的约束:
|-主键约束:PRIMARY KEY
|-非空约束:NOT NULL
|-检查约束:CHECK
|-唯一约束: UNIQUE
·关联表的约束:
|-外键约束:FOREIGN KEY,表示子表的取值和父表中的取值有所关联
|-删除的时候应该先删除子表再删除父表
|-如果现在要想直接删除父表,可以采用Orcale的强制手段:
|-DROP TABLE 表名称 CASCADE CONSTRAINT
|-级联:ON DELETE CASCADE 当父表被删除后,子表对应内容也删除
·约束一般在表建立的时候就已经完成了,尽可能不要去修改表的约束。
·注意约束名称的命名规范
11.ROWNUM 是一个伪列,会自动存在,表示每一个查询的行数
·可以部分的取出数据表中的数据(分页)
12.集合操作 交(union/union all) 并(intersete) 差(minue)
13.表的修改:ALTER 指令
·增加列:ALTER TABLE 表名称 ADD(字段名称,字段类型[,DEFAULT 默认值])
·修改列:ALTER TABLE 表名称 MODIFY(字段名称,字段类型[,DEFAULT 默认值])
·增加约束:ALTER TABLE 表名称 ADD CONSTRAINT 约束名称 约束类型(字段);
·删除约束:ALTER TABLE 表名称 DROP CONSTRAINT 约束名称 约束类型(字段);