您的位置:首页 > 数据库

SQLServer 基础

2015-06-04 13:39 295 查看
1当设计表时,对表进行结构性的修改(如将原来可以null的改为不可null),直接改则不允许保存修改,需要选择 工具----选项----designers—表设计器和数据库设计器---阻止保持要求重新创建表的更改(将其取消)。

2标识字段:输入数据时,不用输入id,让其主动增加(输入第一行时,id自动显示为1,输入第二行时,id自动显示为2) 列属性---标识规范---选择是标识---设置标识种子(起始点)与标识增量(步长)。

3 字段设置默认值,添加新记录时没有输入时自动填充默认值。列属性---默认值或绑定---设定默认值。添加时出现叹号---右键---执行,则实现填充默认值。

4 创建数据库 :对象资源管理器---数据库---右键---新建

Sql语句 (简单方式) 新建查询--- creat database 名称 (执行)

(完整方式) 新建查询---

Create database ljtdatabase

On ---------创建数据文件

(

name=ljtdatabase_data,

Filename=’d/temp/ljtdatabase_data.mdf’, -----存储路径 格式 .mdf

Size=10,

Maxsize=20,

Filegrowth=10%

)

Log on ---------创建日志文件

(

Name=ljtdatabase_log ,

Filename=’d/temp/ljtdatabase_log.ldf’ ------存储路径 格式 .ldf

Size=6,

Maxsize=10,

Filegrowth=10%

)

删除数据库 drop database 名称1,名称2 (删除多个数据库)

5更改名称:

更改数据库名称 直接重命名

exec sp­-renamedb 旧名称 ,新名称。

更改表名称 直接重命名

exec sp-rename 旧名称 , 新名称

6 创建表

Use 数据库名称

create table 表名

