当前位置: 首页 > news >正文

做阿胶上什么网站比较好/seo查询 站长工具

做阿胶上什么网站比较好,seo查询 站长工具,做网站包头,为什么现在建设银行要下载网站激活SQL Server 增删改查详解 一、引言 在医药流通行业批发公司的业务运营中,数据的管理至关重要。SQL Server 作为一款功能强大的关系型数据库管理系统,广泛应用于各类企业的数据存储和处理。增删改查(CRUD,即 Create、Read、Updat…

SQL Server 增删改查详解

一、引言

在医药流通行业批发公司的业务运营中,数据的管理至关重要。SQL Server 作为一款功能强大的关系型数据库管理系统,广泛应用于各类企业的数据存储和处理。增删改查(CRUD,即 Create、Read、Update、Delete)操作是数据库操作的基础,熟练掌握这些操作对于高效管理医药流通业务数据至关重要。本文将详细介绍 SQL Server 中增删改查操作的各个方面,包括基本语法、高级应用以及实际案例。

二、SQL Server 简介

2.1 什么是 SQL Server

SQL Server 是由 Microsoft 开发和推广的关系型数据库管理系统(RDBMS)。它提供了强大的数据存储、管理和处理能力,支持多种数据类型、事务处理、安全机制等,广泛应用于企业级应用开发、数据分析等领域。

2.2 SQL Server 在医药流通行业的应用

在医药流通行业批发公司中,SQL Server 可用于存储和管理各类业务数据,如药品信息、客户信息、订单信息等。通过对这些数据的有效管理和分析,企业可以优化业务流程、提高运营效率、做出更明智的决策。

三、数据库和表的创建

3.1 创建数据库

在 SQL Server 中,可以使用 CREATE DATABASE 语句来创建一个新的数据库。以下是一个简单的示例:

-- 创建一个名为 PharmaDistributionDB 的数据库
CREATE DATABASE PharmaDistributionDB;

在执行上述语句后,SQL Server 会在指定的存储位置创建一个新的数据库。

3.2 创建表

在创建了数据库之后,需要创建表来存储具体的数据。使用 CREATE TABLE 语句可以定义表的结构,包括列名、数据类型、约束等。以下是一个创建药品信息表的示例:

-- 使用 PharmaDistributionDB 数据库
USE PharmaDistributionDB;-- 创建药品信息表
CREATE TABLE MedicineInfo (MedicineID INT PRIMARY KEY IDENTITY(1,1),MedicineName NVARCHAR(100) NOT NULL,Manufacturer NVARCHAR(100),Price DECIMAL(10, 2),Quantity INT
);

在上述示例中,MedicineInfo 表包含了 MedicineIDMedicineNameManufacturerPriceQuantity 五个列。其中,MedicineID 是主键,使用 IDENTITY 属性实现自增。

四、数据插入操作(Create)

4.1 插入单条记录

使用 INSERT INTO 语句可以向表中插入单条记录。以下是向 MedicineInfo 表中插入一条记录的示例:

-- 向 MedicineInfo 表中插入一条记录
INSERT INTO MedicineInfo (MedicineName, Manufacturer, Price, Quantity)
VALUES ('阿司匹林', 'XX 制药厂', 10.50, 100);

在上述示例中,指定了要插入数据的列名,并使用 VALUES 子句提供了具体的值。

4.2 插入多条记录

可以使用 INSERT INTO 语句一次性插入多条记录。以下是插入多条记录的示例:

-- 向 MedicineInfo 表中插入多条记录
INSERT INTO MedicineInfo (MedicineName, Manufacturer, Price, Quantity)
VALUES 
('布洛芬', 'YY 制药厂', 15.00, 200),
('阿莫西林', 'ZZ 制药厂', 20.00, 150);

在上述示例中,使用逗号分隔不同的记录值。

4.3 从其他表插入数据

可以使用 INSERT INTO...SELECT 语句从其他表中选取数据并插入到当前表中。以下是一个示例:

-- 创建一个临时表
CREATE TABLE TempMedicine (MedicineName NVARCHAR(100),Manufacturer NVARCHAR(100),Price DECIMAL(10, 2),Quantity INT
);-- 向临时表中插入数据
INSERT INTO TempMedicine (MedicineName, Manufacturer, Price, Quantity)
VALUES ('对乙酰氨基酚', 'AA 制药厂', 8.00, 120);-- 从临时表中选取数据并插入到 MedicineInfo 表中
INSERT INTO MedicineInfo (MedicineName, Manufacturer, Price, Quantity)
SELECT MedicineName, Manufacturer, Price, Quantity
FROM TempMedicine;

在上述示例中,首先创建了一个临时表 TempMedicine,并向其中插入了一条记录。然后使用 INSERT INTO...SELECT 语句将临时表中的数据插入到 MedicineInfo 表中。

五、数据查询操作(Read)

5.1 基本查询

使用 SELECT 语句可以从表中查询数据。以下是一个简单的查询示例,查询 MedicineInfo 表中的所有记录:

-- 查询 MedicineInfo 表中的所有记录
SELECT * FROM MedicineInfo;

在上述示例中,* 表示查询所有列。

5.2 指定列查询

可以指定要查询的列名,而不是查询所有列。以下是一个示例:

-- 查询 MedicineInfo 表中的药品名称和价格
SELECT MedicineName, Price FROM MedicineInfo;

在上述示例中,只查询了 MedicineNamePrice 两列。

5.3 条件查询

使用 WHERE 子句可以根据指定的条件筛选数据。以下是一个查询价格大于 15 的药品信息的示例:

-- 查询价格大于 15 的药品信息
SELECT * FROM MedicineInfo
WHERE Price > 15;

在上述示例中,WHERE 子句指定了筛选条件。

5.4 排序查询

使用 ORDER BY 子句可以对查询结果进行排序。以下是一个按价格升序排序的查询示例:

-- 查询药品信息并按价格升序排序
SELECT * FROM MedicineInfo
ORDER BY Price ASC;

在上述示例中,ASC 表示升序排序,DESC 表示降序排序。

5.5 分组查询

使用 GROUP BY 子句可以对数据进行分组,并使用聚合函数进行统计。以下是一个按制造商分组统计药品数量的示例:

-- 按制造商分组统计药品数量
SELECT Manufacturer, SUM(Quantity) AS TotalQuantity
FROM MedicineInfo
GROUP BY Manufacturer;

在上述示例中,使用 SUM 聚合函数统计每个制造商的药品总数量。

5.6 连接查询

当需要从多个表中查询数据时,可以使用连接查询。常见的连接类型有内连接、左连接、右连接和全连接。以下是一个内连接查询的示例,假设存在一个 OrderInfo 表,包含 OrderIDMedicineIDOrderQuantity 列:

-- 创建 OrderInfo 表
CREATE TABLE OrderInfo (OrderID INT PRIMARY KEY IDENTITY(1,1),MedicineID INT,OrderQuantity INT,FOREIGN KEY (MedicineID) REFERENCES MedicineInfo(MedicineID)
);-- 向 OrderInfo 表中插入数据
INSERT INTO OrderInfo (MedicineID, OrderQuantity)
VALUES (1, 10), (2, 20);-- 内连接查询药品信息和订单信息
SELECT MedicineInfo.MedicineName, OrderInfo.OrderQuantity
FROM MedicineInfo
INNER JOIN OrderInfo
ON MedicineInfo.MedicineID = OrderInfo.MedicineID;

在上述示例中,使用 INNER JOIN 关键字将 MedicineInfo 表和 OrderInfo 表连接起来,连接条件是 MedicineInfo.MedicineID = OrderInfo.MedicineID

六、数据更新操作(Update)

6.1 更新单条记录

使用 UPDATE 语句可以更新表中的记录。以下是一个更新 MedicineInfo 表中某条记录的示例:

-- 更新 MedicineInfo 表中 MedicineID 为 1 的记录的价格
UPDATE MedicineInfo
SET Price = 12.00
WHERE MedicineID = 1;

在上述示例中,SET 子句指定了要更新的列和新的值,WHERE 子句指定了要更新的记录条件。

6.2 更新多条记录

可以根据条件更新多条记录。以下是一个更新所有价格小于 10 的药品价格为 10 的示例:

-- 更新所有价格小于 10 的药品价格为 10
UPDATE MedicineInfo
SET Price = 10
WHERE Price < 10;

6.3 基于其他表更新数据

可以使用 UPDATE 语句结合 JOIN 子句基于其他表的数据更新当前表的数据。以下是一个示例,假设存在一个 PriceAdjustment 表,包含 MedicineIDNewPrice 列:

-- 创建 PriceAdjustment 表
CREATE TABLE PriceAdjustment (MedicineID INT,NewPrice DECIMAL(10, 2),FOREIGN KEY (MedicineID) REFERENCES MedicineInfo(MedicineID)
);-- 向 PriceAdjustment 表中插入数据
INSERT INTO PriceAdjustment (MedicineID, NewPrice)
VALUES (1, 13.00), (2, 16.00);-- 基于 PriceAdjustment 表更新 MedicineInfo 表的价格
UPDATE MedicineInfo
SET Price = PriceAdjustment.NewPrice
FROM MedicineInfo
INNER JOIN PriceAdjustment
ON MedicineInfo.MedicineID = PriceAdjustment.MedicineID;

在上述示例中,通过 JOIN 子句将 MedicineInfo 表和 PriceAdjustment 表连接起来,根据 PriceAdjustment 表中的 NewPrice 更新 MedicineInfo 表的 Price

七、数据删除操作(Delete)

7.1 删除单条记录

使用 DELETE 语句可以删除表中的记录。以下是一个删除 MedicineInfo 表中 MedicineID 为 1 的记录的示例:

-- 删除 MedicineInfo 表中 MedicineID 为 1 的记录
DELETE FROM MedicineInfo
WHERE MedicineID = 1;

在上述示例中,WHERE 子句指定了要删除的记录条件。

7.2 删除多条记录

可以根据条件删除多条记录。以下是一个删除所有数量为 0 的药品记录的示例:

-- 删除所有数量为 0 的药品记录
DELETE FROM MedicineInfo
WHERE Quantity = 0;

7.3 删除表中的所有记录

使用 TRUNCATE TABLE 语句可以快速删除表中的所有记录,并且会重置自增列的值。以下是一个示例:

-- 删除 MedicineInfo 表中的所有记录
TRUNCATE TABLE MedicineInfo;

DELETE 语句不同,TRUNCATE TABLE 不记录日志,因此执行速度更快。

八、高级应用

8.1 事务处理

在 SQL Server 中,事务是一组不可分割的 SQL 语句序列,要么全部执行成功,要么全部失败回滚。使用 BEGIN TRANSACTIONCOMMIT TRANSACTIONROLLBACK TRANSACTION 语句可以实现事务处理。以下是一个示例,假设在插入订单信息时需要同时更新药品库存:

BEGIN TRANSACTION;-- 插入订单信息
INSERT INTO OrderInfo (MedicineID, OrderQuantity)
VALUES (2, 10);-- 更新药品库存
UPDATE MedicineInfo
SET Quantity = Quantity - 10
WHERE MedicineID = 2;-- 检查是否有错误
IF @@ERROR = 0COMMIT TRANSACTION;
ELSEROLLBACK TRANSACTION;

在上述示例中,如果插入订单信息和更新药品库存的操作都成功执行,则提交事务;否则,回滚事务,保证数据的一致性。

8.2 存储过程

存储过程是一组预编译的 SQL 语句,存储在数据库中,可以重复调用。使用存储过程可以提高性能、增强安全性和可维护性。以下是一个创建和调用存储过程的示例,用于查询指定制造商的药品信息:

-- 创建存储过程
CREATE PROCEDURE GetMedicineByManufacturer@Manufacturer NVARCHAR(100)
AS
BEGINSELECT * FROM MedicineInfoWHERE Manufacturer = @Manufacturer;
END;-- 调用存储过程
EXEC GetMedicineByManufacturer 'YY 制药厂';

在上述示例中,创建了一个名为 GetMedicineByManufacturer 的存储过程,接受一个 @Manufacturer 参数,用于查询指定制造商的药品信息。然后通过 EXEC 语句调用该存储过程。

8.3 触发器

触发器是一种特殊的存储过程,当表上发生特定的事件(如插入、更新、删除)时自动执行。以下是一个创建触发器的示例,当插入订单信息时自动更新药品库存:

-- 创建触发器
CREATE TRIGGER UpdateMedicineQuantity
ON OrderInfo
AFTER INSERT
AS
BEGINUPDATE MedicineInfoSET Quantity = Quantity - inserted.OrderQuantityFROM MedicineInfoINNER JOIN insertedON MedicineInfo.MedicineID = inserted.MedicineID;
END;

在上述示例中,创建了一个名为 UpdateMedicineQuantity 的触发器,当 OrderInfo 表插入新记录时,自动更新 MedicineInfo 表中相应药品的库存。

九、实际案例分析

9.1 医药流通公司订单管理系统

假设医药流通公司的订单管理系统使用 SQL Server 数据库,包含 MedicineInfoCustomerInfoOrderInfo 等表。以下是一些常见的增删改查操作示例:

插入订单信息
-- 插入订单信息
INSERT INTO OrderInfo (CustomerID, MedicineID, OrderQuantity, OrderDate)
VALUES (1, 2, 20, GETDATE());
查询客户的订单信息
-- 查询客户 ID 为 1 的所有订单信息
SELECT OrderInfo.OrderID, MedicineInfo.MedicineName, OrderInfo.OrderQuantity, OrderInfo.OrderDate
FROM OrderInfo
INNER JOIN MedicineInfo
ON OrderInfo.MedicineID = MedicineInfo.MedicineID
WHERE OrderInfo.CustomerID = 1;
更新订单数量
-- 更新订单 ID 为 1 的订单数量为 30
UPDATE OrderInfo
SET OrderQuantity = 30
WHERE OrderID = 1;
删除订单信息
-- 删除订单 ID 为 1 的订单信息
DELETE FROM OrderInfo
WHERE OrderID = 1;

9.2 药品库存管理系统

在药品库存管理系统中,需要对药品的库存信息进行实时更新和查询。以下是一些操作示例:

插入新药品信息
-- 插入新药品信息
INSERT INTO MedicineInfo (MedicineName, Manufacturer, Price, Quantity)
VALUES ('头孢克肟', 'CC 制药厂', 25.00, 300);
查询库存不足的药品信息
-- 查询库存数量小于 50 的药品信息
SELECT * FROM MedicineInfo
WHERE Quantity < 50;
更新药品库存
-- 收到新的药品进货,更新药品 ID 为 3 的库存数量为 350
UPDATE MedicineInfo
SET Quantity = 350
WHERE MedicineID = 3;
删除过期药品信息
-- 删除过期药品信息(假设存在一个 ExpirationDate 列)
DELETE FROM MedicineInfo
WHERE ExpirationDate < GETDATE();

十、性能优化

10.1 索引优化

索引可以提高查询性能,通过创建合适的索引可以加快数据的查找速度。以下是创建索引的示例:

-- 在 MedicineInfo 表的 MedicineName 列上创建索引
CREATE INDEX idx_MedicineName ON MedicineInfo (MedicineName);

在上述示例中,创建了一个名为 idx_MedicineName 的索引,用于加快对 MedicineName 列的查询。

10.2 查询优化

优化查询语句可以减少查询的执行时间。例如,避免使用 SELECT *,只查询需要的列;合理使用 WHERE 子句进行条件筛选等。

10.3 数据库配置优化

合理配置 SQL Server 的内存、磁盘 I/O 等参数可以提高数据库的整体性能。可以根据服务器的硬件配置和业务需求进行调整。

十一、总结

本文详细介绍了 SQL Server 中增删改查操作的基本语法、高级应用以及实际案例。在医药流通行业批发公司的业务运营中,熟练掌握这些操作对于高效管理业务数据至关重要。同时,通过性能优化可以提高数据库的性能和响应速度,为企业的决策提供有力支持。在实际应用中,还需要根据具体的业务需求和数据特点进行灵活运用和扩展。

十二、参考文献

[1] 《SQL Server 从入门到精通》
[2] Microsoft SQL Server 官方文档
[3] 相关的数据库技术博客和论坛

以上内容仅供参考,你可以根据实际情况进行调整和补充。在实际使用 SQL Server 时,建议结合具体的业务需求和数据库环境进行操作。

http://www.whsansanxincailiao.cn/news/30242820.html

相关文章:

  • 虚拟主机网站建设步骤?/网络营销策划书8000字
  • 六安市住房和城乡建设委员会网站/长尾词挖掘工具爱站网
  • 做视频赚钱的网站/seo排名公司
  • 微信h5的制作方法/百度seo关键词优化推荐
  • 空间坐标系做图网站/关键词都有哪些
  • 一个域名建多个网站/百度搜索引擎广告位的投放
  • wordpress crm 插件/怎样优化网站
  • 苗木 网站模板/鸿星尔克网络营销
  • 网站提交入口/黑帽友情链接
  • b2b2c的网站/怎么优化网站关键词排名
  • 做网站系统如何保证自己的版权/传统营销与网络营销的区别
  • 铜川公司做网站/厂房网络推广平台
  • wordpress follow/江西seo推广
  • 网站后台如何做下载连接/学历提升哪个教育机构好一些
  • 找人做网站 源码被盗用/电商网络营销
  • 易站通这个网站怎么做/苏州百度搜索排名优化
  • 怎样写精品课程网站建设/百度识图查图片
  • 网站营销力/百度竞价推广账户优化
  • 菏泽住房和城乡建设部网站/重庆电子商务网站seo
  • 如何提高网站的用户粘度/权威发布
  • 广东seo网站推广代运营/教育机构培训
  • 中国建设信用卡网站/搜狗网址导航
  • 广告位网站建设/google搜索关键词热度
  • 做网站app怎么赚钱吗/竞价推广营销
  • 保山网站制作/头条站长平台
  • 制作一个网站的费用是多少钱/上海网站制作
  • 企业网站建设意义/外贸网站建设平台
  • 免登录直接玩的游戏/青岛seo优化
  • 百度seo站长/国家职业技能培训平台
  • 公司改名网站备案/北京网站推广营销策划