INSERT INTO
语句添加数据,`INSERT INTO 表名 (列1, 列2, …) VALUES (值1, 值2, …在Oracle数据库中,添加语句主要分为向表中添加数据(INSERT)和向表中添加字段(ALTER TABLE)两种情况,以下是详细介绍:
向表中添加数据(INSERT语句)
基本语法
INSERT INTO table_name (column1, column2, column3, …) VALUES (value1, value2, value3, …);
table_name是要插入数据的表名,column1、column2等是要插入数据的列名,value1、value2等是对应的值。
示例
假设有一个名为employees的表,包含id、name和salary三个列,我们可以使用以下语句向表中插入数据:
INSERT INTO employees (id, name, salary) VALUES (1, '张三', 5000); INSERT INTO employees (id, name, salary) VALUES (2, '李四', 6000); INSERT INTO employees (id, name, salary) VALUES (3, '王五', 7000);
这些语句将分别向employees表中插入三条记录,每条记录包含员工的ID、姓名和薪水。
注意事项
- 确保已经正确连接到Oracle数据库,并且具有足够的权限来执行INSERT操作。
- 根据实际需求,可能需要调整表结构和插入的数据。
向表中添加字段(ALTER TABLE语句)
基本语法
ALTER TABLE table_name ADD (column_name data_type [DEFAULT default_value] [CONSTRAINT constraint_name constraint_type (constraint_condition)]);
table_name为要添加字段的表名,column_name为要添加的字段名,data_type是字段的数据类型,例如VARCHAR2(n)、NUMBER(n, m)等,DEFAULT关键字后面可以指定字段的默认值,CONSTRAINT关键字后面可以指定字段的约束条件,如NOT NULL、UNIQUE、PRIMARY KEY等。
示例
假设有一个名为student的表,我们可以使用以下语句向表中添加一个名为age的整数类型字段,并设置默认值为20:
ALTER TABLE student ADD (age NUMBER(3) DEFAULT 20);
再比如,有一个名为employees的表,我们希望为其添加一个新的布尔类型的字段is_active和一个带有默认值的整数字段department_id,相应的SQL语句如下:
ALTER TABLE employees ADD (is_active NUMBER(1), department_id NUMBER DEFAULT 1 NOT NULL);
注意,在上述例子中,NUMBER(1)常被用来表示布尔型(虽然严格来说这不是一种官方支持的数据类型),而DEFAULT关键字用于指定该字段的默认值;NOT NULL表示此字段不允许为空。
添加主键和外键
通过添加主键和外键,可以在表中实现数据完整性和关系约束,主键用于唯一标识一条记录,外键用于在两个表中建立关联关系。
- 添加主键:
ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (column_name);
table_name为表名,constraint_name为约束名,column_name为要设为主键的字段名。 - 添加外键:
ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (column_name) REFERENCES referenced_table (referenced_column);
table_name为当前表名,constraint_name为约束名,column_name为当前表中要设为外键的字段名,referenced_table为关联表名,referenced_column为关联表中的字段名。
注意事项
- 添加字段时,表中已有的数据将会被保留,新添加的字段默认为NULL,如果需要指定默认值,可以在添加字段语句中使用DEFAULT关键字。
- 添加字段操作可能会导致表的结构变化,对已有的数据产生影响,在执行ALTER TABLE语句之前,建议对表进行备份,以免数据丢失。
- 添加字段时,要确保表结构和设计需求一致,并且要考虑到后续的数据操作和查询。
语句类型 | 语法示例 | 说明 |
---|---|---|
INSERT语句 | INSERT INTO employees (id, name, salary) VALUES (1, ‘张三’, 5000); | 向employees表中插入一条记录,指定id、name和salary的值 |
ALTER TABLE添加字段 | ALTER TABLE student ADD (age NUMBER(3) DEFAULT 20); | 向student表中添加一个名为age的整数类型字段,并设置默认值为20 |
ALTER TABLE添加主键 | ALTER TABLE employees ADD CONSTRAINT emp_pk PRIMARY KEY (id); | 为employees表的id字段添加主键约束,约束名为emp_pk |
ALTER TABLE添加外键 | ALTER TABLE departments ADD CONSTRAINT dept_fk FOREIGN KEY (manager_id) REFERENCES employees (id); | 为departments表的manager_id字段添加外键约束,关联到employees表的id字段,约束名为dept_fk |
相关问答FAQs:
问题1:在Oracle数据库中,如何一次性向表中插入多条记录?
在Oracle数据库中,可以使用多个INSERT语句依次插入多条记录,也可以使用PL/SQL块来实现一次性插入多条记录。
BEGIN INSERT INTO employees (id, name, salary) VALUES (4, '赵六', 8000); INSERT INTO employees (id, name, salary) VALUES (5, '孙七', 9000); INSERT INTO employees (id, name, salary) VALUES (6, '周八', 10000); END;
这种写法可以在一个事务中执行多个INSERT操作,确保数据的一致性。
问题2:在Oracle数据库中,如何修改已添加字段的默认值或数据类型?
在Oracle数据库中,修改已添加字段的默认值或数据类型可以使用ALTER TABLE语句结合MODIFY子句,要将employees表中department_id字段的默认值修改为2,可以使用以下语句:
ALTER TABLE employees MODIFY (department_id DEFAULT 2);
如果要修改字段的数据类型,例如将age字段的数据类型从NUMBER(3)修改为NUMBER(4),可以使用以下语句:
ALTER TABLE student MODIFY (age NUMBER(4));
需要注意的是,修改字段的数据类型可能会导致数据丢失或转换错误,因此在执行此类操作之前,
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/63903.html