Sql-Server数据库查询语句练习题含标准答案.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
根据提供的文档内容,我们可以归纳出以下关键知识点: ### 一、创建数据库 #### 知识点1:数据库创建命令及参数设置 - **语法结构**:`CREATE DATABASE [数据库名] ON [数据文件] LOG ON [日志文件]` - **参数详解**: - **数据文件**: - `NAME`:指定数据文件的逻辑名称。 - `FILENAME`:指定数据文件的实际路径和文件名。 - `SIZE`:指定数据文件的初始大小。 - `MAXSIZE`:指定数据文件的最大大小。 - `FILEGROWTH`:指定数据文件的增长方式(增量或百分比)。 - **日志文件**: - 同上,参数与数据文件一致。 #### 实例解析 - **创建命令**: ```sql CREATE DATABASE edu ON PRIMARY ( NAME = N'edu_data', FILENAME = N'e:\edu_data.mdf' , SIZE =10240KB , MAXSIZE = 1024M , FILEGROWTH = 1M) LOG ON ( NAME = N'edu_log', FILENAME = N'e:\edu_log.ldf' , SIZE = 5M ,MAXSIZE = 100M , FILEGROWTH = 10% ) ``` ### 二、创建架构 - **命令**:`CREATE SCHEMA [架构名];` - **实例**:`create schema zhangsan;` ### 三、创建表 - **基本语法**:`CREATE TABLE [表名] ([字段列表]);` - **字段列表**包括字段名、数据类型、长度、是否允许为空、是否为主键等。 #### 表1:Student 表(学生信息表) - **字段说明**: - `sno`: 学生学号,Char类型,宽度8,不允许为空,主键。 - `sname`: 学生姓名,Char类型,宽度8,不允许为空。 - `sex`: 学生性别,Char类型,宽度2,允许为空。 - `native`: 籍贯,Char类型,宽度20,允许为空。 - `birthday`: 出生日期,Datetime类型,允许为空。 - `pno`: 专业号,Char类型,宽度4,允许为空。 - `dno`: 所在院系(外键),Char类型,宽度6,允许为空。 - `classno`: 班级号,Char类型,宽度4,允许为空。 - `entime`: 入校时间,Datetime类型,允许为空。 - `home`: 家庭住址,Varchar类型,宽度40,允许为空。 - `tel`: 联系电话,Varchar类型,宽度40,允许为空。 - **创建命令**: ```sql create table zhangsan.student( sno char(8) not null primary key, sname char(8) not null, sex char(2), native char(20), birthday datetime, pno char(4), dno char(6), classno char(4), entime datetime, home varchar(40), tel varchar(40) ); ``` #### 表2:Course 表(课程信息表) - **字段说明**: - `cno`: 课程编号,Char类型,宽度10,不允许为空,主键。 - `cname`: 课程名称,Char类型,宽度20,不允许为空。 - `cpno`: 先修课程(外键),Char类型,宽度10,允许为空。 - `experiment`: 实验时数,Tinyint类型,允许为空。 - `lecture`: 授课学时,Tinyint类型,允许为空。 - `semester`: 开课学期,Tinyint类型,允许为空。 - `credit`: 课程学分,Tinyint类型,允许为空。 - **创建命令**: ```sql create table zhangsan.course( cno char(10) not null primary key, cname char(20) not null, cpno char(10), experiment tinyint, lecture tinyint, semester tinyint, credit tinyint ); ``` #### 表3:Student_Course 表(学生选课成绩表) - **字段说明**: - `sno`: 学生学号,Char类型,宽度8,不允许为空,主键之一。 - `cno`: 课程编号,Char类型,宽度10,不允许为空,主键之一。 - `score`: 成绩,Tinyint类型,允许为空,范围0-100。 - **创建命令**: ```sql create table zhangsan.student_course( sno char(8) not null, cno char(10) not null, score tinyint, constraint pk_student_course primary key (sno, cno) ); ``` #### 表4:Teacher 表(教师信息表) - **字段说明**: - `tno`: 教师编号,Char类型,宽度8,不允许为空,主键。 - `tname`: 教师姓名,Char类型,宽度8,不允许为空。 - `sex`: 教师性别,Char类型,宽度2,允许为空。 - `birthday`: 出生日期,Datetime类型,允许为空。 - `dno`: 所在院系(外键),Char类型,宽度6,允许为空。 - `pno`: 职务,Varchar类型,宽度20,允许为空。 - `home`: 家庭住址,Varchar类型,宽度40,允许为空。 - `zipcode`: 邮政编码,Char类型,宽度6,允许为空。 - `tel`: 联系电话,Varchar类型,宽度40,允许为空。 - `email`: 电子邮件,Varchar类型,宽度40,允许为空。 - **创建命令**: ```sql create table zhangsan.teacher( tno char(8) not null primary key, tname char(8) not null, sex char(2), birthday datetime, dno char(6), pno varchar(20), home varchar(40), zipcode char(6), tel varchar(40), email varchar(40) ); ``` #### 表5:Teacher_Course 表(教师上课课表) - **字段说明**: - `tcid`: 上课编号,Smallint类型,不允许为空,主键。 - `tno`: 教师编号(外键),Char类型,宽度8,允许为空。 - `classno`: 班级号,Char类型,宽度4,允许为空。 - `cno`: 课程编号(外键),Char类型,宽度10,不允许为空。 - `semester`: 学期,Char类型,宽度6,允许为空。 - `schoolyear`: 学年,Char类型,宽度10,允许为空。 - `classtime`: 上课时间,Varchar类型,宽度40,允许为空。 - `classroom`: 上课地点,Varchar类型,宽度40,允许为空。 - `weektime`: 每周课时数,Tinyint类型,允许为空。 - **创建命令**: ```sql create table zhangsan.teacher_course( tcid smallint not null primary key, tno char(8), classno char(4), cno char(10) not null, semester char(6), schoolyear char(10), classtime varchar(40), classroom varchar(40), weektime tinyint ); ``` #### 表6:Department 表(院系信息表) - **字段说明**: - `dno`: 院系编号,Char类型,宽度6,不允许为空,主键。 - `dname`: 院系名称,Char类型,宽度8,不允许为空。 - `dhome`: 地址,Varchar类型,宽度40,允许为空。 - `dzipcode`: 邮政编码,Char类型,宽度6,允许为空。 - `dtel`: 联系电话,Varchar类型,宽度40,允许为空。 - **创建命令**: ```sql create table zhangsan.department( dno char(6) primary key, dname char(8) not null, dhome varchar(40), dzipcode char(6), dtel varchar(40) ); ``` ### 四、建立主、外键关系 - **主键**:每个表中至少有一个字段或字段组合作为主键,确保每条记录唯一性。 - **外键**:用于关联不同表中的数据,确保数据间的一致性和完整性。 - **示例**: - `ALTER TABLE [表名] ADD CONSTRAINT [约束名] FOREIGN KEY ([字段名]) REFERENCES [引用表名]([被引用字段名]);` 以上知识点涵盖了从创建数据库、创建架构到具体表的定义及其字段属性的设置等方面的内容,希望对学习SQL Server数据库管理有所帮助。
- lily2272024-04-21果断支持这个资源,资源解决了当前遇到的问题,给了新的灵感,感谢分享~
- 粉丝: 101
- 资源: 6万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助