sqlserver的常用语法


  
sql
[%repeat_0 match="/data/option"%] [%=@title%][img]about:blank[/img][%=@count%]票 [[%=@percent%]%][%_repeat_0%]
--------------创建一个数据库 -----------
create database 库名
on primary  ---主要数据文件
(
name=库名_data,---主要数据文件逻辑文件名,可任意命名,与日志文件逻辑文件名不能相同
filename="盘符:/路径/库名.mdf",---主要数据文件物理文件名
size=1mb,----最小空间
maxsize=5mb,----最大空间
filegrowth=10%----增涨率
)
log on   --日志文件
(
name=库名_log,--日志文件逻辑文件名,可任意命名,与主要数据文件逻辑文件名不能相同
filename="盘符:/路径/库名.ldf",--日志文件物理文件名
size=1mb,----最小空间
maxsize=5mb,----最大空间
filegrowth=10%----增涨率
)



--------------维护数据库的结构-------------
----修改大小
ALTER DATABASE 库名 MODIFY FILE ( NAME = "主要数据文件名或日志文件名",  SIZE = 新空间大小MB)

----添加次要数据文件
ALTER DATABASE Sample
ADD FILE
  (NAME = 次要数据文件名,
   FILENAME="盘符:/路径/库名.ndf",
   SIZE=空间大小MB,
   MAXSIZE=最大空间大小MB)


--------------删除数据库-------------
drop database 库名1,库名2,……库名n


--------------创建一个数据表-------------------
CREATE TABLE 表名
(
列名1   类型1 约束,
列名2   类型2 约束,
………………
列名n   类型n 约束
)

----创建表时直接创建各种约束
CREATE TABLE 表名
(
列名1   类型1 primary key(列名1,列名2,……列名n),---主键约束
列名2   类型2 unique,---唯一约束
列名3   类型3 identity(初始值,增量),---标识列约束
列名4   类型4 default 默认值[注意:字符和日期要用单引号]---默认值约束
列名5   类型5 check(列名及常量及运算符组成的表达式)---检查约束
………………
列名n   类型n,foreign key(列名1,列名2,……列名n) references 主键所在表名(列名a1,列名a2,……列名n)
)


-------------删除数据表--------------
drop table 表名1,表名2,……表名n


-------------维护数据表的结构(表创建以后,对表添加或者修改约束)-----------------
-----修改列
alter table 表名 alter column 列名 新类型(长度)

-----添加列
alter table 表名 add 列名 类型(长度)

-----删除列
alter table 表名 drop column 列名

-----添加主键约束
alter table 表名 add constraint 主键约束名 primary key(列名1,列名2,……列名n)

-----删除主键约束
alter table 表名 drop constraint 主键约束名

-----添加唯一约束
alter table 表名 add constraint 唯一约束名 unique(列名)

-----删除唯一约束
alter table 表名 drop constraint 唯一约束名

-----添加外键约束
alter table 表名 add constraint 外键约束名 foreign key(列名1,列名2,……列名n) references 主键所在的表名(列名A1,列名A2,……列名An)

-----删除主键约束
alter table 表名 drop constraint 外键约束名

-----添加默认约束
alter table 表名 add constraint 默认约束名 default 默认值 for 列名

-----删除默认约束
alter table 表名 drop constraint 默认约束名

-----添加检查约束
alter table 表名 add constraint 检查约束名 check(列名及常量及运算符组成的表达式)

-----删除检查约束
alter table 表名 drop constraint 检查约束名


-------------------维护表的数据-------------------
-----插入数据
insert [into] 表名 values(列值1,列值2,……列值n)

insert [into] 表名1(列名1,列名2,……列名n) select (列名a1,列名a2,……列名an) from 表名

-----查询数据
select * from 表名---显示所有记录的所有列

select 列名1,列名2,……列名n from 表名-----显示所有记录的某些列

select * from 表名 where 条件表达式   ---显示满足条件的所有记录的所有列

select 列名1,列名2,……列名n from 表名 where 条件表达式  -----显示满足条件的所有记录的某些列

select 别名1.列名1,……别名1.列名n,别名2.列名1,……别名2.列名n from 表名1 as 别名1 inner join 表名2 as 别名2 on 别名1.列名=别名2.列名 where 条件表达式 ---内联接的等值联接

select 别名1.列名1,……别名1.列名n,别名2.列名1,……别名2.列名n from 表名1 as 别名1 inner join 表名2 as 别名2 on 别名1.列名>别名2.列名 where 条件表达式 ---内联接的不等值联接

