SQL Server的读书分分快三全天计划网站

作者:分分快三全天计划网站

3、将某一列的数据作为列名,动态加载,使用存储过程,拼接字符串
DECLARE @st nvarchar (MAX) = '';

DECLARE @TestScore INT

1、cube:生成多维数据集,包含各维度可能组合的交叉表格,使用with 关键字连接 with cube

当一个查询是另一个查询的条件时,称为子查询;

 

语法:

  1 SELECT  * INTO ##GET
  3                 FROM
  4                     (
  5                         SELECT
  6                             *
  7                         FROM
  8                             (
  9                                 SELECT
 10                                     CASE
 11                                 WHEN (GROUPING([档案号]) = 1) THEN
 12                                     '合计'
 13                                 ELSE
 14                                     [档案号]
 15                                 END AS '档案号',
 16                                 CASE
 17                             WHEN (GROUPING([系列]) = 1) THEN
 18                                 '合计'
 19                             ELSE
 20                                 [系列]
 21                             END AS '系列',
 22                             CASE
 23                         WHEN (GROUPING([店长]) = 1) THEN
 24                             '合计'
 25                         ELSE
 26                             [店长]
 27                         END AS '店长',
 28                         SUM (剩余次数) AS '总剩余',
 29                         CASE
 30                     WHEN (GROUPING([店名]) = 1) THEN
 31                         '合计'
 32                     ELSE
 33                         [店名]
 34                     END AS '店名'
 35                     FROM
 36                         ##PudianCard
 37                     GROUP BY
 38                         [档案号],
 39                         [店名],
 40                         [店长],
 41                         [系列] WITH cube
 42                     HAVING
 43                         GROUPING([店名]) != 1
 44                     AND GROUPING([档案号]) = 1 --AND GROUPING([系列]) = 1
 45                             ) AS M
 46                         UNION ALL
 47                             (
 48                                 SELECT
 49                                     *
 50                                 FROM
 51                                     (
 52                                         SELECT
 53                                             CASE
 54                                         WHEN (GROUPING([档案号]) = 1) THEN
 55                                             '合计'
 56                                         ELSE
 57                                             [档案号]
 58                                         END AS '档案号',
 59                                         CASE
 60                                     WHEN (GROUPING([系列]) = 1) THEN
 61                                         '合计'
 62                                     ELSE
 63                                         [系列]
 64                                     END AS '系列',
 65                                     CASE
 66                                 WHEN (GROUPING([店长]) = 1) THEN
 67                                     '合计'
 68                                 ELSE
 69                                     [店长]
 70                                 END AS '店长',
 71                                 SUM (剩余次数) AS '总剩余',
 72                                 CASE
 73                             WHEN (GROUPING([店名]) = 1) THEN
 74                                 '合计'
 75                             ELSE
 76                                 [店名]
 77                             END AS '店名'
 78                             FROM
 79                                 ##PudianCard
 80                             GROUP BY
 81                                 [档案号],
 82                                 [店名],
 83                                 [店长],
 84                                 [系列] WITH cube
 85                             HAVING
 86                                 GROUPING([店名]) != 1
 87                             AND GROUPING([店长]) != 1
 88                                     ) AS P
 89                             )
 90                         UNION ALL
 91                             (
 92                                 SELECT
 93                                     *
 94                                 FROM
 95                                     (
 96                                         SELECT
 97                                             CASE
 98                                         WHEN (GROUPING([档案号]) = 1) THEN
 99                                             '合计'
100                                         ELSE
101                                             [档案号]
102                                         END AS '档案号',
103                                         CASE
104                                     WHEN (GROUPING([系列]) = 1) THEN
105                                         '合计'
106                                     ELSE
107                                         [系列]
108                                     END AS '系列',
109                                     CASE
110                                 WHEN (GROUPING([店长]) = 1) THEN
111                                     '合计'
112                                 ELSE
113                                     [店长]
114                                 END AS '店长',
115                                 SUM (剩余次数) AS '总剩余',
116                                 CASE
117                             WHEN (GROUPING([店名]) = 1) THEN
118                                 '合计'
119                             ELSE
120                                 [店名]
121                             END AS '店名'
122                             FROM
123                                 ##PudianCard
124                             GROUP BY
125                                 [档案号],
126                                 [店名],
127                                 [店长],
128                                 [系列] WITH cube
129                             HAVING
130                                 GROUPING([店名]) != 1
131                             AND GROUPING([店长]) != 1
132                                     ) AS W
133                             )
134                         UNION ALL
135                             (
136                                 SELECT
137                                     *
138                                 FROM
139                                     (
140                                         SELECT
141                                             CASE
142                                         WHEN (GROUPING([档案号]) = 1) THEN
143                                             '合计'
144                                         ELSE
145                                             [档案号]
146                                         END AS '档案号',
147                                         CASE
148                                     WHEN (GROUPING([系列]) = 1) THEN
149                                         '合计'
150                                     ELSE
151                                         [系列]
152                                     END AS '系列',
153                                     CASE
154                                 WHEN (GROUPING([店长]) = 1) THEN
155                                     '合计'
156                                 ELSE
157                                     [店长]
158                                 END AS '店长',
159                                 SUM (剩余次数) AS '总剩余',
160                                 CASE
161                             WHEN (GROUPING([店名]) = 1) THEN
162                                 '合计'
163                             ELSE
164                                 [店名]
165                             END AS '店名'
166                             FROM
167                                 ##PudianCard
168                             GROUP BY
169                                 [档案号],
170                                 [店名],
171                                 [店长],
172                                 [系列] WITH cube
173                             HAVING
174                                 GROUPING([店名]) = 1
175                             AND GROUPING([店长]) = 1
176                             AND GROUPING([档案号]) = 1
177                                     ) AS K
178                             )
179                     ) AS T
2、rollup:功能跟cube相似

