Sql中常用的创建表 约束 主外键 增删改查的语句

Posted 南潇湘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sql中常用的创建表 约束 主外键 增删改查的语句相关的知识,希望对你有一定的参考价值。

创建数据库

 1 USE master;
 2 GO
 3 --日记数据库
 4 create database DiaryBase
 5 on
 6 (
 7     name=DiaryBase_Dat,--逻辑名称
 8     FILENAME=\'c:\\DiaryBase.log\',
 9     size=10MB,
10     maxsize=50MB,
11     FILEGROWTH=5MB
12 )
13 log on
14 (
15     name=DiaryBase_Log,
16     FILENAME=\'c:\\DiaryBase.mdf\',
17     size=10MB,
18     maxsize=50MB,
19     FILEGROWTH=5MB
20 )
21 go
View Code

 

创建表 (包含约束)

 1 --drop table users
 2 create table Users
 3 (
 4     id int identity(1,1) primary key,
 5     username nvarchar(20) unique not null,--唯一约束
 6     userPassword varchar(20) not null,
 7     gender char check (gender =\'\' or gender =\'\'),--check(这里是一个bool值)
 8     age int ,
 9       check (age>0 and age <100) --检查约束
10 )
11 go
12 --drop table diaryinfo
13 create table DiaryInfo
14 (
15     dId int identity(1,1) primary key,
16     userId int foreign key references users ( id),--外键
17     dInfo nvarchar(300) not null,
18     dCreateTime datetime default  (getdate()),--默认约束
19     dTitle nvarchar(50) 
20 )
21 go
View Code

 

修改表

 1 --增加和删除列
 2 alter table users add UserAddr nvarchar(30) 
 3 
 4 alter table users drop column useraddr
 5 
 6 alter table users add UserPhoneNumber nvarchar(40) 
 7         --add  DF_Users_userPhoneDf constraint
 8  default (\'000000\')
 9 
10 
11 --修改表的约束
12 --删除和增加  默认约束
13  alter table users  drop constraint   DF__Users__UserPhone__20C1E124
14 alter table users    add constraint DF__Users__UserPhoneNumber  
15          Default(\'5555\') for UserPhoneNumber
16 --增加删除  唯一约束(mssm中在索引分组里)
17 alter table users drop constraint UQ__Users__F3DBC572276EDEB3
18 alter table users add constraint UQ_users_UserName unique(UserName)
19 
20 --增加和删除 主键约束
21 alter table Users drop constraint PK__Users__3213E83F24927208
22 alter table Users add constraint Pk_Users_id primary key(id)
23 
24 --增加和删除 外键约束
25 alter table DiaryInfo drop constraint FK__DiaryInfo__userI__30F848ED
26 alter table DiaryInfo add constraint FK_DiaryInfo_userId 
27             foreign key (UserId) references Users(id)
28             
29 --增加和删除  检查约束
30 alter table Users drop constraint CK__Users__age__2A4B4B5E
31 alter table Users add constraint  CK_Users_age check(age<100 and age>0) 
View Code

同时增加多条约束

alter table Employees add
constraint FK_Employees_Department foreign key(EmpDepId) references Department(DepId),
constraint CK_Employees_EmpAge check(EmpAge>=0 and EmpAge<=120),
constraint CK_Employees_EmpGender check(EmpGender=\'\' or EmpGender=\'\')
View Code

查询

select
    学生编号=tsid,
    tsname as 学生姓名,
    tsgender 性别,
    婚否=\'否\'--查询的时候直接赋值 ‘否’
from TblStudent
--where 性别=\'男\'  这里性别无效 他只是用来显示的

 

--distinct关键字,针对已经查询出的结果然后去除重复
select distinct * from TblStudent

 

--如果top后跟的不是数字,而是一个表达式一定要使用()把表达式括起来。
select top (2*2) * from TblScore order by tMath desc

select top 35 percent * from TblScore order by tMath desc

 

--1.聚合函数不统计空值

--对于in或者or 查询,如果查询中的条件是连续的几个数字,最好使用>=  <=或者between...and不要使用or或者in。提高效率
select * from TblStudent where tsname like \'张[a-z0-9]妹\'

--通配符放到[]中就转义了就不认为是通配符了。【】是系统默认的转移符
select * from TblStudent where tsname like \'%[%]%\'

查出

当要搜索名字有 有[或者]字符的

select * from TblStudent where tsname like \'%[]]%\'

这样查不到,这里需要我们使用自定义转移符  ESCAPE

select * from TblStudent where tsname like \'%/[%\'  ESCAPE \'/\'

 

以上是关于Sql中常用的创建表 约束 主外键 增删改查的语句的主要内容,如果未能解决你的问题,请参考以下文章

外键以及数据库的增删改查你了解多少

Sql server怎样创建主外键关系

Sql server怎样创建主外键关系

SQL主外键,子查询

SQL主外键和子查询

外键的增删改查练习