SqlServer数据库基本用法

摘要:
1.使用T-SQL语句创建数据库。要求如下:初始数据库大小:3MB;文件大小自动增加3MB MB,增长限制为15MB;数据库日志文件的初始大小:1MB;文件大小自动增加5%,增长限制为10MB;将数据库文件的保存路径设置为D:gzgl,其余设置为默认值。
1. 利用T-SQL语句,创建数据库(工资管理数据库),要求如下:
数据库初始大小:3MB;文件大小按兆字节3MB自动增长,增长限制为:15MB;
数据库日志文件初始大小:1MB;
文件大小按百分比5%自动增长,增长限制为:10MB;
设定数据库文件保存路径为D:gzgl,其余为默认。

create database工资管理数据库
on(name=工资管理数据库,
filename='D:gzgl工资管理数据库.mdf',
size=3mb,
maxsize=15mb,
filegrowth=3mb
)
log on(name=工资管理数据库_log,
filename='D:gzgl工资管理数据库_log.ldf',
size=1mb,
maxsize=10mb,
filegrowth=5%)

2. 利用T-SQL语句,在新建数据库中,创建以下三个表,表结构如下:
表“部门信息表”
列名    数据类型    长度    是否空值    约束
编号    Char否        主键
名称    varChar        20否    
电话    Char        12use工资管理数据库
go
create table部门信息表
(编号 Char(5) primary key not null,
名称 varChar(20) not null,
电话 Char(12) not null)

表“员工信息表”
列名    数据类型    长度    是否空值    约束
编号    Char         11否        主键
姓名    nChar         8否    
性别    nChar         1[男,女]出生日期Datetime     8是    
部门编号char         5否        外键
电话    Char         12否       唯一索引
注:部门编号参照’部门信息表.编号’为外键,性别默认值为“男”

use工资管理数据库
go
create table员工信息表
(编号 Char(11) primary key not null,
姓名 nChar(8) not null,
性别 nChar(1) check(性别=''or 性别='') default('') not null,
出生日期 Datetime not null,
部门编号 char(5) foreign key references 部门信息表(编号) not null,
电话 Char(12) unique not null)

表“工资表”
列名    数据类型    长度    是否空值    约束
员工编号    Char    11否       主键
基本工资    Decimal(6,2)        是    
奖金    Decimal    (6,2)        是    
扣除    Decimal    (6,2)        是      [0,1000]说明:设置‘员工编号’参照“员工信息表.编号”为外键约束;

use工资管理数据库
go
create table工资表
(员工编号 char(11) not null primary key foreign key references员工信息表(编号),
基本工资 decimal(6,2) not null,
奖金 decimal(6,2) not null,
扣除 decimal(6,2) check(扣除>0 and 扣除<1000) not null)

3.使用insert 语句向表中插入1条记录

insert into部门信息表
values ('06','刘华奇','123456')
go

4.使用update语句更新表中的数据

update 工资表 set 基本工资=基本工资*1.2
go)

5,查找每位教师的信息
select *
from教师信息表
go

6,查找每位学生的学号,姓名,性别,出生日期 
select学号,姓名,性别,出生日期
from学生信息表
go

7,查找每位学生的学号,姓名,性别,年龄
select 学号,姓名,性别,'年龄'=year(getdate())-year(出生日期)
from学生信息表
go

8,查找年龄>30的所有女生的信息,

select *
from学生信息表
where 性别='' and year(getdate())-year(出生日期)>30
go

9. 计算教学成绩表中每位同学的期末总评=30+分数*0.7

select 学号, '期末总评'=30+分数*0.7
from教学成绩表
go

10. 列出教学成绩表中所有学生课程的分数在70~90的学号,课程编号和分数

select学号,课程编号,分数
from教学成绩表
where 课程编号='900013' and 分数>=70 and 分数<=90
go


11. 查询学生信息表中籍贯中包含‘山’字符的同学信息

