SQL server 学习
更新时间:2023-10-21 20:29:01 阅读量: 综合文库 文档下载
- sql server推荐度:
- 相关推荐
创建分区表
步骤 创建分区函数, 指定如何分区,创建分区方案,定义分区函数在文件组上的位置,使用分区方案
CREATE PARTITION FUNCTION partition_function_name(input_parameter_type)
AS RANGE[LEFT|RIGHT]
FOR VALUES([boundery_value[,…n]])
CREATE PARTITION SCHEME partition_schema_name
AS PARTITION partition_function_name
[ALL] TO ({file_group_name|[PRIMARY]}[,…n]) USE datebaseName
CREATE TABLE table_name (
编号 int NOT NULL PRIMARY KEY, 名称 char(8) NOT NULL )
ON partition_schema_name GO
修改表的结构
ALTER TABLE[dabatase_name.[schema_name].|schema_name.]table_name {
--修改列的属性
ALTER COLUMN column_name type_name --增加列
ADD column_name type_name
--删除列
DROP COLUMN column_name
注意:如果原表中已经存在和添加同名的列,则语句运行将出错 在删除一个列之前,必须先删除该列的所有索引和约束
ALTER TABLE语句 一次只能包含ALTER COLUMN,ADD ,DROP 子句中的一句
定义列别名
1. 可以在列明之后使用AS子句来更改查询结果的列标题名 2. 更改查询结果的列标题也可以使用 column_alias=expression 3. 可以省略AS
4. 在自定义的列表名中含有空格,可以将其用’’括其来
SET ANSI_NULLS ON是什么意思?
SQL-92 标准要求在对空值进行等于 (=) 或不等于 (<>) 比较时取值为 FALSE。当 SET ANSI_NULLS 为 ON 时,即使 column_name 中包含空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中包含非空值,使用 WHERE column_name <> NULL 的 SELECT 语句仍会返回零行。
当 SET ANSI_NULLS 为 OFF 时,等于 (=) 和不等于 (<>) 比较运算符不遵从 SQL-92 标准。使用 WHERE column_name =
NULL 的 SELECT 语句返回 column_name 中包含空值的行。使用 WHERE column_name <> NULL 的 SELECT 语句返回列中包含非空值的行。此外,使用 WHERE column_name <> XYZ_value 的 SELECT 语句返回所有不为 XYZ_value 也不为 NULL 的行。
语法
SET QUOTED_IDENTIFIER { ON | OFF } 注释
当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔。当 SET QUOTED_IDENTIFIER 为 OFF 时,标识符不可加引号,且必须遵守所有 Transact-SQL 标识符规则。有关更多信息,请参见使用标识符。文字可以由单引号或双引号分隔。
当 SET QUOTED_IDENTIFIER 为 ON 时,由双引号分隔的所有字符串都被解释为对象标识符。因此,加引号的标识符不必遵守 Transact-SQL 标识符规则。它们可以是保留关键字,并且可以包含 Transact-SQL 标识符中通常不允许的字符。不能使用双引号分隔文字字符串表达式,而必须用单引号括住文字字符串。如果单引号 (') 是文字字符串的一部分,则可以由两个单引号 ('') 表示。当对数据库中的对象名使用保留关键字时,SET QUOTED_IDENTIFIER 必须为 ON。
当 SET QUOTED_IDENTIFIER 为 OFF(默认值)时,表达式中的文字字符串可以由单引号或双引号分隔。如果文字字符串由双引号分隔,则可以在字符串中包含嵌入式单引号,如省略号。
当在计算列或索引视图上创建或操作索引时,SET QUOTED_IDENTIFIER 必须为 ON。如果 SET QUOTED_IDENTIFIER 为 OFF,则计算列或索引视图上带索引的表上的 CREATE、UPDATE、INSERT 和 DELETE 语句将失败。有关计算列上的索引视图和索引所必需的 SET 选项设置的更多信息,请参见 SET 中的\使用 SET 语句时的注意事项\。
T-SQL建主键索引语句 / 外键
1. 创建表
create table Student(StudentOID varchar(50), Age integer) //表是可以没有主键的 2. 创建表时指定主键
create table MyCustomer (CustomerID int Identity(100,1) Primary Key,CompanyName nvarchar(50))
//设置主键后,在控制台上\节点下,默认出现一个Item,名称又系统自动生成。也就是说,主键自动对应一个聚簇索引
//主键是一种特殊的约束,但是在\节点下是无法看到主键Item的 3. 删除主键索引
drop index MyCustomer.PK__MyCustomer__014935CB //失败,因为Index Object正在使用它
alter table MyCustomer drop Constraint PK__MyCustomer__014935CB //成功,主键被全部删除,但是主键列还是存在的
4. 对某存在的列,指定其为主键
alter table MyCustomer ADD CONSTRAINT PK_MyCustomer PRIMARY KEY CLUSTERED ( OID
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 5. 在某个列上添加Unique约束
alter table MyCustomer add CompanyOwnerName nvarchar(10) Constraint Unq_CompanyOwnerName Unique 动创建一个非聚簇索引
//删除时,类似于删除主键所以操作 6. 为某列添加Default约束
alter table MyCustomer add Constraint Def_CustomerAddress default 'Shanghai' for CustomerAddress
//在\节点下,出现一个Item,该约束一个列只能有一个 7. 为某列添加Check约束
alter table MyCustomer add Constraint Chk_AddressValue check(CustomerAddress!='ssfd') 8. 删除约束 9. 删除列
//在\节点下,出现一个Item
alter table MyCustomer drop Constraint PL_OID alter table MyCustomer drop column CustomerAddress 10.修改列的定义
//类似于主键,在控制台上\节点下,默认出现一个Item,Unique约束自ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
//必须保证没有其他对象,如该列上的约束存在,否则操作失败
alter table MyCustomer alter column CustomerAddress nvarchar(500) null //如果列数据类型改变了,而且有这个列上的约束有冲突,那么修改失败 到
12. select * from sys.default_constraints //查看所有Default约束
select * from sys.key_constraints //查看所有Primary Key, Unique约束 13. exec sp_helpconstraint MyCustomer exec sp_helpindex MyCustomer
exec sp_help MyCustomer //查看表范围内的约束,索引,表信息 14. ALTER TABLE 表名 ADD CONSTRAINT fk_表名_外鍵到的表名
FOREIGN KEY (列名)
REFERENCES 外鍵到的表名(列名);
11.Check约束和Default约束都可以改名,但是后者的改名需要Refresh才可以在UI上看得
常量
字符串常量
ASCII字符串常量 用单引号括起来 Unicode 字符串常量 前面有一个N标识符 数据类型 系统数据类型
用户自定义数据类型
CREATE TYPE [schema_name.] type_name
FROM base_type[(precision[,scale])] [NULL|NOT NULL] [;] 例如
CREATE TYPE student_num
FROM char(6) NOT NULL
删除自定义数据类型
DROP TYPE [schema_name.] type_name[;] 如 DROP TYPE student_num
用户自定义表数据类型
CREATE TYPE [schema_name.]type_name AS TABLE(
[,…n])
[;]
如 CREATE TYPE CJB_TABLETYPE AS TABLE (
学号 char(6) NOT NULL 课程号 char(3) NOT NULL 成绩 int NOT NULL PRIMARY KEY (学号,课程号) )
理解标识符的和变量名的区别, 变量名是一个合法的标识符
全局变量 通过在名称前加两个@来区别于局部变量 局部变量 首字母为@ 局部变量的使用 定义
DECLARE { @local_variable data_type[=value]}[,…n] 局部变量的赋值 可用 SET 和SELECT 语句为期赋值 用SET语句赋值
SET @local_variable= expression
正在阅读:
SQL server 学习10-21
中秋节相关的故事11-20
好书推荐作文03-31
花束花篮图片02-10
营造纪念氛围展现首义精神_辛亥革命博物馆_新馆_及首义南轴线城市设计创作构思06-03
2013年宁波市竞争性选拔领导干部预备人选笔试真题解析06-04
牛妈妈英语汇总篇02-21
书虫老爸作文600字07-01
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- server
- 学习
- SQL