SQL Server 基础教学

这篇具有很好参考价值的文章主要介绍了SQL Server 基础教学。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、数据库基础

1.1数据库

1.1.1数据库系统的组成

1.1.2主流数据库

1.2数据库的安装

二、表的管理

2.1.1关系数据库

2.1.2数据类型

2.2SQL server范式

2.3数据完整性

2.3.1实体完整性

2.3.2域完整性

2.3.3参照完整性

三、SQL的增删改查

3.1 DML语句

3.2 insert新增数据

3.2.1、增加一行数据

3.2.2、增加多行数据

3.3 UPDATE更新(修改)数据

3.4 DELETE删除数据

3.5 SELECT查询表的数据

3.5.1 select概述

3.5.2 distinct查询去重

3.5.3 as查询的列起别名




一、数据库基础

1.1数据库

数据库系统的模型主要有层次性、网状型、关系型以及对象关系型。目前,数据库烯烃的主流模型就是关系型。

关系模型:采用二维表的形式表示实体和实体间相联系的数据模型。关系是一个行与列交叉的二维表,,每一列都有唯一的列名,且所有数据均为同一种数据类型,列在表中的次序无关紧要;表的每一行代表一条记录,表中任意两行记录不能完全相同,行在表中的顺序也无关紧要

数据库(DataBasr即DB):是长期存储与计算机内的、有组织的、可共享的数据集合。简单而言,数据库就是按照数据结构来组织、存储和管理数据的仓库。

数据库管理系统(DataBase Management System,即DBMS):是位于用户和操作系统之间的管理软件,是个数据库系统的核心。在操作系统的支持下,DBMS能够科学的组织和存储数据,以及高效的获取和维护数据库的系统软件。其主要功能包括数据库的创建和维护、数据定义、数据操纵和数据库的运行管理。

数据库管理员(DataBase Administrator,即DBA):是一个负责管理和维护数据库服务器的人员。数据库管理员负责全面管理和控制数据库管理系统

1.1.1数据库系统的组成

数据库系统是采用数据库技术的计算机系统,它是由数据库(数据)、数据库管理软件(软件)、数据库管理员(人员)、硬件平台和软件平台五个部分组成的运行实体。其中数据库管理员是对数据库进行规划、设计、维护和监视的专业管理人员,在数据库系统中起着非常重要的作用。

1.1.2主流数据库

目前主流的数据库包括SQL Server、ORACLE、DB2、SYBASE和MySQL等,它们均为关系型数据库。

1.2数据库的安装

下载网址:https://go.microsoft.com/fwlink/?linkid=866662

在这里我只做简单介绍。大家根据图片提示来

1、通过网址下载好安装包,代开后,看到如图形式,选择自定义

sql server教程,数据库,sql

 2、位置选自,最好不要在C盘即主磁盘即可

3、等待下载完成,下载完成后会得到一下样式,选择安装,选择安装全新SQL

sql server教程,数据库,sql

 sql server教程,数据库,sql

 后面将全是图片形式

sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 sql server教程,数据库,sql

 然后官网下载SQL Server Management Studio:https://aka.ms/ssmsfullsetup

将其直接安装即可。

二、表的管理

2.1.1关系数据库

关系数据库是以关系模型为基础的数据库,是一种根据表、元组以及字段之间的关系进行组织和访问的数据库,其通过若干个表来存储数据,并通过关系将这些表联系在一起。

2.1.2数据类型

主要包括字符类型、数字类型和日期类型等。

常见数据类型
类型分类 类型 取值范围和描述 使用场景
整数类型 int ~ 如商品的个数之类
小数类型 decimal(len,n) sql server教程,数据库,sql~ 如工资之类
固定长度非Unicode字符 char 最多可存储8000个字符 如名称
可变长度非Unicode字符 varchar(len) 可根据实际存储的字符改变存储控件,最多可存储8000个字符 如地址名称
可变长度Unicode字符 nvarchar(len) 与varchar类似,最多可存储4000个字符 可存储中、日、韩字符
日期 date

用于存储日期;从

0001-01-01至9999-12-31

出生年月
日期时间 datetime 用于存储时间和日期 生成订单时间

2.2SQL server范式

第一范式(1NF):确保表中每列原子性(不可拆分)

在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。

