Oracle的创建表、插入数据脚本

本文介绍了一个简单的数据库创建过程,包括定义表结构、插入多种犬种数据,并展示了如何查询这些数据。通过具体的SQL语句,读者可以了解到如何使用SQL进行基本的数据操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

create table DOG_D
(
  ID   NUMBER not null,
  MZ   NVARCHAR2(20) not null
);

INSERT INTO DOG_D VALUES('1','金毛');
INSERT INTO DOG_D VALUES('2','萨摩耶');
INSERT INTO DOG_D VALUES('3','拉布拉多');
INSERT INTO DOG_D VALUES('4','边牧');
INSERT INTO DOG_D VALUES('5','秋田');
INSERT INTO DOG_D VALUES('6','田园');
INSERT INTO DOG_D VALUES('7','柯基');
INSERT INTO DOG_D VALUES('8','斗牛');
INSERT INTO DOG_D VALUES('9','比熊');
INSERT INTO DOG_D VALUES('10','贵宾');
INSERT INTO DOG_D VALUES('11','阿拉斯加');
INSERT INTO DOG_D VALUES('12','哈士奇');
INSERT INTO DOG_D VALUES('13','巴哥');
INSERT INTO DOG_D VALUES('14','博美');
INSERT INTO DOG_D VALUES('15','雪纳瑞');

SELECT * FROM DOG_D;

 

<think>根据用户需求,需要提供在Oracle 19c中创建插入数据的SQL脚本示例。结合引用内容,特别是引用[3]中提供了创建插入数据的示例,以及使用PL/SQL循环插入多条数据的示例。引用[1]中也有使用Python连接Oracle并执行SQL的示例,但用户明确要求SQL脚本,因此主要提供SQL脚本。 注意:在Oracle中,创建需要先有用户和权限。假设已经创建了用户并授予了必要的权限(如引用[3]中提到的创建本地用户和授予权限)。 以下提供两个示例: 1. 基本示例:创建插入几条数据。 2. 进阶示例:使用PL/SQL循环插入100条数据(如引用[3]所示)。 另外,引用[4]提到在CDB环境下需要注意连接方式,但脚本本身在PDB中执行与非CDB类似。这里假设我们在PDB中操作。 示例1:基本创建插入数据 ```sql -- 创建 CREATE TABLE employees ( id NUMBER PRIMARY KEY, name VARCHAR2(100), age NUMBER, email VARCHAR2(100), created_date DATE ); -- 插入单条数据 INSERT INTO employees (id, name, age, email, created_date) VALUES (1, 'John Doe', 30, 'john.doe@example.com', SYSDATE); -- 插入多条数据 INSERT INTO employees (id, name, age, email, created_date) VALUES (2, 'Jane Smith', 28, 'jane.smith@example.com', SYSDATE); INSERT INTO employees (id, name, age, email, created_date) VALUES (3, 'Bob Johnson', 35, 'bob.johnson@example.com', SYSDATE); -- 提交 COMMIT; ``` 示例2:使用PL/SQL块插入100条随机数据(参考引用[3]) ```sql -- 假设已经创建employees BEGIN FOR i IN 1..100 LOOP INSERT INTO employees (id, name, age, email, created_date) VALUES ( i, 'Name_' || i, TRUNC(DBMS_RANDOM.VALUE(18, 60)), -- 生成18到60之间的随机整数年龄 'user' || i || '@example.com', SYSDATE - DBMS_RANDOM.VALUE(0, 365) -- 随机生成一年内的日期 ); END LOOP; COMMIT; END; / ``` 注意: 1. 使用`DBMS_RANDOM`包生成随机数,需要确保有执行该包的权限。 2. 在运行PL/SQL块之前,确保创建。 如果用户没有创建的权限,需要先创建用户并授权(如引用[3]中提到的创建用户和授权步骤): ```sql -- 创建用户(在CDB环境下需要在PDB中创建,这里假设PDB为orclpdb) ALTER SESSION SET CONTAINER = orclpdb; CREATE USER db_user IDENTIFIED BY password; GRANT CONNECT, RESOURCE TO db_user; ALTER USER db_user QUOTA UNLIMITED ON users; ``` 然后切换到该用户下创建。 以上脚本可以直接在SQL*Plus或SQL Developer中执行。 引用说明: [^1] 提供了使用Python连接Oracle的示例,但用户需要的是SQL脚本,因此未直接采用。 [^3] 提供了使用PL/SQL循环插入数据的示例,这里借鉴并稍作调整。 [^4] 提到了在CDB环境下安装样例数据库的注意事项,但本例中创建普通不受影响。 根据用户需求,生成相关问题: 1. 如何在Oracle 19c中创建新用户并授予权限? 2. 如何在Oracle 19c中生成随机数据? 3. 如何在Oracle 19c中查看结构和数据?</think>以下是在 Oracle 19c 中创建插入数据的 SQL 脚本示例,包含基本操作和批量插入技巧: ### 基础示例:创建插入数据 ```sql -- 创建用户并授权(需DBA权限) CREATE USER demo_user IDENTIFIED BY your_password; GRANT CONNECT, RESOURCE TO demo_user; ALTER USER demo_user QUOTA UNLIMITED ON USERS; -- 切换到新用户 CONNECT demo_user/your_password -- 创建员工 CREATE TABLE employees ( id NUMBER PRIMARY KEY, name VARCHAR2(50) NOT NULL, salary NUMBER(8,2), hire_date DATE DEFAULT SYSDATE ); -- 插入单条数据 INSERT INTO employees (id, name, salary) VALUES (1, '张三', 8500.00); -- 插入多条数据 INSERT ALL INTO employees (id, name, salary) VALUES (2, '李四', 9200.00) INTO employees (id, name, salary) VALUES (3, '王五', 7800.00) SELECT * FROM dual; -- 提交事务 COMMIT; ``` ### 批量插入100条随机数据(使用PL/SQL) ```sql BEGIN FOR i IN 1..100 LOOP INSERT INTO employees (id, name, salary, hire_date) VALUES ( i, '员工_' || DBMS_RANDOM.STRING('U',5), -- 随机5位大写字母名字 ROUND(DBMS_RANDOM.VALUE(5000, 20000), 2), -- 随机工资 SYSDATE - DBMS_RANDOM.VALUE(0, 365*3) -- 3年内随机入职日期 ); END LOOP; COMMIT; END; / ``` ### 关键说明: 1. **用户创建**:需`CREATE USER`权限,建议使用`GRANT CONNECT, RESOURCE`授权基础权限[^3] 2. **设计**: - `NUMBER`:存储数值类型 - `VARCHAR2`:可变长度字符串 - `DATE`:日期类型,`DEFAULT SYSDATE`设置默认值 3. **批量插入**: - 使用`INSERT ALL`语法插入多行[^1] - 结合`DBMS_RANDOM`包生成随机数据[^3] - `COMMIT`提交事务确保数据持久化 ### 验证数据 ```sql -- 查看前10条记录 SELECT * FROM employees WHERE ROWNUM <= 10; -- 统计信息 SELECT COUNT(*) AS total, AVG(salary) AS avg_salary FROM employees; ``` > **注意**:在CDB容器数据库中,需先切换到PDB执行: > ```sql > ALTER SESSION SET CONTAINER = your_pdb_name; > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值