当前位置:   article > 正文

SQLServer命令大全

sqlserver命令

SQLServer

一、命令大全

  1. 插入数据

    #语法:
        insert into 表名 (列名) values (值列表)
    #注意:
         #每次插入一行,不能只插入半行或者几列
         #每个值的数据类型要与相应的列匹配
         #不能为标识列指定值
         #如果设计表时指定列不能为空,则该列必须插入值
         #插入数据时一定要符合约束要求
        #具有缺省值的列,可以使用DEFAULT关键字代替
  2. 将表中的数据复制到新表中

    #语法:
        insert  into  新表名 (列名) select  列  from  源表名
    #注意:新表需提前创建且插入列与源表列一致
  3. 将表中的数据复制到新表中

    #语法:
        Select 列名  into 新表  from  源表名
    #注意:新表无需提前创建,且该命令只能执行一次
  4. 一次性给表插入多条数据

    #语法:        
        Insert  into 表名 (列1,列2)
            Select ‘值1’,’值2’ union
            Select ‘值1’,’值2’ union
            Select ‘值1’,’值2’ 
  5. 更新表中数据

    #语法
        UPDATE 表名 SET 列名 = 更新值  [WHERE 更新条件]
  6. 删除表中数据

    #语法
        DELETE [FROM]  表名 [WHERE <删除条件>]
  7. 截断表

    #语法
        TRUNCATE  TABLE  表名
    #注意:该命令会把数据表中数据全部截断,且事务无法恢复
  8. 查询全部的行和列

    #语法
        Select   *  from  表名
    #注意:实际开发中查询尽量避免使用 * 进行全文检索
  9. 查询部分的行和列

    #语法:
    	Select  列1,列2…  from  表名
  10. 查询跟where条件

    #语法:
    	Select  列1,列2…  from  表名  where 查询条件
  11. AS别名列

    #语法:
    	Select  列1 as ‘别名’,列2 as ‘别名’…  from  表名  [where 查询条件]
  12. 查询空行和非空行

    #语法:
    	Select  列1,列2…  from  表名  where 列  is  null     #空行
    	Select  列1,列2…  from  表名  where 列  is not null  #非空行
  13. 常量列

    #语法:
    	SELECT 姓名=SName,地址= SAddress , '北京新兴桥' AS 学校名称FROM Students
  14. 限制固定行数

    #语法:
    	Select  top n  *  from 表名
  15. 按百分比返回行

    #语法:
    	Select top n percent  * from 表名
  16. 排序

    #语法:
    	Select  列  from  表名  order  by  列   [asc |  desc]
    #多列排序用英文逗号进行分隔
    #asc:升序
    #desc:降序
  17. 模糊查询like

    #语法:
    	Select 列 from  表名 [where 列 like 条件]
  18. 四个通配符

    a)	_ 匹配一个字符
    b)	%匹配多个字符
    c)	[1-8] 匹配1~8
    d)	[^1-8]匹配不是1~8
  19. between and 模糊查询

    #语法:
    	select 列 from  表名  where 列 between  值1  and  值2
    #注意:值1 ~ 值2  必须从小到大
  20. in查询

    #语法:
    	select  列  from  表名  where  列  in  (值1,值2,值3…)
  21. 五个常用的聚合函数

    a)	Count:统计数量
    b)	Sum:求和
    c)	Avg求平均分
    d)	Max最大值
    e)	Min最小值
  22. 分组过滤

    #语法:
    	Select 列 from  表名 group by 列  having 筛选条件
    #注意:分组查询的列必须是分组的列或函数,否则报错
  23. 内连接

    #语法:
    	select 列 from  A表  inner join B表 on  A.列 = B.列
    #备注:主表和子表数据相匹配
  24. 左外连接

    #语法:
    	select 列 from  A表  left join B表 on  A.列 = B.列
    #备注:主表数据全部匹配,子表只会匹配跟主表相关联的数据,未匹配的数据填充null值
  25. 右外连接

    #语法:
    	select 列 from  A表  right join B表 on  A.列 = B.列
    #备注:主表数据全部匹配,子表只会匹配跟主表相关联的数据,未匹配的数据填充null值
  26. 等值连接

    #语法:
    	select 列 from  A表,B表  where A.列 = B.列
  27. 分页查询

    #语法:
    	select top 页面大小 * from 表名 where 主键列 not in (select top ((当前页数-1)*每页数据条数) 主键列 from 表名)