select *
from学生信息表
where 籍贯 like '%山%'
go
① 查询 yiqi_product 表中 cid 为 16 且 名称中含有 钢结构的信息
SELECT*FROM`yiqi_product`WHEREcid='116'andnameLIKE'%钢结构%'
12、利用T-SQL语句,将员工编号为的员工姓名改为“张三丰”。 update 员工信息表 set 姓名='张三丰' where 编号='01' go 13、利用T-SQL语句,将工资表中基本工资〈,奖金<2000的扣除项改为. update 工资表 set 扣除 =1000 where 基本工资<3000 and 奖金<2000 go 14、利用T-SQL语句,删除员工信息表中部门编号为的男性员工的信息。 delete员工信息表 where 部门编号='001' go 15、查询学生信息表的前条记录 select top 10 percent * from学生信息表 go 16、将课程的成绩按从大到小排序 (asc:升序, desc:降序 ) select * from教学成绩表 where 课程编号='900001' order by 分数 desc go 17. 查询各科的平均分>70的课程名称 select 名称, avg(分数) from 教学成绩表 join课程信息表 on 教学成绩表.课程编号=课程信息表.编号 group by名称 having avg(分数)>70 18. 查询每位同学的学号,姓名,课程编号和分数 select教学成绩表.学号,姓名,课程编号,分数 from 学生信息表 join教学成绩表 on 教学成绩表.学号=学生信息表.学号 19. 查询每位同学的学号,姓名,课程编号,课程名称和分数 select教学成绩表.学号,姓名,课程编号,分数,名称 from 学生信息表 join教学成绩表 on 教学成绩表.学号=学生信息表.学号 join课程信息表 on 课程信息表.编号=教学成绩表.课程编号 20. 查询参加计算机网络技术考试的学生学号和分数 select学号,分数 from 教学成绩表 cross join课程信息表 where 名称='计算机网络技术' 21. 统计每位教师所教课程的平均分(教师姓名,课程名称,平均分) select 姓名,名称,'平均分'=AVG(分数) from 教学成绩表 join课程信息表 on 教学成绩表.课程编号=课程信息表.编号 join教师信息表 on 教师信息表.编号=教学成绩表.教师编号 group by姓名,名称 22. 建立索引 IX_name,按照学生信息表的姓名查询时,提升查询速度 create indexIX_name on学生信息表(姓名) 23.创建存储过程,名称为pr_1 create procedurepr_1 as select * from学生信息表 24. 统计每科的考试分数的平均分,最高分和参加考试人数 create viewview_4 as select 名称,平均分=avg(分数),最高分=max(分数),参加考试人数=count(*) from 教学成绩表 join课程信息表 on 课程信息表.编号=教学成绩表.课程编号 group by 名称

免责声明:文章转载自《SqlServer数据库基本用法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CentOS 7 64位 安装 PostgreSQL 9.2整理ASP.NET VS2013 Office 转 PDF下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C/C++(基础编码-补码详解)

两个数的交换 1.引入第三者。 2.求和运算,求差。(这样会产生内存溢出) 3.异或运算 a = a^b; b = a^b; a = a^b; 8b(bit位) = 1B(Byte=字节)//最小单位是字节 32位机:2^32 = 4G寻址能力 (王爽--统一编址,汇编语言) char类型一个字节,8位。[-128,12...

ASCII 非打印字符

项目出了问题,因为AscII非打印字符的原因,后来找了一下啊ASCII的非打印字符,总共有31个,然后我们直接全部替换成问号了. 解决方式为先找到非打印字符,这是我从网上找的非打印字符表: 进制 十六进制 字符   十进制 十六进制 字符 0 00 空   16 10 数据链路转意 1 01 头标开始   17 11 设备控制 1 2 02...

C语言:字符数组 + 字符串指针

字符数组 C语言中没有特定的字符串类型,通常是将字符串放在一个字符数组中。 字符串指针 除了字符数组,C语言还支持另外一种表示字符串的方法,就是直接使用一个指针指向字符串。 char *str = "leetcode"; char *str; str = "leetcode"; 字符串中的所有字符在内存中是连续存放的,str指向的是字符串的第0个字符,即...

java之endwith()方法以及正则表达式匹配中文

今天写程序的时候遇到判断需要使用多个if(){}else{}语句,观察了一下需要判断的条件,发现判断的条件可以变为对条件最后几个汉字的判断,就想用正则表达式来对汉字判断,写完后,想到可以用Java中String类的endwith()方法来对汉字实现匹配,例如 String str="世界你好我喜欢编程"; if(str.endwith("编程")){   ...

微软Blazor组件发布,DevExpress v19.1.8中可用:Charts新功能

点击获取DevExpress v19.2.3最新完整版试用下载 DevExpress UI for Blazor在v19.1.8中可用,此次更新发布包括DevExpress Blazor组件的主要功能增强:新的数据网格、图表、TreeView和Tabs。本文将先为大家介绍事件源检测、图表、标签等功能,迎下载最新版试用体验>> TreeView...

sql server字符串中怎么添加换行?

换行/回车,可以使用CHAR函数处理,比如: 1 insert into tbtest (text) values ('abc' + char(13)+char(10) + 'def') 主要还是要看你MFC它支持的换行是哪种形式: char(13)+char(10)形式还是使用转义的 形式,如果是转义形式的话,可以直接使用 1 insert ...