### SQL语句实例及常用语句总结 #### 一、表操作 **1. 创建表** - **示例1**: 对于表的教学管理数据库中的表`STUDENTS`,可以定义如下: ```sql CREATE TABLE STUDENTS ( SNO NUMERIC(6,0) NOT NULL, SNAME CHAR(8) NOT NULL, AGE NUMERIC(3,0), SEX CHAR(2), BPLACE CHAR(20), PRIMARY KEY (SNO) ); ``` - **示例2**: 对于表的教学管理数据库中的表`ENROLLS`,可以定义如下: ```sql CREATE TABLE ENROLLS ( SNO NUMERIC(6,0) NOT NULL, CNO CHAR(4) NOT NULL, GRADE INT, PRIMARY KEY (SNO, CNO), FOREIGN KEY (SNO) REFERENCES STUDENTS (SNO), FOREIGN KEY (CNO) REFERENCES COURSES (CNO), CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100)) ); ``` **2. 查询与创建新表** - **示例3**: 根据表的`STUDENTS`表,建立一个只包含学号、姓名、年龄的女学生表。 ```sql CREATE TABLE GIRL AS SELECT SNO, SNAME, AGE FROM STUDENTS WHERE SEX = '女'; ``` **3. 删除表** - **示例4**: 删除教师表`TEACHER`。 ```sql DROP TABLE TEACHER; ``` **4. 修改表结构** - **示例5**: 在教师表中增加住址列。 ```sql ALTER TABLE TEACHERS ADD ADDR CHAR(50); ``` - **示例6**: 把`STUDENTS`表中的`BPLACE`列删除,并且把引用`BPLACE`列的所有视图和约束也一起删除。 ```sql ALTER TABLE STUDENTS DROP BPLACE CASCADE; ``` - **示例7**: 补充定义`ENROLLS`表的主关键字。 ```sql ALTER TABLE ENROLLS ADD PRIMARY KEY (SNO, CNO); ``` #### 二、视图操作 **1. 创建视图** - **示例9**: 建立一个只包括教师号、姓名和年龄的视图`FACULTY`。 ```sql CREATE VIEW FACULTY AS SELECT TNO, TNAME, AGE FROM TEACHERS; ``` - **示例10**: 从学生表、课程表和选课表中产生一个视图`GRADE_TABLE`,它包括学生姓名、课程名和成绩。 ```sql CREATE VIEW GRADE_TABLE AS SELECT SNAME, CNAME, GRADE FROM STUDENTS, COURSES, ENROLLS WHERE STUDENTS.SNO = ENROLLS.SNO AND COURSES.CNO = ENROLLS.CNO; ``` **2. 删除视图** - **示例11**: 删除视图`GRADE_TABLE`。 ```sql DROP VIEW GRADE_TABLE RESTRICT; ``` #### 三、索引操作 **1. 创建索引** - **示例12**: 在学生表中按学号建立索引。 ```sql CREATE UNIQUE INDEX ST ON STUDENTS (SNO ASC); ``` **2. 删除索引** - **示例13**: 删除按学号所建立的索引。 ```sql DROP INDEX ST; ``` #### 四、数据库模式操作 **1. 创建数据库模式** - **示例14**: 创建一个简易教学数据库的数据库模式`TEACHING_DB`,属主为`ZHANG`。 ```sql CREATE SCHEMA TEACHING_DB AUTHORIZATION ZHANG; ``` **2. 删除数据库模式** - **示例15**: 删除简易教学数据库模式`TEACHING_DB`。 ```sql DROP SCHEMA TEACHING_DB CASCADE; ``` #### 五、单表查询操作 **1. 查询特定条件的数据** - **示例16**: 找出3个学分的课程号和课程名。 ```sql SELECT CNO, CNAME FROM COURSES WHERE CREDIT = 3; ``` - **示例17**: 查询年龄大于22岁的学生情况。 ```sql SELECT * FROM STUDENTS WHERE AGE > 22; ``` - **示例18**: 找出籍贯为河北的男生的姓名和年龄。 ```sql SELECT SNAME, AGE FROM STUDENTS WHERE BPLACE = '河北' AND SEX = '男'; ``` - **示例19**: 找出年龄在20~23岁之间的学生的学号、姓名和年龄,并按年龄升序排序。 ```sql SELECT SNO, SNAME, AGE FROM STUDENTS WHERE AGE BETWEEN 20 AND 23 ORDER BY AGE; ``` - **示例20**: 找出年龄小于23岁、籍贯是湖南或湖北的学生的姓名和性别。 ```sql SELECT SNAME, SEX FROM STUDENTS WHERE AGE < 23 AND (BPLACE = '湖南' OR BPLACE = '湖北'); ``` 通过以上示例我们可以了解到SQL语言的强大之处,不仅可以用来创建和管理数据库及其对象,还能进行复杂的数据查询和处理。这些基本操作是每个数据库管理员和开发者都必须掌握的技能。希望这些示例能帮助大家更好地理解和掌握SQL语言。
剩余18页未读,继续阅读
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助