SqlServer基础语法
历史
有很多软件公司开发了数据库产品,其中微软公司的数据库产品命名为 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)
- 第一种方式:offset fetch next方式(SQL2012以上的版本才支持:推荐使用 )
- 分页
查询运算符
- 基础运算符
< 、> 、<= 、>= 、= 、<>、 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基础语法的更多相关文章
- SqlServer基础语法(三)
1.数据库备份的方法: 完整数据库备份GPOSDB 文件大小:23MB 日志备份 GPOSDB日志备份文件大小:211KB --完整备份 Backup DATABASE GPOSDB To disk= ...
- SqlServer基础语法(二)
先看一下腰实现的功能:
- 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 ...
- sqlserver 常用语法
sqlserver查找 table, view, column select * from information_schema.tables where table_schema='bk' sele ...
- ORACLE| ORACLE基础语法汇总
创 ORACLE| ORACLE基础语法汇总 2018-07-18 16:47:34 YvesHe 阅读数 9141更多 分类专栏: [数据库] 版权声明:本文为博主原创文章,遵循CC 4.0 B ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- iOS-----正则表达式的基础语法
正则表达式简单语法总结 一.什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式.那么一个正 ...
- python之最强王者(2)——python基础语法
背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...
- emmet 系列(1)基础语法
emmet 系列(1)基础语法 emmet 是一个能显著提升开发html和css开发效率的web开发者工具 emmet基本上目前已知的编辑器都有相应的插件,各个编辑器的emmet插件的下载地址:点我下 ...
随机推荐
- eclipse的安装及最大子数组求和
我安装的是eclipse.由于eclipse是一个基于Java的课扩展开发平台,所以在安装eclipse之前要先安装Java的开发工具JDK(Java Devolopment Dit),且安装JDK需 ...
- ADVERSARIAL EXAMPLES IN THE PHYSICAL WORLD
目录 概 主要内容 least likely class adv. 实验1 l.l.c. adv.的效用 实验二 Alexey Kurakin, Ian J. Goodfellow, Samy Ben ...
- Robust De-noising by Kernel PCA
目录 引 主要内容 Takahashi T, Kurita T. Robust De-noising by Kernel PCA[C]. international conference on art ...
- Spring Boot 2 中如何使用 Log4j2 记录日志
上一篇我们介绍了Spring Boot 2.x中默认日志框架Logback的使用.今天继续说说日志,接下来我们要讲是前段时间爆出核弹漏洞的Log4j2.虽然出了漏洞,让很多小伙伴痛苦了1-2周(加班) ...
- uniapp中scroll-view自定义滚动条
注意事项 需在app.vue中添加如下,需要important /*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/ ::-webkit-scrollbar { width: 16upx!imp ...
- Capstone通用 USB Type-C音视频拓展坞转换芯片
专业解决视频接口技术Capstone科技在2021年新推出四款低功耗单芯片USB Type-C音视频格式转换器方案──CS5266.CS5267.CS5268与CS5269.将为各种显示屏.外部显示设 ...
- 编写Java程序,现要求使用 dom4j 解析 city.xml 文档,实现省份及对应城市的联动特效,效果如图所示
查看本章节 查看作业目录 需求说明: 现要求使用 dom4j 解析 city.xml 文档,实现省份及对应城市的联动特效,效果如图所示 实现思路: 创建解析 XML 文档类 ParseXML 和窗体类 ...
- localstorage的浏览器支持情况
localStorage的兼容性不错,就国内的情况,已经基本没有问题了.localStorage的原理很简单,浏览器为每个域名划出一块本地存储空间,用户网页可以通过localStorage命名空间进行 ...
- vue再页面渲染json数据时没有显示
对象点属性不能获取数据. 原因: 在创建数据对象时我使用了k,v方式:tempMap['category '] = this.category[i].label 如果在创建数据时使用的k,v方式,那么 ...
- Nacos配置管理最佳实践
Nacos一个最常用的功能就是配置中心,在具体使用时往往是多个团队,甚至整个公司的研发团队都使用同一个Nacos服务.那么使用时如何保证配置在各个团队之间的隔离,又能保证配置管理的便捷性?下面就来介绍 ...