SQL server 学习笔记

本文详细介绍SQL Server数据库的基础操作,包括表的创建与管理、数据的查询与更新、聚合函数使用、数据排序、复杂查询及表连接等关键知识点,通过实例演示如何高效管理和操作数据库。

SQL server 学习笔记

目录

SQL server 学习笔记

一、数据库基础操作

1.表的创建

2.表的删除与更新

二、查询操作基础

1.SELECT语句

2.算术运算符和比较运算符

3.逻辑运算符

三、聚合与排序

1.对表进行聚合查询

2.对表进行分组

3.对查询结果进行排序

四、数据更新

1.数据的插入(INSERT语句)

2.数据的删除(DELETE语句)

3.数据的更新(UPDATE语句)

五、复杂查询

1.视图

2.子查询

六、表的连接

1. 内连接

       2. 外连接


一、数据库基础操作

1.表的创建

--创建商店数据库

CREATE DATABASE shop;

--创建商品信息表

CREATE TABLE MER

(MER_id      CHAR(4)        NOT NULL,
 MER_name    VARCHAR(100)   NOT NULL,
 kind        VARCHAR(32)    NOT NULL,
 sellprice     INTEGER      ,
 purchaseprice INTEGER      ,
 indate        DATE         ,
 PRIMARY KEY (MER_id));

2.表的删除与更新

--删除商品表MER
DROP TABLE MER;

--更新商品表MER
ALTER TABLE MER ADD meikana VARCHAR(100);

--删除meikana列
ALTER TABLE MER DROP COLUMN meikana;

--DML:向MER表中插入数据
BEGIN TRANSACTION;
INSERT INTO MER VALUES('0001','T恤衫','衣服',100,50,'2018-09-20');
INSERT INTO MER VALUES('0002','打孔器','办公用品',25,32,'2018-09-11');
INSERT INTO MER VALUES('0003','运动服','衣服',150,110,'2018-09-10');
INSERT INTO MER VALUES('0004','菜刀','厨房用具',20,15,'2018-01-25');
INSERT INTO MER VALUES('0005','高压锅','厨房用具',450,400,'2018-08-10');
INSERT INTO MER VALUES('0006','叉子','厨房用具',10,7,'2018-09-20');
INSERT INTO MER VALUES('0007','切菜板','厨房用具',70,60,'2018-04-20');
INSERT INTO MER VALUES('0008','圆珠笔','办公用品',10,8,'2018-05-15');
COMMIT;

二、查询操作基础

1.SELECT语句

--简单列的查询
SELECT KIND FROM MER;

--查询商品表MER中的商品编号、名称以及进货单价
SELECT MER_id,MER_name,purchaseprice
FROM MER;
 
--查询出表中所有列
SELECT *
FROM MER;
 
--为列设置别名
SELECT MER_id        AS  "商品编号",
       MER_name      AS  "商品名称",
       purchaseprice AS  "进货单价"
FROM   MER;

--根据WHERE语句来选择记录
SELECT kind,MER_name
FROM  MER
WHERE  kind='厨房用具';

2.算术运算符和比较运算符


--读取各个商品单价的两倍
SELECT MER_name , sellprice ,
       sellprice * 2 AS "sellprice_x2"
FROM MER;
 
--选出单价大于等于50的记录
SELECT MER_name , kind,sellprice
FROM MER
WHERE sellprice >=50;

 

3.逻辑运算符

--选出2018-01-25或2018-09-20日登记的厨房用具

SELECT MER_name , kind,indate
FROM MER
WHERE kind='厨房用具'
      AND ( indate='2018-01-25'
            OR indate='2018-09-20' );
 

  

三、聚合与排序

1.对表进行聚合查询

--聚合函数:

COUNT 计算表中的记录数(行数)

SUM   计算表中数值列的数据合计值

AVG   计算表中数值列的数据平均值

MAX   求出表中任意列中数据的最大值

MIN   求出表中任意列中数据的最小值

2.对表进行分组

 

3.对查询结果进行排序

 

四、数据更新

1.数据的插入(INSERT语句)

--向表中插入几行数据

INSERT INTO MER VALUES('0009','羽绒服','衣服',750,550,'2018-07-15');
INSERT INTO MER VALUES('0010','笔记本','办公用品',15,12,'2018-09-11');
INSERT INTO MER VALUES('0011','休闲裤','衣服',200,156,'2018-05-19');
INSERT INTO MER VALUES('0012','电磁炉','厨房用具',580,415,'2018-10-01');

SELECT *
FROM MER;

--查询结果

2.数据的删除(DELETE语句)

--删除销售单价大于等于500的DELETE语句

DELETE FROM MER
WHERE sellprice >=500;

--删除指定行的DELETE语句

DELETE FROM MER
WHERE MER_id='0011';

3.数据的更新(UPDATE语句)

