一,SQL server 2012 数据库与表

提示:SQL server 指令与示例





前言

提示:给我自己做的笔记内容,通过示例记忆:
例如:SQL server 2012,基础学习笔记 。

示例:学生选课(源码:如下)

源码:点击

word文档:点击

1. 数据类型

2. 填入数据


提示:以下是本篇文章正文内容,下面案例可供参考



一、数据库

1.创建数据库

--/*新建数据库*/
--create database test1
--on
--(
--	name=test1,
--	filename='D:\data\3-31\test1.mdf',
--	size=10mb,
--	maxsize=30mb,
--	filegrowth=1mb
--)
--log on
--(
--	name=test1_log,
--	filename='D:\data\3-31\test1_log.ldf',
--	size=10mb,
--	maxsize=30mb,
--	filegrowth=2mb
--)


--查看数据库详细
--sp_helpdb test1

附录:

2.修改数据库

--附录:
-- alter database [数据库名]		--修改数据库
/*
add file			--增加数据文件到数据库
add log file		--增加事务日志文件到数据库
remove file			--删除文件
remove filegroup	--删除文件组
add filegroup		--增加文件组
modify file			--更改文件属性
modify name=[名称]	--数据库更名

*/

示例:

--数据库更名
--alter database test1
--modify name=testOne
--go

--添加数据文件
--alter database testOne
--add file
--(
--	name=testEnd,
--	filename='D:\data\3-31\testEnd.ndf',
--	size=5mb,
--	maxsize=10mb,
--	filegrowth=10%
--)

--sp_helpdb testOne

结果:

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。



二、表和表数据



1.创建表

代码如下(示例):

--创建表(学生选课)
--use testOne
--go
----学生
--create table Student
--(
--	Sno char(3) not null primary key,
--	Sname char(8) not null,
--	Ssex char(2) not null,
--	Sbirthday datetime null,
--	Class char(5) null
--)
--go

----教师
--create table Teacher
--(
--	Tno char(3) not null primary key,
--	Tname char(4) not null,
--	Tsex char(2) not null,
--	Tbrithday datetime null,
--	Prof char(6) null,
--	Depart varchar(10) not null
--)
--go 

--create table Course 
--(
--	Cno char(5) not null primary key,
--	Cname varchar(10) not null,
--	Tno char(3) not null foreign key references Teacher(Tno)
--)
--go

--create table Score
--(
--	Sno char(3) not null foreign key references Student(Sno),
--	Cno char(5) not null foreign key references Course(Cno),
--	Degree decimal(4,1) null
--)
--go

--select * from Student
--select * from Teacher
--select * from Course
--select * from Score

2.修改表

代码如下(示例):点击

 

3.插入表数据

代码如下:

--插入表的数据
--use testOne
--go
--insert Student
--values('108','曾华','男','1977-09-01','95033'),
--('105','匡明','男','1975-10-02','95031'),
--('107','王丽','女','1976-01-23','95033'),
--('101','李军','男','1976-02-10','95033'),
--('109','王芳','女','1975-02-10','95031'),
--('103','陆君','男','1974-06-03','95031')
--go

--insert Teacher
--values('804','李诚','男','1958-12-02','副教授','计算机系'),
--('856','张旭','男','1969-03-12','讲师','电子工程系'),
--('825','玉萍','女','1972-05-05','助教','计算机系'),
--('831','刘冰','女','1977-08-14','助教','计算机系')
--go

--insert Course
--values
----('3-105','计算机导论','825'),
----('3-245','操作系统','804'),
----('6-166','数字电路','856'),
----('9-888','高等数学','831')
--go

--insert Score
--values
--('103','3-245','98'),
--('105','3-245','78'),
--('109','3-245','68'),
--('103','3-105','99'),
--('105','3-105','89'),
--('109','3-105','78'),
--('101','3-105','45'),
--('107','3-105','78'),
--('108','3-105','45'),
--('101','6-166','12'),
--('107','6-166','78'),
--('108','6-166','65')
--go

--select * from Teacher
--select * from Student
--select * from Course
--select * from Score

4.修改表数据

--修改表数据
--select * from Score
--update Score
--set Degree='60'
--where Sno='105' and Cno='3-245'

--update Score
--set Degree='80'
--where Sno='109' and Cno='3-105'

--删除表数据 delete
use 学生选课
go
delete from 学生
where 姓名=‘张宇’
go

结果:

