每天学习一点点...
今天工作之余学习了一点数据库的知识。拿出来展示一下。
//创建表和插入操作。
*********************************
create table SC
(
sno char(10) not null,
cno char(2) NULL, /*课程编号字段*/
score int NULL /*成绩字段*/
)
Go
INSERT INTO sc (sno,cno,score) VALUES ('3130050106', 'c3',92)
Go
*********************************
select sno,avg(score)as 平均成绩 from SC
group by sno
*********************************
CREATE TABLE AVGSCORE
(SNO CHAR(10),
AVGSCORE SMALLINT)
Go
INSERT INTO AVGSCORE
SELECT SNO,AVG(SCORE)
FROM SC
GROUP BY SNO我们需要注意的一点,如果在返回集字段中,这些字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中。
*********************************
update AVGSCORE set AVGSCORE = AVGSCORE - 2select * from AVGSCORE
update AVGSCORE set AVGSCORE = AVGSCORE -2
where AVGSCORE.SNO in (
select sno from SC
where SC.cno = 'c4')
*********************************
CREATE TABLE T1
( column_1 int,
column_2 varchar(30))
Go
INSERT T1 (column_2, column_1,wuzang) VALUES ('This',1,'tianx') /*插入操作*/update T1 set wuzang = 'wu'
where wuzang = '??'alter table T1 add wuzang char(5) null /* 增加列*/
drop table T1 /*delete table*/
delete from T1 -- sql 两种注释方式:
where column_1 = 7 /*删除(此处可多行注释)*/
select * from T1 --dsdds(此处可单行注释)
*********************************
--两种变量
-- 1)给局部变量赋值 并输出。
DECLARE @myvar char(20)
select @myvar = 'ssfdfdMSM'
SELECT @myvar
GO
--2)全局变量:常常以@@开头 ,是系统定义和维护。
例如
SELECT GETDATE( ) AS '当前的时期和时间',
@@CONNECTIONS AS '试图登录的次数'
*********************************
--字符串串联运算符 + 例如:
SELECT 'abc'+'def'
*********************************
-- 4类函数
--1)行集函数:行集函数可以在Transact-SQL语句中当作表引用。
exec sp_addlinkedserver local
select * from openquery(local,'select * from Customers')
--2)聚合函数:除COUNT 函数之外,聚合函数忽略空值。
--聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用。
--计算 Adventure Works Cycles 的副总所用的平均休假小时数以及总的病假小时数。
--对检索到的所有行,每个聚合函数都生成一个单独的汇总值。
--程序清单如下。
USE AdventureWorks;
GO
SELECT AVG(VacationHours)as 'Average vacation hours',
SUM (SickLeaveHours) as 'Total sick leave hours'
FROM HumanResources.Employee
WHERE Title LIKE 'Vice President%'
--窗口函数:
--Transact-SQL提供以下一些Ranking函数:
RANK;DENSE_RANK;NTILE;ROW_NUMBER。
--标量函数: