SQL server常用操作命令

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
use mytest
go
 
--nchar类型与char类型完全相同,除了nchar是以Unicode格式而非ANSI格式来存储字符。
--Unicode格式比ANSI格式有更大的字符集范围。ANSI字符集仅有256个字符,Unicode字符集有65536个不同的字符。
--在SQL server中,Unicode数据类型要占用更多的存储空间,SQL server将为Unicode数据类型分配双倍的内部
--存储空间,因此,除非数据库中的确需要以这种格式保存字符,否则应使用ANSI。
 
--新建数据库
--create database mytest
 
--删除数据库
--drop database mytest
 
--新建表
--create table SaleManager(
--number varchar(10) not null,
--name vachar(20) not null,
--sex char(4) not null)
 
--删除表
--drop table SaleManager
 
--修改表名
--EXEC sp_rename 'SaleManager','Student'
 
--插入数据
--insert into SaleManager values(1501,N'jia',N'男'),(1502,N'ze',N'男')
 
--更改列名      注意: 更改对象名的任一部分都可能会破坏脚本和存储过程。
--exec sp_rename 'SaleManager.[birthday]','Birthday ','column '
 
--更改列类型
--alter table SaleManeger alter column Birthday date
 
--增加列
--alter table SaleManager add Birthday date
 
--更新数据
--update SaleManager set Birthday = '07/15/2015' where number = 1501
 
--删除列
--alter table SaleManager drop column Birthday
 
--变量的使用
--declare @number int
--set @number = 2015
--print @number
 
--赋值列所有数据
--update SaleManager set [Birthday ] = '02/12/2014'
 
--使用聚合函数
--select N'人员数量' = COUNT(*),
--     N'平均年龄' = AVG(Age),
--     N'最小年龄' = MIN(Age),
--     N'最大年龄' = MAX(Age),
--     N'年龄方差' = STDEV(Age)
--from SaleManager
 
--使用数学函数
--select N'自然对数' = LOG(10),
--     N'指数' = EXP(12),
--     N'符号' = SIGN(2),
--     N'圆周率' = PI(),
--     N'正弦' = SIN(PI()/2.0),
--     N'余弦' = COS(PI()/2.0)
 
--使用字符串函数
--select name,
--     N'名字长度' = LEN(name)
--from SaleManager
 
--选取id为1和2的数据行,in可译为'有,为'
--select * from Score
--where id in (1,2)
 
--通配符%替代一个或多个字符,_仅替代一个字符,[charlist]字符列中的任何一个首字符,[!charlist]
--select * from Score
--where name like 'j%'
--where name like 'z_'
--where name like '[j]%'
 
--操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
--select * from Score
--where name between 'jia' and 'ze'
 
--通过使用 SQL,可以为列名称和表名称指定别名(Alias),as可省略
--指定表别名,多表查询
--select sc.name,sa.number
--from Score as sc,SaleManager as sa
--where sc.name = 'jia' and sa.number = 1501
--指定列别名
--select name as n,sex as s
--from Score
 
--UNION 操作符用于合并两个或多个 SELECT 语句的结果集.
--默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL
--select name from SaleManager
--union     --(union all)
--select name from Score
 
--SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中
--SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档
--select * into Score1   --(in 'backup.mdb')
--from Score
--(where id = 01)
 
/*UNIQUE 约束唯一标识数据库表中的每条记录。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
例:Id_P int NOT NULL UNIQUE,
*/
 
/*PRIMARY KEY 约束唯一标识数据库表中的每条记录。
主键必须包含唯一的值。
主键列不能包含 NULL 值。
每个表应该都一个主键,并且每个表只能有一个主键。
例:Id_P int NOT NULL PRIMARY KEY,
*/
 
/*一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
FOREIGN KEY 约束用于预防破坏表之间连接的动作。
FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
例:FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
*/
 
/*CHECK 约束用于限制列中的值的范围。
如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。
例:Id_P int NOT NULL CHECK (Id_P>0),
*/
 
/*DEFAULT 约束用于向列中插入默认值。
如果没有规定其他的值,那么会将默认值添加到所有的新纪录。
例:City varchar(255) DEFAULT 'Sandnes'
*/
 
