TSQL语句复习

  • 一、T-SQL创建XS数据库(database)
  • 二、T-SQL管理XS数据库(查看、修改、缩小、重命名、删除数据库)
    • 2.1、T-SQL查看(sp_helpdb)XS数据库信息
    • 2.2、T-SQL修改(alter)XS数据库信息
  • 三、T-SQL创建XSDA ==数据表== (table)
    • 3.1、T-SQL查看(sp_help)xsda数据表(==注意对比查看数据库==)
    • 3.2、T-SQL管理数据表(增删列、修改列属性、插入删除数据、重命名列or表名、删除表、修改记录值)
  • 四、T-SQL实现查询表中数据
    • 4.1语法格式 and 执行顺序
    • 4.2 简单查询习题汇总
  • 五、使用连接查询 or 子查询 实现查找
    • 习题汇总
  • 六、T-SQL创建视图(view)

一、T-SQL创建XS数据库(database)

create database XS
on
(   name = xs_dat, --逻辑文件名filename = 'D:\数据库复习\xd_dat.mdf', --物理文件名size = 20 mb,   --初始大小至少为4mb,因为系统自带数据库需要占用4Mbfilegrowth = 1mb  --默认都是mb,还可以使用%
), --第一个只能为mdf文件,加逗号紧跟上是ndf文件
(name = xs_dat2,filename = 'D:\数据库复习\xd_dat.ndf',   --注意是ndf次要数据库文件size = 10 mb,filegrowth = 10%
)   --TSQL结尾都不要加 ,
log on
(name = xs_log,filename = 'D:\数据库复习\xd_log.ldf',    --ldf->log date file size = 1,filegrowth = 10%
)

二、T-SQL管理XS数据库(查看、修改、缩小、重命名、删除数据库)

2.1、T-SQL查看(sp_helpdb)XS数据库信息

sp_helpdb xs
sp_helpdb       --如果不接任何数据库名,则显示电脑所有数据库的信息

2.2、T-SQL修改(alter)XS数据库信息

--1.为XS数据库增加一个数据库文件
alter database xs
add file
(name = xs_dat3,filename = 'E:\data\xs_dat3.ndf',size = 6,filegrowth = 10
)
--2.扩容数据库文件,或者日志文件
alter database xs
modify file (name = xs_dat3,size = 7) --modify file 只能扩大
modify file (name = xs_log,size = 2)
--3.缩小数据库文件     --缩小不可小于系统自带的数据库大小
DBCC shrinkfile (xs_dat3,4)
--4.为XS数据库增加一个日志文件
alter database xs
add file
(name = xs_log2,filename = 'E:\data\xs_log2.ldf',size = 2,filegrowth = 1
)
--5.为XS数据库添加名为TextGroup文件组
alter database xs
add filegroup TextGroup
--6.删除指定的数据库文件
alter database xs
remove file xs_dat3
--7.设置数据库为只读(readonly true) --可读则为'false'
sp_dboption 'xs','readonly','true'
--8.将XS数据库重命名为Myxs
sp_renamedb "Myxs","xs"
--9.删除Myxs数据库
drop database Myxs

三、T-SQL创建XSDA 数据表 (table)

注意事项:
1.primary key -> 主键
2.默认值(default):假设字段为char若填入非本类型的数据,则为默认值
3.出生日期可以用 smalldatetime 此数据类型
4.更小的整型 tinyint

--在XS数据库中创建XSDA数据表,性别默认为女
use xs
go
create table xsda
(学号 char(10) not null primary key,姓名 char(8) not null,性别 char(2) not null defult('女'),系名 char(8) not null,出生日期 smalldatetime not null,民族 char(4) not null总学分 tinyint not null,备注 text null
)

3.1、T-SQL查看(sp_help)xsda数据表(注意对比查看数据库)

sp_help xsda

3.2、T-SQL管理数据表(增删列、修改列属性、插入删除数据、重命名列or表名、删除表、修改记录值)

1.alter table table_name
2.alter column
3.exec sp_rename 重命名表
4.re_rename 重命名列
5.insert values()
6.null 空值的判断 只能用 is 判断
7.update 更新
8.set 指定要更新的列或者变量名称的列表
9.insert into 插入到指定的别的表中

