[%repeat_0 match="/data/option"%] [%=@title%][img]about:blank[/img][%=@count%]票 [[%=@percent%]%][%_repeat_0%]
![](https://i-blog.csdnimg.cn/blog_migrate/e9665a22b947abb04840268120662548.gif)
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 表名-----删除所有的记录,只保留表的结构