sql语句小练习二

1、创建一个数据库StudentManage, 初始化大小10M,不足以1M每次增长

create database StudentManage

on

(

name = ‘StudentManage_data‘,

filename = ‘D:\StudentManage_data.mdf‘,

size = 10mb,

maxsize = 100mb,

filegrowth = 15%

)

log on

(

name = ‘StudentManage_log‘,

filename = ‘D:\StudentManage_log.ldf‘,

size = 2mb,

filegrowth = 1mb

)

2、其中表结构包括

学生信息表:StudentInfo

( 学生ID(主键),

所在班级ID(外键约束),

学生姓名(非空约束),

性别(检查约束(男,女)),

年龄(检查约束(6-30)),

身份证号(检查约束),

家庭地址(默认值‘地址不详’))

create table StudentInfo

(

StuId varchar(10) primary key,

ClassId varchar(8) foreign key references ClassInfo(ClassId),

StuName varchar(6) not null,

Sex varchar(4) default ‘男‘ check(Sex=‘男‘or Sex=‘女‘),

Age smallint check(Age>0 and Age<36),

IdNum char(18) check(IdNum like ‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9,X]‘),

StuAddress nvarchar(50) default ‘地址不详‘,

)

教师信息表:TeacherInfo

(教师ID(主键),

教师姓名(非空约束),

性别(检查约束(男,女)),

年龄(检查约束(25-60)),

身份证号(检查约束),

教学方向

家庭地址(默认值‘地址不详’))

create table TeacherInfo

(

TecId varchar(10) primary key,

TecName varchar(8) not null,

Sex varchar(4) default ‘男‘ check(Sex=‘男‘ or Sex=‘女‘),

Age smallint check(Age>25 and Age<60),

IdNum char(18) check(IdNum like ‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9,X]‘),

TecWhat nvarchar(8) not null,

TecAddress nvarchar(50) default ‘地址不详‘,

)

班级信息表:ClassInfo

(班级ID(主键),

班级名称(非空约束),

班级人数(15-60),

入校时间,

毕业时间

)

use StudentManage

create table ClassInfo

(

ClassId varchar(8) primary key,

ClassName varchar(8) not null,

CstuNum int,

InDate date,

GraduDate date

)

课程信息表:CourseInfo

(课程ID(主键),

课程名称(非空约束),

)

create table CourseInfo

(

CourId varchar(8) primary key,

CourName varchar(8) not null

)

考分信息表:Scores

(ID(标识列,(1, 1)),

学生ID(外键约束),

教师ID(外键约束),

考试批次,--第一次考还是补考?

分数(0-100)

)

create table ScoresInfo

(

ScoreId int primary key identity(1,1),

StuId varchar(10) foreign key references StudentInfo(StuId),

TecId varchar(10) foreign key references TeacherInfo(TecId),

PiCi varchar(8),

Score smallint check(Score>=0 and Score <=100)

)

3、以上的每个表至少加入3条以上的记录

use StudentManage

--向班级表插入三条数据

insert into ClassInfo

values(‘101‘,‘计算机‘,50,‘2010-09-09‘,‘2014-10-10‘)

insert into ClassInfo

values(‘102‘,‘嵌入式‘,50,‘2010-09-09‘,‘2014-10-10‘)

insert into ClassInfo

values(‘103‘,‘网络安全‘,50,‘2010-09-09‘,‘2014-10-10‘)

--向学生信息表里插入数据

insert into StudentInfo

values(‘144712190‘,‘101‘,‘武索普‘,‘男‘,18,‘411481199012102908‘,default)

insert into StudentInfo

values(‘144712221‘,‘102‘,‘路飞‘,‘男‘,18,‘211481199012102593‘,default)

insert into StudentInfo

values(‘144712321‘,‘103‘,‘罗宾‘,‘女‘,18,‘511481199012102908‘,default)

--向教师信息表里插入数据

insert into TeacherInfo

values(‘541001‘,‘白胡子‘,‘男‘,50,‘123456789098765432‘,‘震震大地‘,default)

insert into TeacherInfo

values(‘541002‘,‘罗利‘,‘男‘,50,‘323456789098765432‘,‘催眠掌‘,default)

insert into TeacherInfo

values(‘541003‘,‘帝喾克‘,‘女‘,26,‘523456789098765432‘,‘媚眼‘,default)

--向课程信息表里插入数据

insert into CourseInfo

values(‘101‘,‘气武镜‘)

insert into CourseInfo

values(‘102‘,‘玄武镜‘)

insert into CourseInfo

values(‘103‘,‘灵武镜‘)

insert into CourseInfo

