【SQL Server】入门教程-基础篇(二)

2024-04-29 09:12

本文主要是介绍【SQL Server】入门教程-基础篇(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


上一篇写的是SQL Server的基础语言,这一篇文章讲的是SQL Server的高级语言。

SQL Server 高级言语学习


LIKE – 模糊查询


LIKE 语法是用来进行对表的模糊查询。

语法:

SELECT 列名/(*) FROM 表名称 WHERE 列名称 LIKE 值;


实例:

我们用上一节所用的"Student"学生表来进行演示。

1、现在我们要查询"Student"学生表中的姓名"王"开头的同学。

select * from student where StuName like '王%'


可以看出我们有两个一样的数据。 

2、我们也可以查询"Student"学生表中的姓名带五的同学信息。

select * from student where StuName like '%五'


3、接下来我们查询一下,出生日期中带3的同学信息。

select * from student where StuBir like '%3%'


可以看出查询出来的同学,出生日期都是带数字3的。 

4、通过使用 NOT 关键字,我们可以从"Student"学生表中选取出生日期不带数字3的同学信息

select * from student where StuBir not like '%3%'


可以看到都是出生日期不带数字3的同学。

温馨提示:“%” 是用于匹配多个字符的,"_"是用于匹配单个字符的。

IN – 查找多个值


IN 关键字允许我们在 WHERE 子句中规定多个值。

语法:

SELECT 列名/(*) FROM 表名称 WHERE 列名称 IN (值1,值2,值3);


实例:

现在我们查询"Student"学生表中数学成绩为"80"和"60"的同学信息。

SELECT * FROM student WHERE Math IN ('80','60');


可以看出上表的数学成绩只有 "80"和"60"的同学信息。

BETWEEN – 查询区间数据


BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期

语法:

SELECT 列名/(*) FROM 表名称 WHERE 列名称 BETWEEN 值1 AND 值2;


实例:

1、查询"Student"学生表中数学成绩在"75"和"80"之间的同学信息

SELECT * FROM student WHERE math BETWEEN '75' AND '80';


2、查询上述结果相反的结果,可以使用 NOT:

SELECT * FROM student WHERE math NOT BETWEEN '75' AND '80';


温馨提示:BETWEEN … AND两边都是包含的相当于<=和>=

AS – 别名


通过使用 SQL Server,可以为列名称和表名称指定别名(Alias),别名使查询程序更易阅读和书写。

语法:

表别名:

SELECT 列名称/(*) FROM 表名称 AS 别名;


列别名:

SELECT 列名称 as 别名 FROM 表名称;


实例:

使用表名称别名:

SELECT s.StuName, s.StuSex
FROM Student s
WHERE s.StuName='张三' AND s.StuSex='男';


 使用列名别名:

SELECT StuName as sName, StuSex as sSex FROM student;


可以看到查询出来的列名变为我们自己定义的名字了。

温馨提示:在实际用中,AS关键字可以省略的哟。

JOIN – 多表关联 


JOIN 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。

数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。

语法:

select 列名
from 表A
INNER|LEFT|RIGHT|FULL JOIN 表B
ON 表A主键列 = 表B外键列;


 不同的 SQL JOIN:

下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。

  • JOIN: 如果表中有至少一个匹配,则返回行
  • INNER JOIN: 内部连接,返回两表中匹配的行
  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN: 只要其中一个表中存在匹配,就返回行

实例:

我们来查询"Student"学生表中的学生姓名和班级,再查询第二张"StuInfo"学生信息表中的学生电话,在根据班级进行升序排序。

SELECT s.StuName,s.Classes,si.StuPhone
FROM student s
INNER JOIN StuInfo si
ON s.StuNo = si.StuNo
order by Classes asc

UNION – 合并结果集


UNION 操作符用于合并两个或多个 SELECT 语句的结果集还可以合并INSERT插入语句

UNION 语法:

SELECT 列名 FROM 表A
UNION
SELECT 列名 FROM 表B;


温馨提示:UNION 操作符默认为选取不同的值。如果查询结果需要显示重复的值,请使用 UNION ALL

UNION ALL 语法:

SELECT 列名 FROM 表A
UNION ALL
SELECT 列名 FROM 表B;


实例:

使用 UNION 命令:

列出"Student"和"StuInfo"表中的所有信息

select * from student
UNION
select * from StuInfo;


温馨提示:UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同

NOT NULL – 非空


NOT NULL 约束强制列不接受 NULL 值。

NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

语法:

CREATE TABLE 表
(
列 int NOT NULL
);


温馨提示:如果插入 NULL 值,则会报错 ORA-01400 提示无法插入!NOT NULL 也可以用于查询条件同理NULL也可以。

VIEW – 视图


视图是一个虚拟表,其内容由查询定义。但视图并不存储数据,视图数据来自由定义视图的查询所引用的表。

使用视图有下列优点:

  • 简单性:如可屏蔽表连接等复杂操作。
  • 安全性:简化用户权限的管理,将用户限制在数据的不同子集上。
  • 逻辑数据独立性:基本表的改变只需改变视图,而无需修改应用程序。

语法:

创建视图

CREATE VIEW 视图名 AS
SELECT 列名
FROM 表名
WHERE 查询条件;


调用视图:

select * from 视图名称;


删除视图:

drop view 视图名称;


实例:

根据"Student"和"StuInfo"表中的学生姓名,学生性别,学生电话,学生地址创建视图

create view vStu as
select s.StuName,s.StuSex,si.StuPhone,si.StuAdress from student s,StuInfo si
where s.StuNo = si.StuNo  


调用视图:

select * from vstu


查询这么多条数据,直接查询视图就可以查出来。 

最后


 本章要讲的就是Sql Server的高级语言,还有后续。

这篇关于【SQL Server】入门教程-基础篇(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/945681

相关文章

浅谈mysql的not exists走不走索引

《浅谈mysql的notexists走不走索引》在MySQL中,​NOTEXISTS子句是否使用索引取决于子查询中关联字段是否建立了合适的索引,下面就来介绍一下mysql的notexists走不走索... 在mysql中,​NOT EXISTS子句是否使用索引取决于子查询中关联字段是否建立了合适的索引。以下

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四: