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

目录

前言SQL Server介绍

SQL Server数据库简介

数据库的常见分类

SQL语言的分类

SQL Server基础语言学习

CREATE DATABASE - 创建数据库

ALTER DATABASE-修改数据库

DROP DATABASE - 删除数据库

CREATE TABLE – 创建表

INSERT – 插入数据

1、插入新的行

​编辑 2、在指定的列中插入数据

SELECT – 查询数据

DISTINCT – 去除重复值

WHERE – 条件查询

AND & OR – 运算符

ORDER BY – 排序

Group by – 分组查询

Having – 过滤条件查询

UPDATE – 更新数据

DELETE – 删除数据

TRUNCATE TABLE – 清除表数据

DROP TABLE – 删除表

总结


前言
SQL Server介绍

SQL Server数据库简介


SQL Server数据库是Microsoft开发设计的一个关系数据库智能管理系统(RDBMS),现在是全世界主流数据库之一;

SQL Server数据库具备方便使用、可伸缩性好、相关软件集成程度高等优势,能够从单一的笔记本上运行或以高倍云服务器集群为基础,或在这两者之间任何东西上运行。尽管说成“任何东西”,可是依然要考虑有关的软件和硬件配置。

数据库的常见分类


关系型数据库:MySQL、Oracle、DB2、SQL Server
非关系型数据库:Redis、HBase等等


SQL语言的分类


DQL:数据查询语言 (Data Query Language):select、from、where
DCL:数据控制语言(Data Control Language):grant、revoke
DDL:数据定义语言 (Data Definition Language):create、alter、drop、truncate
DML:数据操作语言(Data Manipulation Language):insert、update、delete
TCL:事务控制语言 (Transaction Control Language):commit、rollback


SQL Server基础语言学习


CREATE DATABASE - 创建数据库


--判断数据库文件是否存在,如果存在就删除 exits是判断()语句是否返回值,如果有就返回true,否则就是false

IF EXISTS(SELECT * FROM sysdatabases WHERE name='StudentDB ')
--删除数据库
DROP DATABASE StudentDB 
GO
CREATE DATABASE StudentDB --创建数据库
ON PRIMARY --定义在主文件组上的文件
(
   NAME=stu_date, --逻辑名称
   FILENAME='C:\sql\StudentDB.mdf', --物理名称
   SIZE=10, --初始大小为10mb
   MAXSIZE=unlimited, --最大限制为无限大
   FILEGROWTH=10%) --主数据文件增长幅度为10%
   LOG ON --定义事务日志文件
(
   NAME=stu_log, --逻辑名称
   FILENAME='C:\sql\StudentDB.ldf', --物理名称
   SIZE=1, --初始大小为1mb
   MAXSIZE=5, --最大限制为5mb
   FILEGROWTH=1--事务日志增长幅度为1mb`
) 

ALTER DATABASE-修改数据库


ALTER DATABASE database_name
{    ADD FILE <filespec>[,…n][ TO FILEGROUP filegroup_name ]    /*在文件组中增加数据文件*/
    | ADD LOG FILE <filespec>[,…n]                           /*增加日志文件*/
    | REMOVE FILE logical_file_name                           /*删除数据文件*/
    | ADD FILEGROUP filegroup_name                          /*增加文件组*/
    | REMOVE FILEGROUP filegroup_name                          /*删除文件组*/
    | MODIFY FILE <filespec>                                 /*更改文件属性*/
    | MODIFY NAME = new_dbname                               /*数据库更名*/
    | MODIFY FILEGROUP filegroup_name {filegroup_property | NAME = new_filegroup_name }
    | SET <optionspec> [ ,...n ] [ WITH <termination> ]       /*设置数据库属性*/
    | COLLATE < collation_name >                             /*指定数据库排序规则*/
}
GO


DROP DATABASE - 删除数据库


删除 StudentDB 数据库

DROP DATABASE StudentDB 
GO


以上是建好数据库对数据库的操作,下面就是在数据库中添加表,对表进行操作。

CREATE TABLE – 创建表


Student(学生表)的表结构:


实例:

本代码演示如何创建“Student”的表和表中的结构。

该表包含8个列,列名分别是:“StuNo”、“StuName”、“StuSex”、“StuBir”、Math 、English 、Chinese 以及Classes ;

CREATE TABLE Student(
    StuNo int NOT NULL identity(1,1)  PRIMARY key ,//identity(1,1)表示自动增长的表示列,起始值为 1,每次增加 1
    StuName char(8) NOT NULL ,
    StuSex bit NULL DEFAULT (1) ,
    StuBir datetime NULL ,
    Math varchar(50),
    English varchar(50),
    Chinese varchar(50),
    Classes nvarchar(50)
)
GO//在 SQL 语句中,GO 是一个分隔符,用于将多个 SQL 语句分隔开来。在 SQL Server 中,GO 命令用于执行并提交当前批处理中的所有 SQL 语句


这就是创建表的sql命令,成功后即可添加数据。

INSERT – 插入数据


语法格式:

insert into 表名(字段名,...) values(值,...);


我们也可以指定所要插入数据的列:

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);


实例:

本例演示 “Student” 表插入记录的两种方式:

1、插入新的行

insert into Student values('张三','男','1999/01/02','80','75','90','2001班')


 2、在指定的列中插入数据

INSERT INTO Student (StuName, StuSex) VALUES ('李四', '女');


 当下面的消息提示栏这出现上面这样的就是插入成功了。

 数据表里就会出现你刚才插入的数据。下面就是查询出来结果。

 温馨提示:当第一列是主键自增列的时候,不用插入,但第一列不是主键和自增列时,必须插入,否则会提示列数目不匹配的错误。

SELECT – 查询数据


SELECT 语句用于从表中选取数据,结果被存储在一个结果表中(称为结果集)。

语法:

SELECT * FROM 表名称;
我们也可以指定所要查询数据的列:

SELECT 列名称 FROM 表名称;
温馨提示:SQL 语句不区分大小写,SELECT 等效于 select。

实例:

SQL SELECT * 实例:

SELECT * FROM Student;


 就会查询出表中所有的数据。

温馨提示:星号(*)是选取所有列的方法。

如需获取表中的其中某列的数据,请使用类似这样的 SELECT 语句:

SELECT StuNo,StuName FROM Student;


 这样查询出来的结果就是查询你指定的字段。

DISTINCT – 去除重复值


如果一张表中有多行重复数据,如何去重显示呢?可以了解下 DISTINCT

语法:

SELECT DISTINCT 列名称 FROM 表名称;


实例:

如果要从 “StuName” 列中选取所有的值,我们需要使用 SELECT 语句:

SELECT DISTINCT StuName FROM Student;


就会发现,重名的都没显示,只显示唯一的名字。

WHERE – 条件查询


WHERE 子句是从表中查询出需要特定条件的语法。

语法:

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值;


下面的运算符可在 WHERE 子句中使用:


模糊查询运算符:

  • like:%任意多个字符、_任意单个字符,如果有特殊字符,需要使用escape转义。escape - 当您在LIKE模式中使用特殊字符时,您可能需要指定一个转义字符,以便能够搜索这些特殊字符。例如,如果您想搜索含有%的字符串,您可以使用LIKE '%%' ESCAPE '来指定单引号作为转义字符。
  • between and - 这个运算符用于选取介于两个值之间的数据范围,包括边界值。例如,BETWEEN 1 AND 10会选择1到10之间的所有整数。
  • not between and - 这是BETWEEN AND的反面,用于选取不在两个值之间的数据范围。
  • in  - 这个运算符用于指定一个值列表,选取列表中任意一个值的记录。例如,IN (1, 2, 3)会选取其中任何一个值。
  • not in - 这是IN运算符的反面,用于选取不在指定列表中的值。
  • is null- 用于选取某个列为NULL的记录。
  • is not null- 这是IS NULL的反面,用于选取某个列不为NULL的记录。

 温馨提示:在某些版本的 SQL 中,操作符 <> 可以写为 !=

实例:

查询Student中性别为男的学生

SELECT * FROM Student WHERE StuSex='男';


查询出来的结果就都是男生。

温馨提示: SQL 使用单引号来环绕文本值(字符)。如果是数值,请不要使用引号。

AND & OR – 运算符


AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

  • 如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
  • 如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

语法:

AND 运算符实例:

SELECT * FROM 表名称 WHERE 列 运算符 值 AND 列 运算符 值;


OR 运算符实例:

SELECT * FROM 表名称 WHERE 列 运算符 值 OR 列 运算符 值;


实例:

AND 运算符实例:

使用 AND 来显示所有姓名为 “张三” 并且性别是 “男“  的人:

SELECT * FROM Student WHERE StuName='张三' AND StuSex='男';


OR 运算符实例:

使用 OR 来显示所有姓名为 “张三” 并且性别是 “男“  的人:

SELECT * FROM Student WHERE StuName='张三' OR StuSex='男';


结合 AND 和 OR 运算符:

我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):

SELECT * FROM Student WHERE (StuName='张三' OR StuName='李四')  AND StuSex='男';


ORDER BY – 排序


ORDER BY 语句用于根据指定的列对结果集进行排序,默认按照升序对记录进行排序,可以使用 DESC 关键字进行降序排序。

语法:

SELECT * FROM 表名称 ORDER BY 列1,列2 DESC;


默认排序为 ASC 升序,DESC 代表降序。

实例:

以字母顺序显示 StuName名称:

SELECT * FROM Student ORDER BY StuName desc;


空值(NULL)默认排序在有值行之后。

温馨提示: 在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 null 时,情况也是这样的。

Group by – 分组查询


group by可以根据某一列进行分组查询。

语法:

select 【*/字段名,...】 from 【表名/查询结果集】
【where 查询条件】
group by 分组条件;


实例:

按照Student中的班级进行查询。

select Classes from Student group by Classes;

Having – 过滤条件查询


语法:

select 【*/字段名,...】 from 【表名/查询结果集】
【where 查询条件】
group by 分组条件
having 过滤条件;


实例:

根据数学成绩大于75分进行查询,查询出每位同学的学号,姓名,数学成绩。

select StuNo,StuName,Math from Student 
group by Math,StuNo,StuName 
having Math > 75;


温馨提示:having必须跟在group by的后面,不能单独使用。group by后面必须跟的是非聚合函数。

UPDATE – 更新数据

UPDATE Studnet SET Math= '80' WHERE StuName= '张三';


UPDATE用于修改表中的数据

语法:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;


实例:

更新某一行中的一个列:

更新Student表中张三的数学成绩

UPDATE Student SET Math= '80' WHERE StuName= '张三';


出现(一行受影响)代表更新成功。

温馨提示:SET后边是要更新的内容,WHERE后边是条件。

DELETE – 删除数据


DELETE 语句用于删除表中的行。

语法:

DELETE FROM 表名称 WHERE 列名称 = 值;


实例:

删除某行:

删除 Student表中 StuName为 “张三” 的行:

DELETE FROM Studnet WHERE StuName= '张三';

 出现(一行受影响)代表删除成功。

删除所有行:

可以在不删除表的情况下删除所有的行:

DELETE FROM Student;


温馨提示:删除的时候一定要有条件,不然的话表里的数据就都没有了。 

TRUNCATE TABLE – 清除表数据


TRUNCATE TABLE命令是只删除表中的所有数据,对表的结构不影响。

语法:

TRUNCATE TABLE 表名称;


实例:

如何删除名为 “Student” 表中的数据。

TRUNCATE TABLE Student;


DROP TABLE – 删除表


最后要是不想要这张表的话,直接把整个表删除即可。

语法:

DROP TABLE 表名称;


实例:

删除名为 "Student" 的表。

drop table Student;


总结


以上是Sql Server的一些基本命令,后续会持续深入。

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程小猹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值