/*Auto-increment 会在新纪录插入表中时生成一个唯一的数字。
我们通常希望在每次插入新纪录时,自动地创建主键字段的值。
我们可以在表中创建一个 auto-increment 字段。
MS SQL 使用 IDENTITY 关键字来执行 auto-increment 任务
默认地,IDENTITY 的开始值是 1,每条新纪录递增 1。
要规定 "P_Id" 列以 20 起始且递增 10,请把 identity 改为 IDENTITY(20,10)
下列 SQL 语句把 "Persons" 表中的 "P_Id" 列定义为 auto-increment 主键:
P_Id int PRIMARY KEY IDENTITY
*/
 
/*SQL Server 使用下列数据类型在数据库中存储日期或日期/时间值:
DATE            - 格式: YYYY-MM-DD 
DATETIME        - 格式: YYYY-MM-DD HH:MM:SS 
SMALLDATETIME   - 格式: YYYY-MM-DD HH:MM:SS 
TIMESTAMP       - 格式: 唯一的数字 
*/
 
/*NULL 值的处理方式与其他值不同。
NULL 用作未知的或不适用的值的占位符。
注释:无法比较 NULL 和 0;它们是不等价的。
*/
 
/*在 SQL Server 中的合计函数:
     函数                  描述 
AVG(column)             返回某列的行数   
COUNT(column)           返回某列的行数(不包括NULL值) 
COUNT(*)                返回被选行数 
COUNT(DISTINCT column)  返回相异结果的数目 
FIRST(column)           返回在指定的域中第一个记录的值(SQLServer2000 不支持) 
LAST(column)            返回在指定的域中最后一个记录的值(SQLServer2000 不支持) 
MAX(column)             返回某列的最高值 
MIN(column)             返回某列的最低值  
SUM(column)             返回某列的总和 
 
例:select avg(age) as AveAge from SaleManager
*/
 
/*SQL索引有两种,聚集索引和非聚集索引,聚集索引存储记录是物理上连续存在,
而非聚集索引是逻辑上的连续,物理存储并不连续。
聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个。
*/
 
--创建视图
--create view [FirstView] as
--select name, score
--from Score
--(where score>80)
--go
 
--查询视图
--select * from [FirstView]
 
--GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
--select name, AVG(score) as AveScore from Score
--group by name
 
--HAVING 子句,在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
--select name, AVG(score) as AveScore from Score
--where sex = '女'
--group by name
--having AVG(score)>80
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
10天前
|
SQL 数据可视化 算法
SQL Server聚类数据挖掘信用卡客户可视化分析
SQL Server聚类数据挖掘信用卡客户可视化分析
|
1天前
|
SQL 存储 小程序
数据库数据恢复—Sql Server数据库文件丢失的数据恢复案例
数据库数据恢复环境: 5块硬盘组建一组RAID5阵列,划分LUN供windows系统服务器使用。windows系统服务器内运行了Sql Server数据库,存储空间在操作系统层面划分了三个逻辑分区。 数据库故障: 数据库文件丢失,主要涉及3个数据库,数千张表。数据库文件丢失原因未知,不能确定丢失的数据库文件的存放位置。数据库文件丢失后,服务器仍处于开机状态,所幸未写入大量数据。
数据库数据恢复—Sql Server数据库文件丢失的数据恢复案例
|
2天前
|
SQL 安全 数据库
SQL Server 备份和还原
SQL Server 备份和还原
|
2天前
|
SQL 存储 安全
SQL Server 权限管理
SQL Server 权限管理
|
2天前
|
存储 SQL
SQL Server 存储过程 触发器 事务处理
SQL Server 存储过程 触发器 事务处理
|
2天前
|
SQL 自然语言处理 搜索推荐
SQL Server 索引和视图
SQL Server 索引和视图
|
2天前
|
机器学习/深度学习
T-sql 各种查询命令
T-sql 各种查询命令
|
2天前
|
SQL 数据库
Sql server 表管理(创建 修改 删除)
Sql server 表管理(创建 修改 删除)
|
8天前
|
SQL 机器学习/深度学习 数据采集
数据分享|SQL Server、Visual Studio、tableau对信贷风险数据ETL分析、数据立方体构建可视化
数据分享|SQL Server、Visual Studio、tableau对信贷风险数据ETL分析、数据立方体构建可视化
|
9天前
|
SQL 数据采集 数据挖掘
SQL Server仓储物流公司visual studio发货数据仓库设计
SQL Server仓储物流公司visual studio发货数据仓库设计