SQLServer 基础

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:abcljt.mdf’,

            Size =10,

            Filegrowth=10%

增加日志文件

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

               Add  log   file

(

          Name=名称

          Filename=’d:abcljt.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 视图名

原文地址:https://www.cnblogs.com/runner-ljt/p/4551562.html