数据库的增删改查
添加
insert into 目标表 values(添加的值); insert into 目标表(列名1,列名2) values(新值1,新值2); 创建一份新表 插入数据,备份数据 create table 新表名 as select * from 原表名
修改
update 表名 set 属性值=‘新的名称’ where 选择到应该的行数据
删除
delete from 表名 where 选择条件 delete 表名---删除所有 删除表里所有数据存储空间不会被释放 truncate 表名---删除所有 删除表中所有数据,存储空间会被释放。
总结:
insert into 目标表 values(添加的值)
create table 新表名 as select *
update 表名 set 属性值=‘新的名称’ where
delete from 表名 where 选择条件
多表查询
多张表联合起来一起查询 分为92标准 99标准
92标准:
- 笛卡尔集
- 检索出的列数目是第一个表中的数据数量乘以第二个表中的数据的个数
- 应该保证所有的连接都有where子句,否则会返回大量无用数据
- select * from emp,dept;(逗号分开两个表就可以)
- 等值连接
- 当连接的两个表中拥有相同的属性的时候
- 可以使用and增加操作条件
- 可以使用别名前缀提高查询效率
- select * from emp t1,dept t2 where t1.deptno=t2.deptno;
- 非等值连接
- SELECT * FROM EMP T1,SALGRADE T2 WHERE T1.SAL BETWEEN T2.LOSAL AND T2.HISAL;
- SELECT * FROM EMP T1,SALGRADE T2 WHERE T1.SAL>=T2.LOSAL AND T1.SAL<=T2.HISAL;
- 外连接
- 使用外连接可以看到参与连接的某一方不满足连接条件的记录,而不仅仅是满足连接条件的数据。外连接运算符为(+),外连接分为左外连接和右外连接两种
- 左连接 以左边的表为基准表 +放到右的条件
- 右连接 以右边的表为基准表 +放到左的条件
- 自然连接、
- 就是自己连自己 一个表当两个使用。
99标准
- 交叉连接、
- 就是笛卡尔集
- select * from emp cross join dept;
- 自然连接
- Natural join基于两个表中的全部同名列建立连接
- 从两个表中选出同名列的值均对应相等的所有行,如果两个表中同名列的数据类型不同,则出错
- 不允许在参照列上!!!!使用表名或者别名作为前缀!!!!,自然连接的结果不保留重复的属性。
- 99:select * from emp natural join dept;
- 92:SELECT * FROM EMP T1,DEPT T2 WHERE T1.DEPTNO=T2.DEPTNO;
- 使用using子句建立连接
- 如果不希望参照被连接表的!所有!同名列进行等值连接,自然连接将无法满足要求,可以在连接时使用USING子句来设置用于等值连接的列(参照列)名。
- using子句引用的列在sql任何地方不能使用!!!!表名或者别名做前缀!!!!
- SELECT * FROM DEPT T1 JOIN EMP T2 USING(DEPTNO)
- 使用on子句建立连接
- 自然连接的条件是基于表中所有同名列的等值连接
- 为了设置任意的连接条件或者指定连接的列,需要使用ON子句
- 连接条件与其它的查询条件分开书写
- 92:SELECT * FROM EMP T1,SALGRADE T2 WHERE T1.SAL BETWEEN T2.LOSAL AND T2.HISAL
- 99:SELECT * FROM EMP T1 JOIN SALGRADE T2 ON(T1.SAL BETWEEN T2.LOSAL AND T2.HISAL) WHERE 后面可以再加判断条件
- 外连接
- 左外连接
- 两个表在连接过程中除返回满足连接条件的行以外,还返回左表中不满足条件的行,这种连接称为左外联接。
- SELECT * FROM DEPT T1 LEFT JOIN EMP T2 ON(T1.DEPTNO=T2.DEPTNO);
- 右外连接
- 两个表在连接过程中除返回满足连接条件的行以外,还返回右表中不满足条件的行,这种连接称为右外联接。
- SELECT * FROM DEPT T1 RIGHT JOIN EMP T2 ON(T1.DEPTNO=T2.DEPTNO);
- 全外连接
- 两个表在连接过程中除返回满足连接条件的行以外,还返回两个表中不满足条件的所有行,这种连接称为满外联接。
- SELECT * FROM DEPT T1 FULL JOIN EMP T2 ON(T1.DEPTNO=T2.DEPTNO);