历史

有很多软件公司开发了数据库产品,其中微软公司的数据库产品命名为 SQL Server,也称 MS SQL Server。

1989年 Ashton-Tate/Microsoft SQL Server 1.0 for OS/2 正式发布。

1996年,微软发布了 SQL Server 6.5,作为对 SQL Server 6.0 的重要更新。

1998年12月,SQL Server 7.0 正式上市。

2000年8月,SQL Server 2000 发布。

DDL(Data Definition Language)(数据库定义语言)

  • 创建

    • 创建数据库

      CREATE DATABASE 数据库名;
  • 查询
    • 查看所有的数据库

      SELECT Name FROM Master..SysDatabases ORDER BY Name
  • 删除
    • 删除数据库

      DROP DATABASE 数据库名;
  • 使用
    • 使用数据库

      use 数据库名称;

操作表

  • 创建

    • 创建表

      CREATE TABLE 表名 (

      字段名 1 字段类型 1,

      字段名 2 字段类型 2

      );
    • 数据库类型分类
分类 数据库中的类型 JAVA中对应类型
整数 bigint long
整数 bit boolean
整数 int(integer) int(integer)
整数 tinyint short
小数 float double
小数 decimal java.math.BigDecimal
小数 money java.math.BigDecimal
小数 smallmoney java.math.BigDecimal
日期 smalldatetime 表示时间类型(只精确到分)java.sql.Timestamp
日期 date 表示日期类型java.sql.Date
日期 datetime 同时可以表示日期和时间类型(精确到毫秒)java.sql.Timestamp
字符串 char(m) String
字符串 varchar(max) String
字符串 (text) String
字符串 varbinary(max) String
  • 查询:

    • 查询某个数据库中所有的表名称

      SELECT Name FROM Master..SysDatabases ORDER BY Name
    • 查询表结构
SELECT (case when a.colorder=1 then d.name else null end) 表名, ( d.name) 表名2,
a.colorder 字段序号,a.name 字段名,
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识,
(case when (SELECT count(*) FROM sysobjects
WHERE (name in (SELECT name FROM sysindexes
WHERE (id = a.id) AND (indid in
(SELECT indid FROM sysindexkeys
WHERE (id = a.id) AND (colid in
(SELECT colid FROM syscolumns WHERE (id = a.id) AND (name = a.name)))))))
AND (xtype = 'PK'))>0 then '√' else '' end) 主键,b.name 类型,a.length 占用字节数,
COLUMNPROPERTY(a.id,a.name,'PRECISION') as 长度,
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小数位数,(case when a.isnullable=1 then '√'else '' end) 允许空,
isnull(e.text,'') 默认值,isnull(g.[value], ' ') AS [说明]
FROM syscolumns a
left join systypes b on a.xtype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join syscomments e on a.cdefault=e.id
left join sys.extended_properties g on a.id=g.major_id AND a.colid=g.minor_id
left join sys.extended_properties f on d.id=f.class and f.minor_id=0
--where b.name is not null
WHERE d.name='YxphoneDeal' --如果只查询指定表,加上此条件 如果去掉则是查询全部的
order by a.id,a.colorder
  • 修改

    • 修改表名

      EXEC sp_rename '原有表名', '新表名';
    • 添加一列

      alter table 表名 add 列名 数据类型 not null--添加列
    • 修改列名称 类型

      exec sp_rename '[表名].[列名]','[新列名]' -- 注意,单引号不可省略。
    • 修改列属性

      alter table table_name alter column column_name column_type
    • 删除列

      alter table table_name drop column column_name
    • 添加主键

      Alter table YXHIS..TBICXXDZ Add Constraint PK_TBICXXDZ Primary Key (CICID,CICKMW) --添加主键约束 PK_TBMZFYHZ 创建新的主键约束名称
    • 删除主键

      Alter table YXHIS..TBICXXDZ Drop CONSTRAINT PK_TBICXXDZ --删除表主键约束(已定义主键名) PK_TBMZFYHZ 表创建中查看主键约束名称

DML(Data Manipulation Language)(数据操纵语言)

  • 添加数据

    insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);

除了数字类型,其他类型需要使用引号单引起来(SqlServer严格区分单双引号)

  • 删除数据

    delete from 表名 [where 条件]
  • 修改数据

    update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 条件];

DQL(Data Query Language)(数据查询语言)

  • 基础字段

    select

    字段列表

    from

    表名列表

    where

    条件列表

    group by

    分组字段

    having

    分组之后的条件

    order by

    排序

    • 分页

      • 第一种方式:offset fetch next方式(SQL2012以上的版本才支持:推荐使用 )

        select * from ArtistModels order by ArtistId offset 4 rows fetch next 5 rows only

        --order by ArtistId offset 页数 rows fetch next 条数 rows only --
      • 第二种方式:top not in方式 (适应于数据库2012以下的版本)

        select top 3 * from ArtistModels

        where ArtistId not in (select top 15 ArtistId from ArtistModels)

        ------where Id not in (select top 条数*页数 ArtistId from ArtistModels)
  • 查询运算符

    • 基础运算符

< 、> 、<= 、>= 、= 、<>、 BETWEEN...AND、 IN、 LIKE、 and 或 &&、or 或 ||、not 或 !

  • 复杂运算符