(

属性名1 数据类型 identity(1,1) primary key, (定义标识 及主键)

属性名2 数据类型



7 查询表

Select * from dbo.表名

Select 属性1,属性2 from dbo.表名

8 修改数据库

增加数据文件

Alter database 数据库名 ------申明修改哪个数据库

Add file

(

Name=名称

Filename=’d:\abc\ljt.mdf’,

Size =10,

Filegrowth=10%



增加日志文件

Alter database 数据库名 -------申明修改哪个数据库

Add log file

(

Name=名称

Filename=’d:\abc\ljt.mdf’,

Size =10,

Filegrowth=10%



9 删除数据库的文件

Alter database 数据库名

Remove file 文件名 (teacher数据文件 | teacher-log 日志文件)

10 增加表的属性

Use 数据库名 -----申明修改表所属的数据库

Alter table 表名 -----申明修改的表

Add 属性名 数据类型 ( default ‘ 默认值’ ----定义默认值 )

修改属性

Use 数据库名

Alter table 表名

Alter column 属性名 数据类型

删除属性

Use 数据库名

Alter table 表名

Drop column 属性名

11 插入记录

Use 数据库名

Insert into 表名 (需插入的属性名) values (需插入的属性数据值)

将其他表的数据插入到目标表

Insert into 目标表名 select 属性名1,属性名2 from 其他表

12 条件查询

Use 数据库名

Select 属性名 from 表名 where 查询条件

Select 属性名 from 表名 where 条件属性名 not in (条件属性值)

查询空值----Select 属性名 from 表名 where 属性 is null

查询没有重复的属性值

Select distinct 属性名 from 表名

嵌套查询(表之间的查询)

Select 属性名 from 表名 where 条件属性 in |=|> (select 属性名 from 表名 where 条件) -------- 等号后只能有一个值 而 in 后可以是多个值

查询 和 ZZ年龄相同的人

Select *from 好朋友 where age in (select age from 好朋友 where name =’ZZ’)

查询并将结果排序

Select 属性名 from 表名 where 属性条件 order by 第一排序属性,第二属性

asc 升序 desc 降序

13 数据修改

Use 数据库名

Update 表名 set 属性值(属性名=数值) where 修改条件

14 删除记录

Use 数据库名

Delete from 表名 where 删除条件

15 统计行数

Select count (*) as 指定名 from 表名 -----统计所有列的行数

Select count (属性名) as 指定名 from 表名 ----统计某属性不为null的行数

16 统计和

Select sum(属性名) as 指定名 from 表名 ----计算某属性所以列的和(所有员工的工资总额)

17 求平均值

Select avg(属性名) as 指定名 from 表名 ----计算某列的平均值(计算员工的平均年龄)

18 求最值

Select max | min (属性名) as 指定名 from 表名 ----计算最大值(求员工最大年龄)

19求两列和,差,积,商 (列之间的代数运算)

Select 属性名1,属性名2, 属性名3 + 属性名4 as 指定名 from 表名

(查询员工姓名,年龄,及工资和奖金的和(即总工资))

20 模糊查询

Select * from 表名 where 属性名 like ‘%天%’ ----查询某属性值中含有 天 字的记录 李%---以李开头 %李----以李结尾 %李%----含有李字

21 汇总查询

Select *from 表名 order by 属性名1 compute max(属性名) min(属性名) by属性名 1 ----按照属性1,分组计算 max min 然后各组再按属性名1排序(order by属性名1) compute by的属性 必须包含在orderby的属性

计算不同年龄员工群的工资最大值,最小值,工资总和 然后结果按照年龄排序

22 分组查询

Select 属性名1 ,max(属性名),min(属性名) as 指定名 from 表名 group by 属性名 having 查询条件

查询不同院校的员工的工资最大值,最小值 且 只显示工资最大值要求大于3000的

Select 毕业院校, max(工资),min(工资)from 员工表 group by 毕业院校 having

max(工资)>3000

23 条件存在即查询

Select 属性名1,属性名2 from 表名 where exists (条件集合)

条件集合只要非空就可以执行前面的查询操作

Select * from 职员表 where exists (select * from 职员表 where 毕业院校=LIT) -----只要毕业院校是LIT的员工就查询其全部信息 括号内非空就执行前面的查询

Select * from 职员表 where not exists (select * from 职员表 where 毕业院校=LIT)

------ 只要括号内为空就执行前面查询

24 any all 查询

Select *from 表名 where 属性名1> any | all (select …….)

Any 满足条件查询的任意一个即可

All 必须满足条件查询的所有结果

25 只查询全部数据的前 n 条记录 或前 n% 条记录

Select top n 属性名1,属性名2 from 表名

Select top n precent * from 表名

26 将查询结果保存为另一个表

Select * into 另存表名 from 表名where 查询条件

27 查询结果的并-----将两个查询结果显示在同一个表中

Select *from 表名1 union select * from 表名2 -----将从两个不同表中的查询结果放在同一个表中显示

查询结果的交

Select *from 表名1 interset select *from 表名2

28

一般连接查询

Select *from 表名1 ,表名2

分别将表2的每一个记录连接在表一中的所有记录 (表名2 中的每一条记录会和表名1中的所有记录连接)

条件连接

Select *from 表名1,表名2 where 表名1.属性名 = 表名2.属性名(当两个属性名不同时可以直接去掉表名的前缀)-----将两个表中同一人的信息连接 表1.姓名=表2.姓名

超连接查询

Select *from 表名1 inner join 表名2 on 表名1.属性名 = 表名2.属性名

左右连接

Select *from 表名1 left join 表名2 on 表名1.属性名 = 表名2.属性名

-------表名1的记录都会被显示,表名2中只显示符合条件的记录进行连接无对应的用null填充

Select *from 表名1 right join 表名2 on 表名1.属性名 = 表名2.属性名

-------表名2的记录都会被显示,表名1中只显示符合条件的记录进行连接

Select *from 表名1 full join 表名2 on 表名1.属性名 = 表名2.属性名

-------表名1,表名2的记录都会被显示,符合条件的进行连接,没有符合的用null填充

29 check 约束

对属性值进行约束 只有满足约束时才能填充 否则 不能填充

设计----- 要约束属性处右键----check约束----添加----表达式约束

( 年龄>20 and 年龄<30 , 总收入=工资+奖金 )

增加约束

Alter table 表名 add check(约束)

修改约束

Alter table 表名 modify 属性名 check (约束)

30 设置主键

设计----要约束属性处右键-----设置主键

31 唯一性约束 --------唯一性约束用来限制不受主键约束的列上的数据的唯一性

设计---约束属性处---右键---索引键---添加---常规类型选择唯一键---列处选择需要唯一性约束的属性

32 查看索引

Exec sp-helpindex 表名

33创建索引

Create index 索引名 on 表名 (创建索引的属性名 asc | desc)

创建唯一索引

Create unique index 索引名 on 表名 (创建索引的属性名 asc | desc )

34 更改索引名

Exec sp_rename ‘表名.索引名’ ,‘新索引名’ ,‘index’

35 删除索引

Drop index 表名.索引名

36 创建视图

Create view 视图名 as select * from 表名 where 条件

修改视图

Alter view 视图名 as select语句相应的修改查询条件

删除视图

Drop view 视图名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: