SQL复习:建表、更新与查询操作详解

需积分: 5 1 下载量 32 浏览量 更新于2024-06-16 收藏 444KB DOCX 举报
"这篇资料主要涵盖了SQL语言的基础知识,包括创建表、更新表结构、管理表内容以及查询数据等核心概念。" 在SQL(Structured Query Language)中,数据库管理和操作的核心在于对数据的创建、修改和查询。以下是针对标题和描述中的知识点的详细解释: 1. 创建表(建表) SQL中创建表的语法是`CREATE TABLE`,用于定义表的结构,包括列名(Attributes)和数据类型(Data Types)。例如,创建一个名为`instructor`的表,包含`ID`、`name`、`dept_name`和`salary`四个字段。`ID`作为主键,`dept_name`作为外键关联到`department`表。完整的创建语句如下: ``` CREATE TABLE instructor ( ID char(5), name varchar(20) NOT NULL, dept_name varchar(20), salary numeric(8,2), PRIMARY KEY (ID), FOREIGN KEY (dept_name) REFERENCES department ); ``` 2. 更新表结构 - `ALTER TABLE R ADD A`:向表`R`中添加属性`A`。 - `ALTER TABLE R DROP A`:从表`R`中删除属性`A`。 - `DROP TABLE R`:删除表`R`。 3. 更新表的内容 - `INSERT INTO R VALUES (v1, v2, ..., vn)`:向表`R`中插入一个新的元组(行),值分别为`v1`到`vn`。 - `DELETE FROM R`:删除表`R`中的所有元组。 - `UPDATE R SET A = v WHERE P`:更新表`R`中满足条件`P`的元组,将属性`A`设置为`v`。 4. 查询数据 - `SELECT A1, A2, ..., An FROM R1, R2, ..., Rm WHERE P`:从关系`R1`, `R2`, ..., `Rm`中选择满足条件`P`的属性`A1`, `A2`, ..., `An`。 - `SELECT DISTINCT dept_name FROM instructor`:从`instructor`表中去除重复的`dept_name`信息。 - `SELECT ID, name, salary/12 FROM instructor`:查询所有老师的工号、姓名和月薪。 - `SELECT ID, name, salary/12 AS monthly_salary FROM instructor`:同上,但`salary/12`别名为`monthly_salary`。 - `SELECT name FROM instructor WHERE dept_name = 'Comp.Sci.' AND salary > 80000`:找出计算机科学系薪水超过80000的老师名字。 - `SELECT names_of_instructors, course_id FROM instructor, courses WHERE instructor.dept_name = 'Art' AND instructor.ID = courses.professor_id`:找到艺术系所有教过课程的老师名字和课程编号(笛卡尔积)。 这些基本的SQL操作是数据库管理的基础,掌握了它们,就能有效地管理和操作数据库中的数据。在实际应用中,还需要学习更复杂的查询,如联接(JOIN)、子查询(Subquery)、分组(GROUP BY)和排序(ORDER BY)等。