符号 含义
distinct 去掉重复数据
isnull(CBZ3,'') 如果CBZ3为null,结果返回''的值
CASE WHEN ISNULL(CTJYLSH,'')<> '' THEN CTJYLSH ELSE CJYLSH END 如果CTJYLSH不为空,则为CTJYLSH,否则为CJYLSH

isnull(CBZ3,''<>'' cbz3字段不为空

多表查询

略(和MySql一样)

SqlServer数据库约束

约束种类
约束名 约束关键字
主键 primary key
唯一 unique
非空 not null
外键 foreign key
默认值约束 Default
自增约束 AUTO_INCREMENT
检查 CHECK
  • 检查约束

    Check约束通过逻辑表达式来判断数据的有效性,用来限制输入一列或多列的值的范围,在列中更新数据时,所要输入的内容必须满足Check约束的条件,否则将无法正确输入。

SqlServer事物

和MySQL差不太多,都是默认自动提交。

不同点:默认隔离级别:MySql是可重复读,SqlServer是读已提交。

SqlServer基础语法的更多相关文章

  1. SqlServer基础语法(三)

    1.数据库备份的方法: 完整数据库备份GPOSDB 文件大小:23MB 日志备份 GPOSDB日志备份文件大小:211KB --完整备份 Backup DATABASE GPOSDB To disk= ...

  2. SqlServer基础语法(二)

    先看一下腰实现的功能:

  3. ASP.NET实现二维码 ASP.Net上传文件 SQL基础语法 C# 动态创建数据库三(MySQL) Net Core 实现谷歌翻译ApI 免费版 C#发布和调试WebService ajax调用WebService实现数据库操作 C# 实体类转json数据过滤掉字段为null的字段

    ASP.NET实现二维码 using System;using System.Collections.Generic;using System.Drawing;using System.Linq;us ...

  4. sqlserver 常用语法

    sqlserver查找 table, view, column select * from information_schema.tables where table_schema='bk' sele ...

  5. ORACLE| ORACLE基础语法汇总

    创 ORACLE| ORACLE基础语法汇总 2018-07-18 16:47:34 YvesHe 阅读数 9141更多 分类专栏: [数据库]   版权声明:本文为博主原创文章,遵循CC 4.0 B ...

  6. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  7. iOS-----正则表达式的基础语法

    正则表达式简单语法总结 一.什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式.那么一个正 ...

  8. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  9. emmet 系列(1)基础语法

    emmet 系列(1)基础语法 emmet 是一个能显著提升开发html和css开发效率的web开发者工具 emmet基本上目前已知的编辑器都有相应的插件,各个编辑器的emmet插件的下载地址:点我下 ...

随机推荐

  1. Vue.js高效前端开发 • 【Ant Design of Vue框架进阶】

    全部章节 >>>> 文章目录 一.栅格组件 1.栅格组件介绍 2.栅格组件使用 3.实践练习 二.输入组件 1.输入框组件使用 2.选择器组件使用 3.单选框组件使用 4.实践 ...

  2. .Net Core 3.1 WebApi使用Swagger生成Api文档

    用swagger生成Api文档 1.安装Swashbuckle.AspNetCore 右键单击"解决方案资源管理器" > "管理 NuGet 包"中的项目 ...

  3. Java Springboot webSocket简单实现,调接口推送消息到客户端socket

    Java Springboot webSocket简单实现,调接口推送消息到客户端socket 后台一般作为webSocket服务器,前台作为client.真实场景可能是后台程序在运行时(满足一定条件 ...

  4. Red Scarf abc171_E

    题目大意 除去一个元素后的异或和 题目分析 首先异或有交换律 \(a \ \mathrm{xor} \ a=0\) \(0 \ \mathrm{xor} \ a=a\) 可以求出异或和,在异或当前元素 ...

  5. kali linux2020 虚拟机改root密码

    kali在2020版的更新中,好多小伙伴登不进root账号,这里来教大家怎样改root账户的密码 1.当我们打开虚拟机看到这个界面的时候,按e进入编辑模式 2.在编辑模式中,"quite s ...

  6. 如何提高docker容器的安全性

    一. 概述 Docker 容器一直是开发人员工具箱的重要组成部分,使开发人员能够以标准化的方式构建.分发和部署他们的应用程序.毫无疑问,这种吸引力的增加伴随着容器化技术的相关安全问题.他们可以很容易地 ...

  7. echarts-gl初体验:使用echarts-gl实现3D地球

    首先我们要下载引入echarts.js和echarts-gl.js 有需要的自己拿资源哈 链接:https://pan.baidu.com/s/1J7U79ey-2ZN4pjb7RTarjg 提取码: ...

  8. day 11 算法的时间空间复杂度

    (1).有以下程序: 求输入的n值(除1和n)之外的所有因子之和. 分析:这里函数内的循环体i初值不能为零.%是表示"取余",0除以任何数都不会存在余数的,所有是余数为0. (2) ...

  9. IPOPT安装

    1.安装工具coinbrew 打开网页,找到以下网址 将网站中的内容全部复制到自己创建的coinbrew文件中,并且赋予权限 chmod u+x coinbrew 或者执行 git clone htt ...

  10. Docsify部署IIS

    什么是Docsify? 一个神奇的文档网站生成器.docsify 可以快速帮你生成文档网站.不同于 GitBook.Hexo 的地方是它不会生成静态的 .html 文件,所有转换工作都是在运行时.如果 ...