--将登记日期全部更新为“2018-10-01”

UPDATE MER
SET indate='2018-10-01';
SELECT *
FROM MER ORDER BY MER_id;

--查询结果

五、复杂查询

1.视图

--创建视图

CREATE VIEW MERSum(kind,shopcount)
AS
SELECT kind,COUNT(*)
FROM MER
GROUP BY kind;

SELECT shopkind,shopcount
FROM MERSum;

 

2.子查询

--创建子查询

SELECT KIND,SHOP_COUNT
FROM ( SELECT KIND,COUNT(*)AS SHOP_COUNT
       FROM MER
       GROUP BY KIND)
AS MER_SUM;

--查询结果

     

六、表的连接

1. 内连接

--创建第二张商品表MER2

CREATE TABLE MERT
(MER_id      CHAR(4)        NOT NULL,
 MER_name    VARCHAR(100)   NOT NULL,
 company     VARCHAR(32)    NOT NULL,
 amount      INTEGER      ,
 shop_id     VARCHAR(100)   NOT NULL,
 PRIMARY KEY (MER_id)
 );

--向表中插入数据

BEGIN TRANSACTION;
INSERT INTO MERT VALUES('0001','T恤衫','优衣库',30, '000A' );
INSERT INTO MERT VALUES('0002','打孔器','得力',50,'000B'    );
INSERT INTO MERT VALUES('0003','运动服','优衣库',100,'000A' );
INSERT INTO MERT VALUES('0004','菜刀','厨房用具',20,'000C'  );
INSERT INTO MERT VALUES('0005','高压锅','厨房用具',15,'000C');
INSERT INTO MERT VALUES('0006','叉子','厨房用具',25,'000C'  );
INSERT INTO MERT VALUES('0007','切菜板','厨房用具',10,'000C');
INSERT INTO MERT VALUES('0008','圆珠笔','得力',100,'000B'   );
COMMIT;

SELECT *
FROM MERT;

--查询结果

--内连接

 SELECT MT.company,MT.amount,MT.shop_id,M.MER_id ,M.MER_name ,M.kind ,M.indate
 FROM MERT AS MT INNER JOIN MER AS M
 ON MT.MER_id=M.MER_id;

 

2. 外连接

--外连接

 SELECT MT.company,MT.amount,MT.shop_id,
        M.MER_id ,M.MER_name ,M.kind ,
        M.indate,M.purchaseprice ,M.sellprice 
 FROM MERT AS MT RIGHT OUTER JOIN MER AS M
 ON MT.MER_id=M.MER_id;

 --查询结果

### 关于 SQL Server 的学习资源 SQL Server 是由 Microsoft 开发并销售的关系型数据库管理系统 (RDBMS),其历史可以追溯到 1989 年[^1]。作为一款功能强大的数据库管理工具,SQL Server 建立在标准查询语言 SQL 的基础上,广泛应用于企业级应用开发和数据分析场景中[^2]。 #### 推荐的学习路径与资料 以下是针对初学者至高级用户的 SQL Server 学习建议: #### 初学阶段 对于刚开始接触 SQL Server 的用户,可以从以下几个方面入手: - **官方文档**: Microsoft 提供了详尽的在线文档,涵盖了从安装配置到复杂查询优化的内容。这是最权威的第一手参考资料。 - 官方链接: [Microsoft Docs](https://docs.microsoft.com/en-us/sql/) - **入门书籍推荐**: - *《Beginning Microsoft SQL Server 2019 Programming》*: 这本书适合新手了解 SQL Server 的基本概念以及如何执行简单的 T-SQL 查询[^3]。 - *《Murach's SQL Server for Developers》*: 针对开发者设计的一本实用指南,帮助理解 SQLSQL Server 的实际操作方法[^4]。 #### 中阶提升 当掌握了基础知识之后,可以通过以下方式进一步提高技能水平: - **T-SQL 编程技巧** - 学习 Transact-SQL(T-SQL),它是 SQL Server 特有的扩展版 SQL,支持更复杂的逻辑处理和存储过程编写。 ```sql -- 创建一个简单存储过程的例子 CREATE PROCEDURE GetEmployeeInfo @EmpID INT AS BEGIN SELECT Name, Position FROM Employees WHERE EmployeeID = @EmpID; END; ``` - **性能调优教程** - 性能问题是许多 DBA 和开发者面临的挑战之一。通过研究索引策略、查询计划分析等技术来改善系统效率是一个重要环节[^5]。 #### 高级探索 进入专家领域后,则需深入探讨架构设计、高可用性和安全性等方面的知识点: - **分布式事务和服务 broker** - 使用 Service Broker 实现异步消息传递机制,在大规模并发环境中尤为有用[^6]。 - **备份恢复方案制定** - 设计合理的灾难恢复计划至关重要,这涉及定期测试完整的备份流程及其快速还原能力验证[^7]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值