数据操作语句: 插入:INSERT INTO TABLE(字段1,字段2....)VALUES(值1,值2....) 一次插入只插入一行。字符和日期值需要单引号扩起。 插入空值: 方法一:隐示插入,插入时省略列名系统就会默认省略的列为NULL。 方法二:显示插入,在插入时指定列的值为空。 注:(1)值的个数不能少于列名的个数。 (2)注意非空属性的列,不能插入空值。 WITH CHECK OPTION 视图约束。 UID 当前数据库用户ID
在插入日期的时候最好用TO_DATE来控制输入格式。 可以创建一个脚本用 &.变量名 的形式来用一个插入语句实现多行的插入(在值列表里用 &.变量名)。 插入中的子查询:将另一个表中的内容都插入被插入的表中。 insert into sales_reps(id,name,salary) 0select employee_id,last_name,salary from employees where employee_id>100. 可以在子查询中做运算后插入到被插入表中。 不要使用VALUES子句。 在子查询中的列数必须匹配 INSERT 语句中的列数。
删除 DELERT FROM TABLE WHERE 条件; 删除所有符合 WHERE 条件的行。 基于子查询的删除。 注意及联删除。
更新: UPDATE TABLE SET 列名1=值1,列名2=值2.....WHERE 条件; 如果更新错误,要用ROLLBACK回滚。 利用子查询更新另外表中的数据,在 SET 后和 WHERE 后都可以利用子查询语句。 更新的时候要注意参照完整性约束。 子表的外键字段值必须是父表主键字段值的真子集。
MERGE语句 提供了对表根据条件进行插入或者更新的能力。 如果行存在则执行UPDATE,如果不存在则执行INSERT。 避免了单独的修改。 提高了性能,更便于使用。 对于数据库应用很有益。 语法:别名AL MERGE INTO table_name(目的表) table_alias USING (table/view/sub_query)//数据来源(可以用子查询) alias(别名) on(连接条件) WHEN MATCHED THEN UPDATE SET(关键字) (修改目的表) 目的表AL.col1=原表AL.col_var1 目的表AL.col2=原表AL.col2_var2 WHEN NOT MATCHEN THEN(关键字) INSERT (目的表AL.COL_LIST) VALUES(原表AL.COL_VARS).(插入原表) create table newtable_name(新表) as 0select * from oldtable_name(原表) where 1=0. 将原表中的结构复制到新表中,但具体的数据项不进行复制。