优先级
1。算术运算
2。连接运算
3。关系运算
4。 IS [NOT] NULL, LIKE, [NOT] IN
5。Between
6.not
7.and
8.or
括号强制优先级
substr(字符串,m,n),m 是从第几个字符开始,如果为负的意思是从后边的第几个开始。N 是数多少个, 如果不说就是一直到字符串的结尾。
1.INSERT INTO SELECT语句
语句形式bai为:Insert into Table2(field1,field2,…) select value1,value2,… from Table1
要求目标du表zhiTable2必须存在,由dao于目标表Table2已经存在,所以zhuan我们除了插shu入源表Table1的字段外,还可以插入常量。
2.SELECT INTO FROM语句
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中
select ename,instr(ename,‘A’) “A 在第几位” from emp;
求子串在父串中的位置,0 表示没有在父串中找到该子串。
如果不说明是前置还是后置就是 both 全截断。 Trim 函数是截掉头或者尾连续的字符,一般我们的用途是去掉空格。
SELECT REPLACE(‘JACK and JUE’,‘J’,‘BL’) FROM DUAL; BLACK and BLUE 将字符串中的 J 全部替换位 B
select mod(sal,2000) from emp;取余数
alter session set NLS_DATE_FORMAT=‘yyyy/mm/dd:hh24:mi:ss’; 重新设定为我们想要的格式。
1、 显式提交:用COMMIT命令直接完成的提交为显式提交。其格式为:SQL>COMMIT;
2、隐式提交:用SQL命令间接完成的提交为隐式提交。这些命令是:ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。(此隐式提交是在自己的session,如果在其他人的session (如用户a)中正在修改相同的数据,则引起隐式提交的语句(用户a的k另一个session)则必需等待)
3、自动提交:若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为:SQL>SET AUTOCOMMIT ON;
任务:
更新一张表,
表信息是7月的,我要更新数据
现将最新结构表输出,将注释comment on 所有表
可能用到的知识:
融合语句
MERGE INTO table_name table_alias
USING (table|view|sub_query) alias
ON (join condition)
WHEN MATCHED THEN
UPDATE SET
col1 = col_val1,
col2 = col2_val
WHEN NOT MATCHED THEN
INSERT (column_list)
VALUES (column_values);
E1<----E2 将 e2 融合到 e1 表中
merge into E1
USING E2
ON (E1.EMPNO=E2.EMPNO)
WHEN MATCHED THEN
UPDATE SET
E1.SAL=E1.SAL
WHEN NOT MATCHED THEN
INSERT VALUES(E2.EMPNO,E2.ENAME,E2.SAL);
COMMIT;
Merge 是 update 和 insert 的结合体,有做 upate ,没有做 insert
任务目标:
字典值字段(数据库中没有),通过表连接插入输出表
外键信息导出
将视图导入新表,添加字段
问题:表连接存在null数据重复
左表某一列全是null
右表对应列存在null值,导致重复
实际上不会导致重复
Group by 语句后面的字段依据你select的字段,如果你不在group By后面写,必须用聚合函数处理