--1.为XSCJ表增加一个新列--学分
alter table xscj
add     --添加新列时,只能为null学分 tinyint null
--2.删除XSCJ表中的学分列
alter table xscj    --删除列之前要接触原有列上的约束条件与默认值
drop column 学分
--3.将XSDA表中的姓名列长度修改为10
alter table xsdaalter column 姓名 char(10)
--4.将XSDA表中的出生日期数据类型改为 dadetime
alter table xsdaalter column 出生日期 datetime
--5.将XSDA表中出生日期列名改为‘birthday’
sp_rename 'xsda.出生日期','birthday','column'
--6.重命名数据表
exec sp_rename 'xsda','学生档案'
--7.删除xsda表
drop table xsda --删除多张表时,加上逗号接上
drop table xsda,xscj
--8.向xs数据库的xsda表插入如下数据
('200608','李中实','男','信息','1988-9-10','汉','59',null)
use xs
insert xsda
--1.全写型,不用管;
1. values('200608','李中实','男','信息','1988-9-10','汉','59',null)--2.写入部分时 into 先声明插入的有那些列 --可以省略 有默认值的列或允许为空值的列
2. insert into xsda(学号,姓名,系名,出生日期,总学分)values('200608','李中实','信息','1988-9-10','59')
--9.删除表记录
--删除总学分<50的列记录
use xs
delete from xsda
where 总学分 < 50
--删除备注为空的列记录
delete from xsda
where 备注 is null
--删除XSDA所有行
delete from xsda
--删除学号为 200501 的列记录
delete from xsda
where 学号 = '200501'
--10.将XSDA表中学号为200502的学生的备注改为三好学生
update xsda
set 备注 = '三好学生'
where 学号 = '200502'
--11.为XSDA表中所有学生的总学分增加10分
update xsda
set 总学分 = 总学分 + 10
--12.将XSDA表中的信息系学生的学号、姓名、总学分、插入到XXXS表中
insert into XXXSselect 学号,姓名,总学分from xsdawhere 系名 = '信息'

四、T-SQL实现查询表中数据

4.1语法格式 and 执行顺序

语法格式:
select xx from xx where xx
执行顺序:
from->where->group by->having->select->order by->…
无论如何 compute by 语句最后执行

4.2 简单查询习题汇总

--1.查询XSDA表中所有的学生的系名,消除结果集中的重复行
select distinct 系名
from xsda
--2.查询名字中含有”李“的学生的基本情况
select *
from xsda
where 姓名 like "%李%"
--3.查询名字中姓”李“的学生的基本情况
select *
from xsda
where 姓名 like "李%"
--4.查询名字中含有”王李“且单姓的学生基本情况
select *
from xsda
where 姓名 like "[王李]_"
--5.查询学号开头是”2“结尾是”1“的学生的基本情况
select * from xsda
where 学号 like '2[0-9][0-9][0-9][0-9]1'
--6.查询开课学期在2,3,4学期的课程信息
select * from kcxx
where 开课学期 between 2 and 3
or 或者是
select * from kcxx
where 开课学期 in (2,3,4)
--7.查询在第5学期开设的所有课程信息,结果按学分降序排列
select * from kcxx
where 开课学期 = 5
order by 学分 desc
--8.分别汇总男女生人数
select 性别,count(*) as "人数"
from xsda
group by 性别
--9.求出XSDA表中各系的男、女生各自的总学分平均值
select 系名,性别,avg(总学分) as '平均分'
from xsda
group by 系名,性别
--10.求学号为200502的学生选修的课程中的最高分和最低分分别是多少
select 学号,max(成绩) as '最高分',min(成绩) as '最低分' from xscj
where 学号 = '200502'
group by 学号
--11.查找xscj表中选修三门课以上且平均分大于85,并且没有一门低于75的以平均分排名前三名的学生的学号
select top 3 学号
from xscj
group by 学号
having avg(成绩) > 85 and min(成绩) > 75 and count(*) >= 3

五、使用连接查询 or 子查询 实现查找

习题汇总

--1.查询选修了“计算机文化基础”但是未选修“数据结构”课程的学生的情况
select xsda.*
from xsda
where 学号 in
(select 学号 from xscj where 课程编号 in
(select 课程编号 from kcxx where 课程名称 = '计算机文化基础'))
and 学号 not in
(select 学号 from xscj where 课程编号 in
(select 课程编号 from kcxx where 课程名称 = '数据结构'))
--2.查询选修了207号课程且分数大于该课程平均分以上的学生的学号、姓名、成绩
select xsda.学号,姓名,成绩
from xsda,xscj
where xscj.学号 = xsda.学号 and xscj.课程编号 = '207'
and 成绩 > (select avg(成绩) from xscj where 课程编号 = '207')
--3.找出大于所有女生年龄的学生信息
3.1 小于ALL女生出生日期
select *
from xsda
where 出生日期 < all(select 出生日期 from xsda where 性别 = '女')
3.2 建立子查询 小于 min(出生日期)
select *
from xsda
where 出生日期 < (select min(出生日期) from xsda where 性别 = '女')
--4.查找选修了104号课程成绩最高的学生的学号和成绩
select 学号,成绩
from xscj
where  课程编号 = '104'
and 成绩 = (select max(成绩) from xscj where 课程编号 = '104')
--5.查找选修了104号并且选修了108号课程的学生的学号、姓名和课程编号
select xsda.学号,姓名
from xscj,xsda
where xsda.学号=xscj.学号 and 课程编号 in ('104','108')
group by xsda.学号,姓名
having count(*)=2
--6.查找选修了全部课程的学生的学号和姓名
select xsda.学号,姓名
from xsda,xscj
where xsda.学号 = xscj.学号
group by xsda.学号,姓名
having count(*) = (select count(*) from kcxx)
--7.查询每门课程的最低分
select 课程名称, min(成绩) as 最低分
from xscj,kcxx
where xscj.课程编号 = kcxx.课程编号
group by 课程名称

