ORACLE 操纵数据&&锁&&事务
INSERT语句语法
使用INSERT语句添加新行到表中
INSERT INTO table [(column [, column...])]
VALUES (value [, value...]);
用该语法一次只能插入一行
注:该语句用VALUES子句添加行到表中,一次仅一行。
插入新行
:插入一个包含每一个列值的新行
:值以表中列的默认顺序列表
:在INSERT子句中字段可以随意列表
INSERT INTO departments(department_id, department_name, manager_id, location_id)VALUES (70, 'Public Relations', 100, 1700);1 row created.
:字符和日期要用单引号括起来,数字值不需要。
数字值不应放在单引号中,因为对于指定为NUMBER数据类型的字段,如果使用了单引号,可能会发生数字值的隐式转换。
插入带空值的行
::隐式方法: 省略字段列表中的列
INSERT INTO departments (department_id, department_name)VALUES(30, 'Purchasing');
1 row created
::显式方法: 在VALUES子句中指定NULL关键字
INSERT INTO departments
VALUES (100, 'Finance', NULL, NULL);
1 row created.
插入空值的方法:
隐式:从字段列表中省略列。
显式:在values列表中指定NULL关键字,对于字符串和日期,在在values列表中指定空符串('')
在插入新行时,任何没有被明确列出的字段都将获得一个空值。
在用户输入时经常出现的错误:
:: 对于NOT NULL列缺少强制的值
:: 重复值违反了唯一性约束
:: 违反外键约束
:: 违反CHECK约束
:: 数据类型不匹配
:: 值的宽度超过了列的限制
在插入行到表中时,你也可以用USER函数,USER函数记录当前用户名。
也可以用SYSDATE 用在VALUES列表中.
插入特殊日期值.
SQL> desc employees;
名称 是否为空? 类型
----------------------------------------- -------- --------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID &n