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