5.查询(重点)

示例:

--查询
----1 查询Student表
--select Sname,Ssex,Class from Student

----2、查询教师所有的单位即不重复的Depart列 (去重)
--select distinct Depart from Teacher;


--3 查询Score表中成绩在60到80之间的所有记录(between and --包含两边)
--select * from Score where Degree between 60 and 80;
--select * from Score

--4、以Class降序查询Student表的所有记录(order by desc(降)/asc(升))
--select * from Student order by class desc

--select * from Score
--5. 聚合函数
--select count(Sno) as 个数,max(Degree) as 最高成绩,
--min(Degree) as 最小成绩, avg(Degree) as 平均分
--from Score

--6. 男,女人数(group  by)
--select * from Student
--select Ssex,count(Sname) as 人数 from Student
--group by Ssex
--go

-- 11、查询‘3-105’号课程的平均分 (having)
--select * from Score
--select avg(Degree) as 平均分
--from Score group by Cno having Cno='3-105'
--go


--12. 新建一个表,3-105的情况
--示例:
--把查询结果变为新表
--select 学号,姓名 into 学生1 
--from 学生

--查询新表
----select * from 学生1
--select Sno as 学号, Degree as 成绩 into tb_degree
--from Score
--where Cno='3-105'

--select * from tb_degree

--多表连接查询
--查询‘计算机导论’学生学号,姓名,班级,课程,成绩,老师;降序排序


--select Score.Sno as 学生学号,Student.Sname as 学生姓名,Student.Class 学生班级,
--Course.Cname as 课程名称,Score.Degree as 学生成绩,Teacher.Tname as 授课老师
--from Course,Score,Teacher,Student
--where Student.Sno=Score.Sno and Course.Cno=Score.Cno 
--and Teacher.Tno=Course.Tno and Course.Cname='计算机导论'
--order by 学生成绩 desc



--select Score.Sno as 学生学号,Student.Sname as 学生姓名,Student.Class 学生班级,
--Course.Cname as 课程名称,Score.Degree as 学生成绩,Teacher.Tname as 授课老师
--from Course,Score,Teacher,Student
--where Student.Sno=Score.Sno and Course.Cno=Score.Cno 
--and Teacher.Tno=Course.Tno 
--order by 学生学号



--SELECT a.pid,a.pscore,a.count,b.ptype,c.orgname
--FROM (
--	select a.pid,avg(a.pscore)as pscore,count(a.pid)as count
--	from table11 a
--	group by a.pid 
--) a, table12 b,table13 c
--where a.pid = b.pid and b.orgcode = c.orgcode

--select * from Course
--select * from Score
--select distinct Sname from Student


--查询学生的姓名,考试科目,成绩总分 (重点)
select a.Sno as 学号,b.Sname as 性名,a.s_count as 考试科目,a.s_sum as 总分
from(
	select a.Sno,count(a.Degree) as s_count,sum(a.Degree) as s_sum
	from Score a
	group by a.Sno
) a, Student b
where b.Sno=a.Sno
order by a.s_sum desc

查询学生的姓名,考试科目,成绩总分重点

附录:

1. where与having的区别点击

2. 

三,视图

1. 视图创建与修改

--视图
--创建视图
--use testOne
--go

--create view view_score
--as
--select * from score

--附录:
/*
column    一列或多列的名称
n:        column可重复n次的占位符
with encryption        加密syscomments表
as        视图要执行的操作
*/
--修改视图(alter view)
--alter view view_score
--as
--select o

--exec sp_helptext 'view_score'
--select * from view_score

--查看视图,部分属性
--select * from view_student

--删除视图
--drop view view_score

--查看视图
--1 查看视图基本信息
--sp_help view_student
--2 查看视图的文本信息(可看加密)
--sp_helptext view_student
--3 查看与其他对象的依赖关系
--sp_depends student

--修改视图(指定更多输出)
--alter view view_student
--as 
--select Student.Sno,Student.Sname,Student.Ssex
--from Student

--select * from view_student

2.视图中数据的维护

--更新数据
--update view_student
--set Ssex='nv'
--where Sname='陆君'

--添加视图中的数据
--insert into view_student
--values('111','李四','无')
--select * from view_student

--删除视图中的数据(delete)
--delete from view_student
--where Sname='李四'

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了sql server的使用。


下一篇:

二,SQL server 2012 视图与索引(点击


版权声明:本文为qq_43526329原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。