首页 > 代码库 > Sql中常用的创建表 约束 主外键 增删改查的语句
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=5MB12 )13 log on14 (15 name=DiaryBase_Log,16 FILENAME=‘c:\DiaryBase.mdf‘,17 size=10MB,18 maxsize=50MB,19 FILEGROWTH=5MB20 )21 go
创建表 (包含约束)
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 go12 --drop table diaryinfo13 create table DiaryInfo14 (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
修改表
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__20C1E12414 alter table users add constraint DF__Users__UserPhoneNumber 15 Default(‘5555‘) for UserPhoneNumber16 --增加删除 唯一约束(mssm中在索引分组里)17 alter table users drop constraint UQ__Users__F3DBC572276EDEB318 alter table users add constraint UQ_users_UserName unique(UserName)19 20 --增加和删除 主键约束21 alter table Users drop constraint PK__Users__3213E83F2492720822 alter table Users add constraint Pk_Users_id primary key(id)23 24 --增加和删除 外键约束25 alter table DiaryInfo drop constraint FK__DiaryInfo__userI__30F848ED26 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__2A4B4B5E31 alter table Users add constraint CK_Users_age check(age<100 and age>0)
同时增加多条约束
alter table Employees addconstraint 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=‘女‘)
查询
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中常用的创建表 约束 主外键 增删改查的语句