select 别名1.列名1,……别名1.列名n,别名2.列名1,……别名2.列名n from 表名1 as 别名1 left outer join 表名2 as 别名2 on 别名1.列名=别名2.列名 where 条件表达式---内联接的左外联接

select 别名1.列名1,……别名1.列名n,别名2.列名1,……别名2.列名n from 表名1 as 别名1 right outer join 表名2 as 别名2 on 别名1.列名=别名2.列名 where 条件表达式---内联接的右外联接

select 别名1.列名1,……别名1.列名n,别名2.列名1,……别名2.列名n from 表名1 as 别名1 full outer join 表名2 as 别名2 on 别名1.列名=别名2.列名 where 条件表达式---内联接的完全外联接

select 列名1,列名2,……列名n from 表名 where 条件表达式 order by 列名---按某列排序[ASC为升序,DESC为降序。对于联接查询的排序只需将上述语法后加上order by子句即可]

select 列名1+"符号常量"+列名2+"符号常量"+……列名n from 表名 where 条件表达式  -----使用特殊符号显示满足条件的所有记录的某些列

select 列名1 as 新列名1,列名2 as 新列名2,……列名n as 新列名n from 表名 where 条件表达式  -----使用as子句显示满足条件的所有记录的某些列

select identity(类型,初值,增量) as 新列名 into 新创建的表名 from 已有的表名----使用identity从一个旧表创建一个新表,且只有一个标识列

select identity(类型,初值,增量) into 新创建的表名 from 已有的表名----使用identity从一个旧表创建一个新表,且只有一个标识列[当新表中只有一个标识列时可不用as]

select 新列名=identity(类型,初值,增量)  into 新创建的表名 from 已有的表名----使用identity从一个旧表创建一个新表,且只有一个标识列

select identity(类型,初值,增量) as 新列名1,旧表的列名1 as 新表的列名2,…… 旧表的列名n as 新表的列名n into 新创建的表名 from 已有的表名----使用identity从一个旧表创建一个
新表,且有一个标识列和其它列[当新表中有很多列时必用as]

select top n * from 表名 where 条件表达式---显示前n行记录

select top n percent * from 表名 where 条件表达式---显示前n%行记录

select 列名1,列名2,……列名n from 表名 group by 列名1,列名2,……列名n

select 列名,聚合函数[sum(列名)或avg(列名)或count(列名)或max(列名)或min(列名)] from 表名 group by 列名          ----使用聚合函数分组查询[注意sum和avg只用于数字型的列,count用于数字型和字符型的列,max和min用于数字、字符和日期型的列,sum、avg和count支持distinct]

select 列名1,列名2,……列名n from 表名 group by 列名1,列名2,……列名n having 条件表达式----使用having子句查询[注意where、group和having的顺序不能颠倒]

select * from 表名 where 通配符条件表达式
     --- 列名 like "_A%"
          --- 列名 not like "_A%"
     --- 列名 in(值1,值2,……值n)
     --- 列名 not in(值1,值2,……值n)
     --- 列名 between 值1 and 值2
     --- 列名 not between 值1 and 值2
     --- 列名 is null
     --- 列名 is not null

-----更新数据

update 表名 set 列名1=值1,列名2=值2,……列名n=值n where 条件表达式----更新满足条件的记录的某些列值

update 表名 set 列名1=值1,列名2=值2,……列名n=值n from 表名1 as 别名1 inner join 表名2 as 别名2 on 别名1.列名=别名2.列名 where 条件表达式 ---内联接的等值联接更新

update 表名 set 列名1=值1,列名2=值2,……列名n=值n from 表名1 as 别名1 inner join 表名2 as 别名2 on 别名1.列名>别名2.列名 where 条件表达式 ---内联接的不等值联接更新

update 表名 set 列名1=值1,列名2=值2,……列名n=值n from 表名1 as 别名1 left outer join 表名2 as 别名2 on 别名1.列名=别名2.列名 where 条件表达式---内联接的左外联接更新

update 表名 set 列名1=值1,列名2=值2,……列名n=值n from 表名1 as 别名1 right outer join 表名2 as 别名2 on 别名1.列名=别名2.列名 where 条件表达式---内联接的右外联接更新

update 表名 set 列名1=值1,列名2=值2,……列名n=值n from 表名1 as 别名1 full outer join 表名2 as 别名2 on 别名1.列名=别名2.列名 where 条件表达式---内联接的完全外联接更新

-----删除数据
delete from 表名 where 条件表达式-----删除满足条件的记录

truncate table 表名-----删除所有的记录,只保留表的结构







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值