SQL Server 入门学习总结---进阶篇

来源:互联网 发布:linux ps aux 编辑:程序博客网 时间:2024/06/05 17:16

本篇博客主要讲述数据库经常使用的一些约束、索引、删除语句以及视图,下面吧这些具体知识点一点一点讲述出来。


主题:

约束:NOT NULL 、 unique、primary key  、foreign key 、check 、default;

索引:创建与删除

删除:drop 、 truncate

向已有的表添加、修改或者删除列:alter table

视图:创建、更新、查看

----------------------------------------------------------------------------------

约束:NOT NULL 、 unique、primary key  、foreign key 、check 、default;

约束用于规定表中的数据规则。如果存在约束的数据行为,行为会被约束中止。

约束可以在创建表的时候规定,或者在表创建之后一定。


Not NULL ---表示某列不能存储NULL值,强制字段始终包含值

unique      ---保证某列的每一行必须只能有唯一值

primary key  ---主键pk,唯一标识数据库表的每条记录(每一个表的主键必须是唯一的,且不能为NULL)

                     --- PRIMARY KEY 约束拥有自动定义的 UNIQUE 约束

                     --- 每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束

foreign key  ---外键fk,保证一个表的数据 匹配另一个表中的值的参照完整性(一个表的fk指向另一个表的pk)

check     ---限制列中 值的范围

default   ---向列中设置默认值


--在表外部添加约束条件基本形式:alter table table_nameadd constraint 约束名;--撤销约束alter table  table_namedrop constraint 约束名;--当然,外键要另当别论了alter table table_name1add constraint 约束名 foreign key(column_name)   references  table_name2(column_name);


具体使用

--给ID添加not null约束  create table person  (ID  int  not null ,     ---在创建表的时候添加not null   (SQL Server 只能在创建表的时候添加not null 约束)name char(5)   )

--创建unique约束 create table person2_unique   --创建一个用来演示的表  (ID  int   ,name char(5)  )--在表创建之后添加添加  alter table person2_unique   --方式一:给ID 添加unique,不命名(系统会默认给出名字)  add unique(ID)  alter table  person2_unique  add constraint uk_person2  unique(name)  --方式二:给name添加unique约束,命名为uk_person2
  --撤销unique约束  alter table person2_unique  drop constraint uk_person2;  --撤销约束名为uk_person2的约束


 --创建primary key  create table person1_primary  (ID  int not null,name char(5),primary key(ID)  --创建表的时候创建Pk  )  create table person2_primary  (ID  int not null,name char(5),  )  alter table person2_primary  add primary key (ID)  alter table person2_primary --删除主键  drop   PK__person2___3214EC2715502E78  --这个名字是系统自己起的,在表的 键属性可以找到  alter table person2_primary  --pk命名为  pk_person2  add  constraint pk_person2 primary key( ID)

--foreign key  create table person1_foerign  --创建表的时候添加外键  (ID  int  not null,name char(5),ID_F  int     foreign key(ID_F) references person1_primary(ID) ---方式一:未命名,创建外键指向person1_primary的ID列--方式二:命名了fk为 fk_person1--constraint  fk_person1   foreign key(ID_F)   references person1_primary(ID)   )  create table person2_foreign  --创建表之后添加外键  (ID int  not null,name char(5),ID_F int   )  alter table person2_foreign  add constraint fk_person2 foreign key(ID_F) references person1_primary(ID)

--check约束  create table person1_check  (ID int check(ID >0),  --在内部添加ID的约束条件:ID>0name char(5)  )    create table person2_check  (ID int,name char(5)  )   alter table person2_check  add constraint check_person check(ID >0);  --在外部添加条件

 --default约束  create table person1_default  (ID int  default(3),  --在内部添加ID的默认值3name char(5)  )    create table person2_default  (ID int,name char(5)  )   alter table person2_default  add constraint Df_person default(3)  for ID; --在外部给ID添加默认值3


----------------------------------------------------------------------------------

索引:创建与删除

在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。


创建语法:

create index index_name    --如果要创建唯一索引,只需在index前  create之后添加uniqueon table_name (column_name);

删除语法:

drop index index_name;


实例演示:

create index My_indexon  person(ID)  --给person 的ID列添加索引

----------------------------------------------------------------------------------

删除:drop 、 truncate

通过drop语句,可以 很轻松的删除索引、表和数据库


drop index index_name;  --删除索引

drop table table_name;   -- 删除表

drop database  database_name;  --删除数据库



--仅仅删除表中数据

truncate table table_name;


truncate、delete、drop的区别与联系

----------------------------------------------------------------------------------

向已有的表添加、修改或者删除列:alter table


在表中添加列:

alter table table_nameadd column_name  datatype

删除表中列的数据:

alter table  table_namedrop column  column_name 

改变表中列的数据类型:

alter table table_namealter column column_name  new_datatype


-----添加一个小知识点:

auto increment字段  会在新记录插入表中时生成一个唯一的数字。

SQL 使用identity 关键字来执行auto increment任务,默认地identity从1开始,每次递增1 

使用语法

  column_name   identity (初始值,递增值);

----------------------------------------------------------------------------------

视图:创建、更新、查看

视图是基于SQL查询结果集的可视化的表。


创建

CREATE VIEW view_name ASSELECT column_name(s)FROM table_nameWHERE condition
注意:视图总是显示最新的数据!每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据


更新视图

update [view_name] set column_name = new_number  where  条件


使用实例

 --view 创建  create view  my_view as  select * from person  where ID >3 and ID <10  --查询  select * from [my_view];  --更新  update  [my_view]  set name = '1357'   where ID =5;




0 0
原创粉丝点击