values(‘104‘,‘天武镜‘)

--向成绩表里插入数据

insert into ScoresInfo

values(‘144712190‘,‘541001‘,‘第一批‘,100)

insert into ScoresInfo

values(‘144712221‘,‘541002‘,‘第一批‘,100)

insert into ScoresInfo

values(‘144712321‘,‘541003‘,‘第一批‘,100)

时间: 2024-07-28 13:11:24

sql语句小练习二的相关文章

SQL语句小总结

无论是面试过程中,还是未来工作中,SQL都是一定会考到和用到的.所以,在此对之前看过的一些SQL知识点进行一下总结和记录,算是起到一个笔记本的作用.没有深入学习过SQL的和对SQL印象不太深的朋友可以看一下,起到一个快速使用SQL语句的作用(针对有一点SQL知识的人的). 首先,SQL最基础的就是语句的使用,SQL根据功能分为查询语句.插入语句.修改语句和删除语句,这里用到最多的便是查询语句,首先便总结一下查询语句的用法: 1.简单查询 (1).select name from table; 意

sql语句小练习一

近期在学习sql server,老师布置了一些小练习.说实话这些练习题在网上都能找到答案的,可是直接抄答案有什么意思呢?简直是浪费生命! 以下附原题及个人写的sql语句,如有和网上某某的语句相同,只能说纯属雷同了.因为本人不喜欢直接copy某某的东西,学习一定要有一个认真的态度. 原题及答案如下: create database aaa go use aaa go create table student( sno varchar(3), sname varchar(4) not null,--

sql语句小练习

1.用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 81 王五 数学 100 王五 英语 90 A:select distinct name from table where name not in (select distinct name from table where fenshu<=80)    关键词 DISTINCT 用于返回唯一不同的值 B:sel

oracle中sql语句小练习(使用连接查询)

假设A(m,n,p),B(m,n,p) --1.A表中有某一项m而B表中没有 使用左连接查询:select a.* from A a left join B b on a.m=b.m where b.m is null; 左连接查询公共部分以及A表中的全部数据,B表中该列值为null的数据即为A中存在而B中不存在的结果. --2.A表中没有某一项m而B表中有 可改为使用右连接查询: select b.* from A a right join B b on a.m=b.m where a.m i

SQL语句汇总(二)——数据修改、数据查询

SQL语句第二篇,不说废话直接开始吧. 首先创建一张表如下,创建表的方法在上篇介绍过了,这里就不再赘述. 添加新数据: INSERT INTO <表名> (<列名列表>) VALUES (<值列表>)  如: INSERT INTO t_student (student_id,student_name,student_age,student_sex) VALUES (1,'大毛',18,'男'); 其中列名可以省略,省略之后要求插入的值必须与列一一对应: INSERT

mysql使用基础 sql语句与数据完整性(二)

二.DML:Data Manipulation Language 数据操作语言 作用:操作表中的数据的. 关键:INSERT UPDATE DELETE 注意:日期或字符串.字符要使用单引号引起来. 假设已经存在表user : 1 mysql>CREATE TABLE uesr( 2 id int, 3 username varchar(200), 4 gender varchar(10), 5 birthday date, 6 entry_date date, 7 job varchar(20

Oracle SQL精妙SQL语句讲解(二)

- 如果存在就更新,不存在就插入用一个语句实现 DROP TABLE t_mg; CREATE TABLE t_mg(code VARCHAR2(10), NAME VARCHAR2(10)); SELECT * FROM t_mg; MERGE INTO t_mg a USING (SELECT 'the code' code, 'the name' NAME FROM dual) b ON (a.code = b.code) WHEN MATCHED THEN UPDATE SET a.NA

批处理SQL语句

作用:想发送多条SQL,又要降低与数据库系统的交互,这时使用批处理        一]Statement对象——适合对不同结构的SQL语句进行批处理操作        步骤:            1)将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中                void addBatch(String sql);            2)将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组.                in

应用索引技术优化SQL 语句一

一.前言 很多数据库系统性能不理想是因为系统没有经过整体优化,存在大量性能低下的SQL 语句.这类SQL语句性能不好的首要原因是缺乏高效的索引.没有索引除了导致语句本身运行速度慢外,更是导致大量的磁盘读写操作,使得整个系统性能都受之影响而变差.解决这类系统的首要办法是优化这些没有索引或索引不够好的SQL语句. 本文讨论和索引相关的有关内容,以及通过分析语句的执行计划来讲述如何应用索引技术来优化SQL 语句.通过分析执行计划,读者可以检查索引是否有用,以及如何创建高效的索引.本文对数据库管理人员以