### 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币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab的视频镜头检测、视频关键帧提取源代码+实验报告PPT
- 中国法研杯法律智能源码+设计文档.zip
- 智能循迹避障小车-基于树莓派图像识别(含源码+项目说明+硬件设计).zip
- 中文短文本实体链指技术-CCKS2019比赛技术创新奖解决方案(基于Python,含源码+项目说明).zip
- 智慧医疗在线挂号小程序(前后端分离,支持疫苗预约等模块,含源码+项目说明).zip
- 智能门禁系统-基于STM32的多模态身份验证(含人脸识别+蓝牙APP+RFID+密码锁,最新开发).zip
- 智能教室管理系统-基于龙芯2K1000处理器(含源码+项目说明+硬件设计).zip
- 智能售货系统-基于Qt的饮料售卖机(含源码+项目说明+硬件设计).zip
- 知识图谱医疗诊断问答系统python源码+项目说明(2024毕设).zip
- 指标体系管理系统-基于Java实现(含源码+项目说明+课设报告).zip
- Java 代码辅助开发工具
- 智慧路灯管理系统-基于MQTT协议+物联网云平台(含源码+项目说明+部署指南).zip
- 掌静脉识别系统-手势识别与特征提取(含源码+项目说明+GUI界面设计).zip
- 智慧养老系统-基于情感分析(实训项目,含源码+项目说明+设计文档).zip
- 证券交易系统开发(含源码+项目说明+设计文档).zip
- 征信系统-基于Hyperledger Fabric技术打造可靠信用评价体系(含源码及设计文档).zip