第二范式(2NF):确保表中每列与逐渐相关,但不能只与主键的某部分相关(主要针对联合函数),主键列与非主键列遵循完全函数依赖关系(完全依赖)

第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。

第三范式(3NF):非主键列之间没有传递函数依赖关系(消除传递依赖)

满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。

第四范式(4NF):禁止主键列和非主键列一对多关系不受约束

第五范式(5NF):将表分割成尽可能小的块,消除表中的冗余

2.3数据完整性

数据完整性即用于保证数据库中的数据在逻辑上的一致性、正确性和可靠性。数据完整性主要包含实体完整性、域完整性和参照完整性

2.3.1实体完整性

实体完整性规定表的每一行记录在表中是唯一的,他主要包含主键约束、自增约束和唯一约束

1、主键约束(Primary Key):用于唯一标识每一条记录,数据表中具有唯一值得字段可设定为主键字段。

注:每个数据表只能有一个主键。设定为逐渐的字段内容不能有重复值,且不能为空(NULL 值)

2、自增约束(IDENTITY):表的某个字段如果需要按照一定的增长规则自增,即在这个字段上设置自增约束。

注:在主键上可设定自增约束;设定了自增约束的字段,不能再进行输入操作

3、唯一约束(Unique):与主键相比,唯一约束也用来确保列中不存在重复值,但其列值可以是NULL。

2.3.2域完整性

域完整性指给定列输入的有效值,即保证指定列的数据具有正确的数据类型、格式和有效的数据范围。实现域完整性可以通过定义NOT NULL、CHECK约束和默认值约束(Default)等方法来实现

1、非空约束(NOT NULL):指这个数据必须填写,不能为null

2、检查约束(check):用于在表中定义一个对输入的数据进行逻辑检查,一旦在表中某列设置了检查约束,则在向表中添加数据时,会使用这个约束对输入的数据按照设置的逻辑进行检查。

注:用MYsql的小伙伴,这个约束在Mysql中不支持。

2.3.3参照完整性

参照的完整性要求关系中不允许引用不存在的实体。实体完整性是关系模型必须满足的完整性约束条件,目的是确保数据的一致性,参照完整性又称引用完整性。

外键:如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。即外键表示了两个关系之间的相关联系。外键又称为外关键字。

三、SQL的增删改查

3.1 DML语句

DML(Data Manipulation Language)即数据操纵语言,为SQL分类之一。用户使用该语言可以对数据库进行操作,DML语句包括insert新增、update更新、delete删除、select查询。

此外还有DDL(Data Definition Language)数据定义语言和DCL(Data Control Language)数据控制语言

3.2 insert新增数据

3.2.1、增加一行数据

格式:insert [into] 表名[(列名,列名……)] values (元素,元素……)

概述:表中的方括号都可以省略,但是列名省略表示该表中的所有列名都要为之新增元素。元素对应前面的每个列名。

列:

--为员工表中姓名,年龄,性别新增元素
insert employee(name,age,gender) values('小明',18,'男')

3.2.2、增加多行数据

格式:insert [into] 表名(列名,列名……) select values(元素,元素……) union select values(元素,元素……)

概念:UNION译为‘联合’,用于多行新增时的连接

--为员工表新增两行姓名、年龄、性别
insert employee(name,age,gender) 
select values('小王',18,'男') union
select values('小芳',18,'女')

3.3 UPDATE更新(修改)数据

格式:update 表名 set 列名=元素,列名=元素……  [where 条件]

概述:如果后面不加where条件,则指定列的每一行都会更改。

--将员工表的所有所在地更改为'中国大陆'
update employee set country='中国大陆'

--将员工表中小明年龄修改为20
update employee set age=20 where name='小明'

3.4 DELETE删除数据

格式:delete from 表名 [where 条件]

概述:如果此处不加where则将整个表删除。

--删除整张表
delete from mytabe

--删除员工表中的小明
delete from employee where name='小明'

3.5 SELECT查询表的数据

3.5.1 select概述

格式:select [指定列]或* from 表名 [where 条件] [group by 列名 having 条件] [order by [desc/asc]] 

概述:  *:表示查询所有

          [where 条件]:不加则查询整张表指定列,或所有列

          [group by 列名 having 条件]:用于分组,后面详解

          [order by [desc/asc] ] :用于排序,后面详解

--查询整张表
select * from employee

--查询指定姓名列数据
select name from employee

--查询姓名为小王的数据
select * from employee where name='小王'

3.5.2 distinct查询去重

如一张表中地址列同一地址名重复,而只想看有哪些的时候就可以用distinct.其主要功能就是过滤重复行。

注:必须放在查询字段的开头;只能在select语句中使用;不能与all同时使用,默认情况下,查询时返回的就是所有的结果

--查询表中的城市有哪些
select distinct address from employee

3.5.3 as查询的列起别名

一般我们查询指定列的时候所输出的数据的列名都是我们之前在创建表时所定义的名称,但是在查询指定列后面加as或者空一格加上别名名称,再次输出时列名就变成了我们所起的别名

--给name和age起别名为姓名和年龄
select name 姓名,age as 年龄 from employee

四、定制查询

4.1运算符

运算符实现运算功能,用来指定在一个或多个表达式中执行操作的符号,以产生新的结果。运算符一般分为算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符、字符串连接运算符和一元运算符

4.1.1算术运算符

运算符 含义
+ 加法运算
- 减法运算
* 乘法运算
/ 除法运算,返回商
% 求余运算,返回余数

例:

--查询语句如下
select UnitPrice,UnitPrice+1 加,UnitPrice-5 减,UnitPrice*2 乘,UnitPrice/3 除,UnitPrice%4 取余 from Goods

sql server教程,数据库,sql

注:除数不可为0,否则报错

4.1.2比较运算符

比较运算符测试两个表达式是否相同。除了text、ntext或image数据类型的表达式外,比较运算符可以用于所有的表达式。比较运算符的结果是布尔数据类型true、false、unknown

Unknown

普通编程语言里的布尔型只有 truefalse 两个值,这种逻辑体系被称为二值逻辑。而 SQL 语言里,除此之外还有第三个值 unknown,因此这种逻辑体系被称为三值逻辑(three-valued logic)。

三个真值之间有下面这样的优先级顺序。

AND 的情况:falseunknowntrue

OR 的情况:trueunknownfalse



unknown是因关系数据库采用了 NULL 而被引入的,他不是“未知”的这个意思,而是“无意义”的这个意思。而null是指“未知”的意思。

注意:unknown不能像true或者false一样,直接在SQL中使用,比如where Tel=unknown 。

运算符 含义
= 等于
<>或!=     不等于
>= 大于等于
<= 小于等于
< 小于
> 大于
is null 判断是否为NULL
is not null 判断是否不为NULL

4.1.3NULL

null不是值,null与数学运算符一起使用的结果永远是unknown

为什么对 NULL 使用比较谓词后得到的结果永远不可能为真呢?这是因为,NULL 既不是值也不是变量。NULL 只是一个表示“没有值”的标记,而比较谓词只适用于值。因此,对并非值的 NULL 使用比较谓词本来就是没有意义的。

常听到的“列的值为 NULL” 、“NULL 值”这样的说法本身就是错误的。因为 NULL 不是值!(如果有人认为 NULL 是值,那么它是什么类型的值?关系数据库中存在的值必然属于某种类型,比如字符型或数值型等。所以,假如 NULL 是值,那么它就必须属于某种类型。)

消除 NULL 的具体方法,这里总结如下。

(1) 首先分析能不能设置默认值。

(2) 仅在无论如何都无法设置默认值时允许使用 NULL

笔者认为,如果遵守这两条原则,那就足以避免 NULL 带来的各种问题,使系统开发能够更加顺利地进行。

另外,注意:要想 和 null 比较 只能用 is null 或者 is not null,这样才会返回true或者false。另外永远记住一点,null和<,>,=,<>这些放在一起结果永远是unknown,比如如 2=null,结果肯定是unknown,而unknown在三值逻辑中不是true也不是false

以上NULL的定论来自:https://www.cnblogs.com/idasheng/p/15425110.html文章来源地址https://www.toymoban.com/news/detail-694848.html

