A 语句:
INSERT INTO employees (employee_id,
first_name, last_name,
email, phone_number,
hire_date, job_id, salary,
commission_pct, manager_id,
department_id)
VALUES (99999, 'Taylor', 'DTAYLOR',
TO_DATE('07-JUN-99', 'DD-MON-RR'),
'ST_CLERK', 5000, 50);
B 语句:
INSERT INTO
(SELECT employee_id, last_name,
email, hire_date, job_id, salary,
department_id
FROM employees
WHERE department_id = 50)
VALUES (99999, 'Taylor', 'DTAYLOR',
TO_DATE('07-JUN-99', 'DD-MON-RR'),
'ST_CLERK', 5000, 50);C语句:INSERT INTO (SELECT employee_id, last_name, email,
hire_date, job_id, salary,department_id//
FROM employees
WHERE department_id = 50 WITH CHECK OPTION)
VALUES (99998, 'Smith', 'JSMITH',
TO_DATE('07-JUN-99', 'DD-MON-RR'),
'ST_CLERK', 5000,50 );
这个三个语句都是向employees 这个表中添加一个row ,
A语句:我很清楚,
但是 B语句 用字查询来代替表的名字,我就没有弄明白,子查询会返回很多值,这个子查询到底有什么用,而且在VALUES 值中的department_id 的值一定要和 子查询里面的department_id 的值一样吗?
如果不一样会有什么结果?C语句中加入了WITH CHECK OPTION这个标志,这个具体用来限制什么,在VALUES值中的department_id
值一定要和这个 department_id = 50 WITH CHECK OPTION 相等吗 ?如果不相等会怎么样,另外如果在select语句中去掉department_id ,这个语句还能执行成功吗?
INSERT INTO employees (employee_id,
first_name, last_name,
email, phone_number,
hire_date, job_id, salary,
commission_pct, manager_id,
department_id)
VALUES (99999, 'Taylor', 'DTAYLOR',
TO_DATE('07-JUN-99', 'DD-MON-RR'),
'ST_CLERK', 5000, 50);
B 语句:
INSERT INTO
(SELECT employee_id, last_name,
email, hire_date, job_id, salary,
department_id
FROM employees
WHERE department_id = 50)
VALUES (99999, 'Taylor', 'DTAYLOR',
TO_DATE('07-JUN-99', 'DD-MON-RR'),
'ST_CLERK', 5000, 50);C语句:INSERT INTO (SELECT employee_id, last_name, email,
hire_date, job_id, salary,department_id//
FROM employees
WHERE department_id = 50 WITH CHECK OPTION)
VALUES (99998, 'Smith', 'JSMITH',
TO_DATE('07-JUN-99', 'DD-MON-RR'),
'ST_CLERK', 5000,50 );
这个三个语句都是向employees 这个表中添加一个row ,
A语句:我很清楚,
但是 B语句 用字查询来代替表的名字,我就没有弄明白,子查询会返回很多值,这个子查询到底有什么用,而且在VALUES 值中的department_id 的值一定要和 子查询里面的department_id 的值一样吗?
如果不一样会有什么结果?C语句中加入了WITH CHECK OPTION这个标志,这个具体用来限制什么,在VALUES值中的department_id
值一定要和这个 department_id = 50 WITH CHECK OPTION 相等吗 ?如果不相等会怎么样,另外如果在select语句中去掉department_id ,这个语句还能执行成功吗?
解决方案 »
- 数据库菜鸟求教
- 简单问题~~~列相加 50分~~~马上结贴
- 启动数据库时ORA-03113: end-of-file on communication channel
- 送分100分:ORACLE10G中的都有什么帐号、权限有什么区别
- oracle数据库的schema在哪里看?
- 请教 oracle 查询问题 查询不确定列
- 【求助,在线等】Java连oracle报sid错误
- 关于想通过exception,捕获出错的行的rowid的问题,进者有分
- 初学者:数据库起来后,必须要其监听吗?有什么作用?
- oracle卸载完,重新安装的问题?
- 主键和外键的问题想问问大家
- 【如何程序打包的时候创建“用户,表,并添加一些数据”】
SQL> insert into (select c1,c2 from test where c1=11 with check option) values(13,'3');
insert into (select c1,c2 from test where c1=11 with check option) values(13,'3')
*
ERROR at line 1:
ORA-01402: 视图 WITH CHECK OPTIDN 违反 where 子句
SQL> insert into (select c1,c2 from test where c1=11 with check option) values(11,'3');1 row created.