Oracle基础SQL语句


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_nameage 列的数据。
  • 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 数据库的基础。你可以根据具体的业务需求对这些语句进行组合和扩展,以完成更复杂的数据库操作。