二、SQLServer数据库的基本使用

  • 数据库文件( .mdf数据文件和.ld日志文件组成)

  • 创建数据库

    CREATE DATABASE 数据库名
    on PRIMARY
    (
        name = '数据库名',
        FILENAME = 'E:\SQL Data\数据库名.mdf'  -- 数据库文件
    )
    log ON
    (
        name=数据库名_log',
        FILENAME = 'E:\SQL Data\数据库名_log.ldf' -- 数据库日志文件
    )
    GO
  • 创建表(行、列、字段)

    • 字符串类型 nvarchar(长度)、text 姓名、性别、地址

    • 整数类型 int、bigint 年龄、考试成绩

    • bit类型(布尔类型) 0 和 1

    • 浮点类型 (float、decimal)

    • 日期类型(date、datetime)

    • 货币类型(money)

    语法:

    create table 表名(
    	字段1 int not null primary key identity (1,2),  
    	字段2 nvarchar(50) not null,
    	字段3 nvarchar(10) default '男',
    	字段4 datetime not null,
    	字段5 nvarchar unique	
    )
    -- not null 非空(不允许为空)
    -- primary key 主键约束:保证该列唯一且一张表只允许添加一个主键,必须设置非空
    -- identity(标识种子,标识增量):标识规范(自动增长)   
    -- default :给该列设置默认值
    -- unique:唯一约束      
  • 查看所有数据库

    select * from sysdatabases;
  • 查看所有的表

    select * from sysobjects where xtype='U';
  • 使用数据库

    use 数据库名;
  • 备份数据库

    backup database 数据库名 to disk='D:\数据库名.bak';
  • 还原数据库

    restore database 数据库名 from disk='d:\数据库名.bak';
  • 删除数据库

    drop database 数据库名;
  • 删除数据库表

    drop table 表名;
  • 给数据库表添加列

    ALTER TABLE 表名 ADD 字段名 类型 属性;
  • 删除数据库表中的某一列

    alter table 表名 drop column 列名;
  • 修改数据库表中某列的类型

    alter table 表名 alter column 字段名 字段类型;
  • 添加约束

    alter table 表名 add constraint 约束名 primary key(列);
  • 删除约束

    alter table 表名 drop constraint 约束名;
  • 更改用户密码

    alter login sa with password='新密码';
  • 更改表名

    EXEC sp_rename 旧表名,新表名;
  • 设置数据库离线

    alter database 数据库名 set offline;
  • 设置数据在线

    alter database 数据库名 set online;
  • 获取数据库的版本

    select @@VERSION;

SQLServer 其他

一、事务

  1. 事务概念

    • 单个逻辑工作单元的 “一系列操作”

    • “多个操作” 作为一个 “整体” 向系统提交,要么都执行,要么都不执行(只要多个操作中有一个执行失败,那么整个操作全部失败)

    • 事务是一个不可分割的工作单元

    - 模拟转账
    -- 需求:
        张三 1000 元 ------------------->李四 1 元  =  1001元
    张三转账500元给李四
    ​
    转账的过程就是一个事务
    ① 张三余额减500元 500
    ② 李四余额加500元 501     1001元
    ​
    * 张三给李四转账是作为一个整体同时执行,要么转账成功,如果在转账过程中有一步发生了失败,那么整个转账业务也应该取消。这就是事务

  2. 事务的四个特性 ,简称ACID

    • 原子性:事务的各部分操作是不可分的(张三给李四转账500元,同时李四也应该得到500元,这两步不可以分开的)

    • 一致性:当事务完成时,数据必须处于一致状态

      • 转账前两人账户余额总和为1001元

      • 转账后两人账户余额总和为1001元

    • 隔离性:多个并发事务之间彼此隔离、独立,它不以任何方式依赖或影响于其他事务

      • 张三给李四转账(1个事务)

      • 王五给马六转账(1个事务)

      • 多个事务之间是没有任何关系的

    • 永久性:事务一旦执行完成,它对数据库的修改永久保持(针对增加、删除、修改操作) 一旦事务执行成功,数据库中的数据将会永久保存

  3. 使用事务的三个关键词

    • begin transaction 开启事务(开始事务)

      • 业务

  • commit transaction 提交事务

  • rollback transaction 回滚事务(撤销事务)

二、视图

  1. 视图概念

    • 视图是一张“虚拟表”,表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的 “查询基础” 上

    • 视图中不存放数据(虚拟数据),真正的数据存放在原始表中

    • 一个原始表根据不同的需求,可以创建出无数个视图

  2. 视图的作用

    • 筛选表中的行(查询的)

    • 防止未经许可的用户访问敏感的数据

    • 降低数据库的复杂程度

    • 将多个物理数据库抽象为一个逻辑数据库

  3. 创建视图

    语法:
        create view 视图名 as [select查询语句]
    NOTE:
        视图名命名一般以view_ 作为前缀
  4. 使用视图

    语法:
        select * from 视图名
  5. 删除视图

    语法:
        drop view 视图名
  6. 注意事项

    # 视图中可以使用一张表,也可以使用多张表
    # 视图定义中的select语句中不能包含以下内容
        1.order by子句
        2.into 关键字
        3.引用临时表
    # 视图一般只用做查询,切勿对视图进行增删改的操作,否则会影响原始表

三、索引

新华字典:查询某个字
​
"张"
    1.一页一页翻(效率非常低)
    2.根据拼音(索引)   为了提高查询的效率和速度
    3.根据偏旁部首(索引)

  1. 索引概念

    • 在SQLServer数据库中,索引是编排数据的内部方法。它为SQLServer提供一种方法来编排数据

    • 索引类似于新华字典中按照拼音或者偏旁部首目录页

  2. 索引作用

    • 通过使用索引可以大大 “提高数据库的查询检索速度”,改善数据库的性能,

  3. 创建索引

    语法:
        create [unique] index index_name on 表名(列名)
  4. 删除索引

    语法:
        drop index 表名.索引名
    # 备注:删除表时索引也会同时删除
  5. 索引的优点和区别

    • 优点:

      • 加快访问速度

      • 加强行的唯一性

    • 缺点:

      • 带索引的表在数据库中需要更多的存储空间

      • 操纵数据的命令需要更长的处理时间,因为它们需要对索引进行更新

  6. 建立索引的原则

    • 频繁搜索的列

    • 经常用作查询选择的列

    • 经常排序、分组的列

    • 经常用作连接的列(主键外键)

  7. 查看索引

    语法:
    	exec sp_helpindex 表名
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/568918
推荐阅读
相关标签
  

闽ICP备14008679号