六、T-SQL创建视图(view)

View跟表差不多,换汤不换药,把table改成view操作即可,时间有限,下次来补

T-SQL/TSQL语句复习,TSQL语句总结相关推荐

  1. SQL Server数据库的T-SQL查询语句

    一.SQL简介 在进行数据管理时,使用SSMS进行数据维护有可视化.方便的优点,但是在批量维护或重复维护数据时,每次都需要使用SSMS不但不方便,而且容易出错.通过编写SQL语句来维护数据库便于解决重 ...

  2. SQL server2012之使用T-SQl语句对数据库和模式进行创建、修改、删除

    1.数据库 1.1数据库的创建 在创建数据库之前,我先普及一下数据库相关的知识 数据库相关属性: 1)逻辑名称:数据文件和日志文件名称: 2)文件类型:数据文件及日志文件 : 3)文件组:各个数据文件 ...

  3. SQL语句复习【专题八】

    SQL语句复习[专题八] 序列 Sequence.数据库对象是 oracle 专有的. 作用:可以将某一列的值使用序列,来实现自动增长的功能. 访问序列的值.[序列有两个属性 nextval curr ...

  4. SQL语句复习【专题六】

    SQL语句复习[专题六] 用户 + 创建表  --创建一个新的用户,然后给新的用户创建一张表,然后给表中添加一些数据.查询表中的数据 --创建用户需要比较大的权限 DBA create user di ...

  5. SQL点滴26—常见T-SQL面试解析

    SQL点滴26-常见T-SQL面试解析 原文:SQL点滴26-常见T-SQL面试解析 它山之石可以攻玉,这一篇是读别人的博客后写下的,不是原原本本的转载,加入了自己的分析过程和演练.sql语句可以解决 ...

  6. 5、SQL Server数据库、T-SQL

    SQL Server数据库基础 一.安装SQL Server数据库 setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步- ...

  7. SQL Server中的T-SQL RegEx命令

    This article explores T-SQL RegEx commands in SQL Server for performing data search using various co ...

  8. SQL Server中的T-SQL元数据功能的完整指南

    In this article, we will demonstrate T-SQL metadata functions available in the SQL Server. 在本文中,我们将演 ...

  9. SQL Server 实验五 T-SQL编程

    SQL Server 实验五 T-SQL编程 这是一个系列,需几个文档一起看 Use YGGL--2.变量使用 --(1) Declare @female bit Set @female=0 Sele ...

最新文章

  1. 搭建Hexo部署到github上
  2. 【转】hex和bin文件格式的区别
  3. Elasticsearch2.x Cluster Health
  4. android view强制重绘_android view 相关方法 layout draw 布局 重绘 | 学步园
  5. 大话设计模式(一 面试受挫——代码无错就是好?)
  6. 是什么样的骚操作让应用上线节省90%的时间 1
  7. 字节跳动算法工程师总结:java抽象类和接口实验报告
  8. 调和分析笔记1|极大函数法及简单应用
  9. 串口读取gps信息php,Linux串口读取GPS数据
  10. 主题:免费的论文查重网站 正文:给大家推荐一个免费的论文查重网站PaperPP:http://www.paperpp.com
  11. 第二届广东省大学生网络攻防大赛 pyre
  12. 代码实现判断主机字节序(大端 or小端 )-- 面试题
  13. wordpress新留言微信提醒
  14. JOJ——基于爬虫的在线测评系统(Online Judge)
  15. D. Rescue Nibel(cf) 区间覆盖 + 组合数学
  16. Java:自动类型转换和强制类型转换的规则
  17. 【原创】harvey指导soc裸机程序文件头等制作_Detective_ALong_新浪博客
  18. 2020CSP-S T1 儒略历
  19. 大龄程序员的未来在何方,该何去何从?
  20. 2020-12-16实现键盘控制,自动追击的猫抓老鼠小游戏

热门文章

  1. 测试用例设计方法与用例编写规范
  2. MybatisPlus中的insert操作
  3. iOS开发- 启动动画(动态欢迎界面,非静态Default)
  4. download_dataset.py代码研究
  5. Java基础 吃货联盟订餐系统
  6. 腾讯云tca云架构工程师师含金量及架构师具备的能力
  7. RC4加密解密算法原理及实现对文件的加解密
  8. 微前端--无界方案之官网demo操作说明
  9. docker启动容器服务之后访问失败
  10. Oracle_多表查询