到了这里,关于SQL Server 基础教学的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL Server数据库基础知识汇总

    目录 目录 一、数据库概念 1.1 什么是数据库 1.2 为什么用数据库 1.3 数据库的发展历史 1.4 数据库分类 1.5 DBMS数据库管理系统 二、 SQL(Structured Query Language) 2.1  定义 2.2  SQL分类 2.3 SQL与T-SQL 三、SqlServer下载与安装 四、数据库表各类操作 1 创建数据库登录用户 2 使用DCL赋予数据

    2023年04月09日
    浏览(50)
  • SQL Server数据库 -- 表的基础查询

    一、单表查询基本结构 二、单表查询结构语法 select 聚合函数 where 模糊查询 order by group by having 三、多表查询基本结构 四、多表查询结构语法 内连接 自连接 外连接 五、总结         学习了数据库,在以后公司等地方,你可能不会用到创建数据库或者表格,但是你一定会使

    2024年02月11日
    浏览(82)
  • 《数据库系统概论》SQL Server 数据库导出、导入教程

    在SQL Server的使用过程中,大家难免遇到数据库表的导出、导入,从而实现用其它电脑打开数据库。 如果是使用学校实验室(机房)电脑做实验的同学,一定要掌握本技能!!! 1、右键点击数据库,“任务”,“生成脚本”,如下图 2、选择对象操作如图,“选择具体的数据

    2024年02月10日
    浏览(67)
  • 奇迹MU架设教程:SQL Server 2008数据库的安装教程

    不管是搭建什么游戏,都是有数据库的,奇迹MU用的是SQL 数据库,根据服务器系统选择SQL server版本,我比较喜欢用Windows server 2008R2系统,所以我安装的是SQL server 2008。作为架设奇迹很重要的数据库程序,今天飞飞和你分享SQL Server 2008数据库的安装教程,希望可以帮助到你。

    2024年02月16日
    浏览(39)
  • 前端使用node.js连接sql.server数据库教程

    最近项目中要用到node写接口然后连接公司现有的sql.server数据库,再把执行结果返回给前端(还是我),因为之前一直做前端这块,后端这方面不是很懂,花了很长的时间终于研究出来了(还是太菜了,走了很多弯路),所以写个博客,一是复习巩固,二是给其他有需要的小伙伴一个参考,尽量

    2024年02月11日
    浏览(53)
  • 简单搭建一个web api并且连接sql server数据库(保姆教程)

    这里我们创建一个ASP.NET Web应用,使用框架是.NET Framework4.7.2。 点击进入下一步。    点击创建后会出现一些配置类,我们这里创建一个空,并且在添加文件夹和核心引用处勾选WEB API。  然后点击创建,这里我们项目就创建完成了。然后我们开始文件里面的配置,如跨域等。

    2024年02月04日
    浏览(54)
  • 《Microsoft SQL Server入门教程》第03篇 示例数据库和示例表

    在接下来的教程中,我们将会使用一个名为 BikeStores 的示例数据库,它的实体关系图(ERD)如下: 从上图可以看出,BikeStores 数据可靠包含两个模式(Schema),分别是 sales 和 production。这两个模式总共包含 9 个数据表。 sales.customers sales.customers 表存储了客户的信息,包括名字

    2024年02月05日
    浏览(61)
  • SQL Server 数据库之SQL Server 数据库的安全设置

    数据库服务器是所有应用的数据中转站,若数据库服务被恶意攻击,可能会造成数据泄露、数据丢失、数据被恶意篡改等诸多无法挽回的损失; 所以,对数据库进行安全设置是每一个数据库管理人员都应掌握的知识; SQL Server 登录模式分为 “Windows 身份验证模式” 和 “SQL

    2024年02月06日
    浏览(62)
  • SQL Server数据库使用SQL Server代理实现数据库自动备份

    在现实中,为了保证数据的安全和完整,防止人为错误和硬件故障等造成的数据丢失和损坏,就需要用到数据库的备份,不同的数据库方法有所差别,我这边主讲SQL Server数据库的备份和使用SQL Server代理作业实现数据库的定时备份。 目录 一、开启SQL Server代理 1、找到SQL Serv

    2024年02月09日
    浏览(66)
  • SQL Server2008数据库升级至SQL Server2012

    今天接到了一个需求,服务器上的数据库需要从SQL Server2008升级到2012。根据之前的经验,感觉是一个非常有意思的过程(事实上也是。这个过程也给了我一些触动与启发,因此,便记录了自己的踩坑过程以及解决方案,还有安装过程的体会。 启动SQL Server2012的安装引导程序,

    2024年02月05日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包