Oracle基础SQL语句
创建表(CREATE TABLE)
使用 CREATE TABLE 语句来创建一个新的表。以下是一个示例:
CREATE TABLE students (
    student_id NUMBER(10) PRIMARY KEY,
    student_name VARCHAR2(100) NOT NULL,
    age NUMBER(3),
    email VARCHAR2(200) UNIQUE,
    enrollment_date DATE DEFAULT SYSDATE
);
解释:
CREATE TABLE students:创建一个名为students的表。student_id NUMBER(10) PRIMARY KEY:创建一个名为student_id的列,数据类型为NUMBER,长度为 10 位,且将其设置为主键,确保每个student_id都是唯一的。student_name VARCHAR2(100) NOT NULL:创建一个名为student_name的列,数据类型为VARCHAR2,长度为 100 个字符,且不允许为空。age NUMBER(3):创建一个名为age的列,数据类型为NUMBER,长度为 3 位。email VARCHAR2(200) UNIQUE:创建一个名为email的列,数据类型为VARCHAR2,长度为 200 个字符,且保证该列的值在表内唯一。enrollment_date DATE DEFAULT SYSDATE:创建一个名为enrollment_date的列,数据类型为DATE,并将其默认值设置为当前系统日期。
插入数据(INSERT)
使用 INSERT 语句向表中添加新的数据行。以下是几个插入数据的示例:
收起
-- 插入一行数据,明确指定列名
INSERT INTO students (student_id, student_name, age, email)
VALUES (1, 'Alice', 20, 'alice@example.com');
-- 插入一行数据,不指定列名,此时需要按照表中列的顺序插入数据
INSERT INTO students
VALUES (2, 'Bob', 22, 'bob@example.com', SYSDATE);
-- 插入一行数据,使用默认值(enrollment_date 会使用 SYSDATE)
INSERT INTO students (student_id, student_name, age, email)
VALUES (3, 'Charlie', 21, 'charlie@example.com');
COMMIT;
解释:
INSERT INTO students:指定要插入数据的表。(student_id, student_name, age, email):明确列出要插入数据的列。VALUES (1, 'Alice', 20, 'alice@example.com'):提供要插入的具体数据,数据的顺序要与列出的列名顺序一致。
查询数据(SELECT)
使用 SELECT 语句从表中检索数据。以下是几个查询数据的示例:
-- 查询表中所有数据
SELECT * FROM students;
-- 查询特定列的数据
SELECT student_name, age FROM students;
-- 查询满足条件的数据
SELECT * FROM students WHERE age > 20;
-- 查询并排序数据
SELECT * FROM students ORDER BY age DESC;
-- 使用聚合函数
SELECT COUNT(student_id) AS student_count FROM students;
解释:
SELECT * FROM students:选择students表中的所有列的数据。SELECT student_name, age FROM students:只选择student_name和age列的数据。WHERE age > 20:筛选出age大于 20 的数据行。ORDER BY age DESC:按照age列降序排序数据。COUNT(student_id) AS student_count:使用COUNT聚合函数统计student_id的数量,并将结果命名为student_count。
更新数据(UPDATE)
使用 UPDATE 语句更新表中的数据。以下是一个更新数据的示例:
-- 更新满足条件的数据
UPDATE students
SET age = 23, email = 'alice.new@example.com'
WHERE student_id = 1;
COMMIT;
解释:
UPDATE students:指定要更新的表。SET age = 23, email = 'alice.new@example.com':设置要更新的列及其新值。WHERE student_id = 1:仅更新student_id等于 1 的行。
删除数据(DELETE)
使用 DELETE 语句从表中删除数据。以下是一个删除数据的示例:
-- 删除满足条件的数据
DELETE FROM students WHERE age < 21;
COMMIT;
解释:
DELETE FROM students:指定要删除数据的表。WHERE age < 21:仅删除age小于 21 的行。
注意事项:
- 在创建表时,可以使用更多的约束,如外键约束、检查约束等,以确保数据完整性。
 - 在插入数据时,确保插入的数据符合列的数据类型和长度限制。
 - 在更新和删除数据时,使用 
WHERE条件要谨慎,避免误操作影响整个表的数据。 
这些 SQL 语句涵盖了 Oracle 19c 中创建表和进行基本的增删改查操作,是操作 Oracle 数据库的基础。你可以根据具体的业务需求对这些语句进行组合和扩展,以完成更复杂的数据库操作。