分分快三全天计划网站 1

 

创建视图 CREATE VIEW 

4、根据某一列分组,分别建表
SELECT
'select ROW_NUMBER() over(order by [卡项] desc) as [序号], [会员],[档案号],[卡项],[剩余次数],[员工],[店名] into ' ltrim([店名]) ' from 查询 where [店名]=''' [店名] ''' ORDER BY [卡项] desc'
FROM
查询
GROUP BY
[店名]

1.DATEADD(日期元素,数字,日期)-->向指定日期添加“数字”个“日期元素”

 

yy-->年

举例:

删除爱好列(vFav):

根据需要使用union all 拼接
判断 某一列的null值来自源数据还是 cube 使用GROUPING关键字
GROUPING([档案号]) = 1 : null值来自cube(代表所有的档案号)
GROUPING([档案号]) = 0 : null值来自源数据

修改视图 ALTER VIEW 

SELECT
@st =@st 'max(case when [系列]=''' CAST ([系列] AS VARCHAR) ''' then [总剩余] else null end ) as [' CAST ([系列] AS VARCHAR)

  索引对数据大多是唯一的列很有用

  • '],'
    FROM
    ##GET
    GROUP BY
    [系列];
    print @st;

10.SUBSTRING('Hello',3,2)-->'ll'  从第3个字符开始取2个字符

分分快三全天计划网站 2

4.SQRT(浮点表达式)-->指定值的平方根

分分快三全天计划网站 3

SELECT vEmployeeName,cMobile,vDepartmentName FROM Employee

SELECT DISTINCT(vProvince) FROM Employee

  ON Employee.cDepartmentCode=Department.cDepartmentCode

九、TOP的用法

语法:

索引:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。

语法:

语法 :

              )

十、集合函数

建表:

语法:

(5)显示查询结果;

二十九、IF 条件语句

CREATE TABLE UserInfo(

分分快三全天计划网站 4

1.添加一列

SELECT SUM(mTotal) '笔记本部' FROM DailySails WHERE cDepartmentCode='02'

SELECT cDepartmentCode,SUM(mTotal) '销售金额' FROM DailySails GROUP BY cDepartmentCode

二十六、视图

2.创建约束

分分快三全天计划网站 5

3.建表
语法:
CREATE TABLE Product(
            cProdCode CHAR(6),
            vProdName VARCHAR(50),
            mPrice MONEY,
            vFrom VARCHAR(30)
)
4.添加记录

              vPhone VARCHAR(13) CHECK(vPhone LIKE('[0][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))

  INSERT INTO Product(cProCode,vProdName,mPrice,vFrom) VALUES('000002','APPLE MacBook笔记本',9900,'美国')

hh-->小时

NULL在SQL SERVER数据库中是比较特殊的值,代表没有,并不是字符串,所以NULL和‘NULL’是两个概念;

  SELECT vEmployeeName,cMobile,vDepartmentName FROM Employee

语法:

在正常的JOIN...ON...的基础上,再把JOIN左边的表全部显示出来:

 十九、左连接或右连接LEFT/RIGHT OUTER JOIN  

  SELECT * FROM Newspaper

ALTER TABLE Employee ALTER COLUMN vAddress VARCHAR(50)

分分快三全天计划网站 6

CREATE TABLE Newspaper(

ALTER VIEW vwEmployeeDepartment

RIGHT OUTER表示JOIN右边的无论ON条件如何都全部显示;

  HAVING SUM(mTotal)>5000

把IBM X201的笔记本的价格更改为6600元

  数据完整性保证了在数据库中存储数据的一致性和正确性,数据完整性大致可分为以下四种类型:

 

11.STUFF('Hello',2,3,'abcd')-->'Habcdo'  用abcd替换从第2个字符开始的3个字符

  ON Employee.cDepartmentCode=Department.cDepatmentCode

例如查询一个含“广”字的员工

4.DATEPART(日期元素,日期)-->以数字形式返回“日期元素”,如“5”

DROP DATABASE SuperMarket

五、使用SELECT显示所有数据

BEGIN

  在簇索引中:数据被物理地排序,每个表只可创建一个簇索引。

              cNewspaperCode CHAR(2) PRIMARY KEY,

外键:两个表具有“关系”,当一个表中的主关键字在另一个表中也作为一个属性存在时,称为外键;

二十、多表操作UNION

            cNewsAdNo CHAR(2) PRIMARY KEY,

 

注:虽然我们感觉视图像一个表,但实际上视图并不是表,是虚拟的表,我们把Employee表和Department表称为基表。

注:SELECT * FROM 表一 JOIN 表二 ON 表一.条件列=表二.条件列;

语法:

  LEFT JOIN Department

ss-->秒

  约束可在两个层次上实施:列层和表层

  IF @TestScore>90

分分快三全天计划网站 7

2.CHAR(65)  -->'A'     返回ASCII为65所对应的字符

语法:

语法:

七、使用WHERE条件查询符合条件的记录

  引用完整性:保证外键的值必须与相关的主键值相匹配

分分快三全天计划网站 8

JOIN以后:

分分快三全天计划网站 9

十三、使用COMPUTE BY分类汇总

三十一、WHILE循环语句

分分快三全天计划网站 10

例如显示所有员工的省份并删除相同的省份

2.1主键

  域完整性:保证只在有效范围内的值才能存储到列中

    PRINT '欢迎您参加面试,您的成绩为:' CAST(@TestScore AS CHAR(3))

分分快三全天计划网站 11

注:如果条件是字符串或者日期类型,需要在条件的两边加单引号。

分分快三全天计划网站 12

GROUP BY 可以实现分类汇总,而COMPUTE...BY...则在实现分类汇总的基础上同时能够显示明细。

SELECT SUBSTRING(vEmail,CHARINDEX('@',vEmail) 1,LEN(vEmail)-CHARINDEX('@',vEmail)) FROM Client

SELECT * FROM Employee WHERE vEmployeeName LIKE '%广%'

分分快三全天计划网站 13

 八、IS NULL的使用方法

CREATE DATABASE SuperMarket
//建立一个名为SuperMarket的数据库。

SELECT vEmployeeName,cMobile,vDepartmentName FROM Employee

分分快三全天计划网站 14

(1)打开Microsoft SQL SERVER Management Studio;

    PRINT'对不起,希望我们下次有机会合作!'

分分快三全天计划网站 15

4.RIGHTH('Hello',3)-->'llo' 取右三个字符

分分快三全天计划网站 16

USE master//注意:删除数据库之前要用USE打开另一个数据库,如master

创建视图成功后,我们可以把视图看作一个表来查询,如:SELECT * FROM vmEmployeeDepartment

1.ABS(-5)-->5

语法:

二、删除数据库和表

侯选关键字:一个可以唯一确定一行的属性称为侯选关键字;

待续

5.GETDATE()-->返回当前的日期和时间

SELECT * FROM Client WHERE cClientCode=‘41010066’

2.删除SuperMarket数据库

  ON Employee.cDepartmentCode=Department.cDepartmentCode

SELECT vEmployeeName,vPhone,cMobile FORM Employee

  当你修改索引列的数据时,相关索引会被自动更新

3.ROUND(数值表达式,长度)-->指定长度进行四舍五入

mm-->月

 

分分快三全天计划网站 17

1.删除Product表

语法:

  创建约束来保证数据的完整性:

  END

六、使用SELECT显示指定列

分分快三全天计划网站 18

例:

公司员工(Employee)和公司部门(Department)存在关系

CREATE VIEW vwXX AS SQL语句,SQL语句是我们常见的SELECT语句,即可以是一个表,也可以是多个表的查询结果。

分分快三全天计划网站 19

(4)输入:SELECT * FROM Client,然后点击“执行”按钮;

FROM CampusRecruitment

SELECT * FROM DailySails

CREATE NONCLUSTERED INDEX idxCampusRecruitment ON CampusRecruitment(cCampusCode)

CREATE CLUSTERED INDEX idxCampus ON Campus (cCampusCode)

  INSERT INTO Product(cProCode,vProdName,mPrice,vFrom) VALUES('000001','IBM X201笔记本',6800,'美国')

分分快三全天计划网站 20

我们使用“SELECT * FROM 表”查看所有数据,所以只需要把*替换为指定列,并用逗号隔开即可;

  SET @Count=@Count 1

SELECT vContacter,vPhone,cMobile FROM Client

二十一、SELECT...INTO...把一个表中的数据复制到另一个新表

我们通过创建视图可以完成简化查询的功能

十二、使用GROUP BY ...HAVING分类汇总后二次筛选

1.使用索引的优点

 语法:

2.修改一列

分分快三全天计划网站 21

TOP用于取前几名或者百分比,ORDER BY则指明排序方式,默认升序ASC,可以省略,如果是降序,使用关键字DESC。

(一)字符串函数

  ORDER BY cDepartmentCode

  JOIN Department

ALTER TABLE Employee ADD vEmail VARCHAR(50)

语法:

CAST(@TestScore AS CHAR(3))用于把整型转换为字符串;

二十八、约束

(2)包含集合函数的列必须是数值类型或者货币类型

分分快三全天计划网站 22

例:90分以上者显示“5号参加面试”,80分以上者显示“10号参加面试”,80分以下显示“'对不起,希望我们下次有机会合作!”

  INSERT INTO AllSails SELECT * FROM DailySails

  CASE

语法:

一、建库和表
1.新建数据库
语法:

分分快三全天计划网站 23

4.索引的特性

组合关键字:表中多个属性才可以唯一确定一行时 ,这些属性称为组合关键字;

分分快三全天计划网站 24

  ON Employee.cDepartmentCode=Department.cDepartmentCode

修改地址列(vAddress)的长度为50:

8.LTRIM('  Hello')-->'Hello' 去除左边空格

删除视图DROP VIEW

十八、多表操作JOIN...ON...

2.打开数据库
语法:

  SELECT vEmployeeName,cMobile,vDepartmentName,cMobile FROM Employee

分析:SELECT后有两列,中间用逗号隔开,第一列表示分类的列,如cDepartmentCode,第二列表示统计列,如SUM(mTotal)。GROUP BY后面为分类的列。

SELECT TOP 5 * FROM CampusRecruitment ORDERY BY siTestScore DESC

ALTER TABLE Employee DROP COLUMN vFav

日期元素:

分分快三全天计划网站 25

分分快三全天计划网站 26

SELECT * FROM DailySails

7.UPPER('hello')-->'HELLO' 转换为大写

6.LOWER('Hello')-->'hello' 转换为小写

3.索引的种类

    WHEN siTestScore>=90 THEN '5号参加面试'

语法:

如果打算在视图vmEmployeeDepartment中把员工手机号也显示出来,只需加上cMobile即可

CREATE TABLE NewsAd(

  创建索引要花时间

5.修改记录

十六、使用DISTINCT筛选重复的列

  当给出CREATE INDEX命令时,SQL Server缺省地创建非簇索引,每个表可多达249个非簇索引。

  JOIN Department

语法 :

语法:

分分快三全天计划网站 27

3.DATENAME(日期元素,日期)-->以字符串形式返回“日期元素”,如“May”

3.删除一列

分分快三全天计划网站 28

语法:

主键:被选作唯一确定一行的侯选关键字;

)

2.确定表中的关键字

语法:

注:COMPUTE...BY...的前提是对分类列排序,所以SQL语句中用ORDER BY cDepartment进行排序,尔后COMPUTE 汇总列 BY 分类列。

集合函数可以按某列求和、平均值、最大值、最小值、统计记录数,再配合WHERE条件就可以实现初步的统计功能。

            vUserName VARCHAR(20),

二十七、索引

SELECT SUM(mTotal) '耗材部' FROM DailySails WHERE cDepartmentCode='04'

SELECT SUM(mTotal) '数码部' FROM DailySails WHERE cDepartmentCode='03'

1.数据完整性

注:DECLARE @TestScore INT 表示声明一个整型变量;

十五、LIKE模糊查询

二十二、INSERT  INTO...把一个表中的数据复制到另一个老表

  索引可用来实施行的唯一性

  每次修改数据都需要更新索引

    WHEN siTestScore>=80 THEN '10号参加面试'

            dRegDate DATETIME

dd-->日

  索引加速了连接表的询问、执行排序和分组。

(3)点击“新建”查询,打开查询编辑器;

  COMPUTE SUM(mTotal) BY cDepartmentCode

 语法:

SELECT vStudName,siTestScore,面试日期=

END

SET @Count=0

SET @TestScore=(SELECT siTestScore FROM CampusRecruitment WHERE cStudCode='41010033')表示把学号为“41010033”学生的成绩赋值给@TestScore;

3.LEFT('Hello',4)-->‘Hell’  取左四个字符

  一般常用于两个表存在外键关系,两个表名的列名可以不完全相同,但应该有相同条件。

    WHERE vCity=(SELECT vCity FROM Campus WHERE vCampusName='郑州大学')

例:获取Email域名地址

分分快三全天计划网站 29

  簇索引应在非簇索引之前被创建,簇索引改变了行的顺序,如果非簇索引在簇索引之前被创建,那么它需要被重新构造

              cProvinceCode CHAR(2) DEFAULT ('41'),

(三)数学函数

  GROUP BY cDepartmentCode

  约束可以在创建表时一同创建,也可随后加入

            cNewspaperCode CHAR(2) REFERENCES Newspaper(cNewspaperCode)

分分快三全天计划网站 30

              vNewspaperName char (20) NOT NULL,

十一、使用GROUP BY分类汇总

  INSERT INTO UserInfo VALUES('User' CAST(@Count AS CHAR(3)),'Password' CAST(@Count AS CHAR(3)),'Email' CAST(@Count AS CHAR(3)),'13903710' CAST(@Count AS CHAR(3)),GETDATE())

 

语法:

  提高执行查询的速度

  在非簇牵引中:行的物理顺序不同于索引的顺序,非簇索引一般用于连接和WHERE子句的列,且它的值可能被经常修改。

  用户定义完整性:指的是由用户指定的一组规则,它不属于实体、域或引用完整性

    WHEN siTestScore<80 THEN '对不起,希望我们下次有机会合作'

            vNewsAdDescript VARCHAR(200),

USE SuperMarket
//打开刚刚建立的数据库

SELECT cDepartmentCode,SUM(mTotal) '销售金额' FROM DailySails

DELETE FROM Employee WHERE cEmployeeCode IN('E00001','E00004','E00005')

(1)使用集合函数统计数据(Sum Avg Max Min Count)

十四、使用COMPUTE...BY...COMPUTE分类汇总

  你需要时间和资源来维护索引,不要创建不被经常性使用的索引

语法:

AS

二十五、删除多条记录DELETE  FROM  WHERE...IN...

WHILE (@Count<=100)

LEFT OUTER 表示JOIN左边的无论ON条件如何都全部显示;

SELECT * FROM Client WHERE vEmail IS NULL

2.3外键

AS

语法:

  需要大量的磁盘空间来存储数据和数据源

            vEmail VARCHAR(50),

  JOIN Department

例:新建一个空表,用WHILE循环插入100条记录

  UNION

  ELSE

二十四、修改表的结构

  约束定义了必须遵循的用于维护数据一致性和正确性的规则

  加速了表之间的连接

(二)日期函数

分分快三全天计划网站 31

分分快三全天计划网站 32

1.关键字的种类

分分快三全天计划网站 33

语法:

  COMPUTE SUM(mTotal) BY cDepartmentCode

2.DATEIFF(日期元素,日期1,日期2)-->返回两个日期之间的“日期元素”的个数

1.ASCII(‘A’)  -->65     返回A的ASCII值

DECLARE @Count INT

四、确定表中的关键字

  实体完整性:保证每一个列都能由称为主键的属性来唯一标识

分分快三全天计划网站 34

语法:

9.RTRIM('Hello ')-->'Hello' 去除右边空格

            vPassword VARCHAR(20),

无论添加一列、修改一列还是删除一列,都需要修改表的结构,使用ALTER TABLE语句;

2.2组合关键字

  SET @TestScore=(SELECT siTestScore FROM CampusRecruitment WHERE cStudCode='41010033')

十七、数据库常用函数

  COMPUTE SUM(mTotal)

DROP TABLE Product

语法:

5.LEN('Hello')-->5     字符的长度

添加一列电子邮件(vEmail):

三十、CASE...WHEN...分支语句

验证:使用SP_HELP Employee语句查看现在表的结构。

分分快三全天计划网站 35

  DROP VIEW vmEmployeeDepartment

SELECT vClientName,vContacter,cMobile FROM Client

候补关键字:在表中没有被选作主键的候选关键字;

操作步骤:

例如:表中表示s001做p003项目需要9小时,s002做p001项目需要18小时,以此类推;

  实施数据唯一性

            )

UPDATE Product SET mPrice=6600 WHERE cProCode='000001'

注:CHARINDEX('@',vEmail)返回@字符的位置;LEN(vEmail)返回Email的总长度;计算域名的地址长度=总长度-@的位置;SUBSTRING(vEmail,CHARINDEX('@',vEmail) 1,LEN(vEmail)-CHARINDEX('@',vEmail))则表示从vEmail中从“第@的位置 1”取“域名长度”个字符串。

分分快三全天计划网站 36

(2)连接到远程服务器;

SELECT 列1,列2,列3 FROM 表一 UNION SELECT 列1,列2,列3 FROM 表二;

语法:

语法:

语法 :

二十三、子查询

分分快三全天计划网站 37

  ORDER BY cDepartmentCode

            cMobile CHAR(11),

分分快三全天计划网站 38

SELECT * FROM Client

2.RAND()-->0到1之间的随机浮点数

CREATE VIEW vwEmployeeDepartment

2.使用索引的缺点

语法:

注:在“查询编辑器”中,可以把GROUP BY句子放在第二行,这样看起来更清晰。

SELECT * INTO tmp_Client FROM Client

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划