SQL 是一种结构化查询语言,它是一种用于存储、操作和检索存储在关系数据库中的数据的计算机语言。 SQL 是最强大的数据处理工具。可操作的建议可帮助您获得最通用的语言并创建美观、有效的查询。 SQL 有效地用于插入、搜索、更新、删除、修改数据库记录。这并不意味着 SQL 不能做除此之外的事情。它还可以做更多其他事情。在 SQL 中,数据以关系的形式存储。这种关系理论是由博伊斯和钱伯林提出的。第一家发布和修改 SQL 版本的公司是关系软件,它被称为 Oracle V2。 SQL 于 1986 年成为美国国家标准协会 (ANSI) 的标准,并于 1987 年成为国际标准化组织 (ISO) 的标准。
让我们借助示例来理解。
示例-1:
用于为个人信息创建 CUSTOMERS 表的 SQL 查询如下。
CREATE TABLE CUSTOMERS (
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
ORDERS VARCHAR (155)
);
示例 2 :
用于创建 CUSTOMERS 表的 SQL 查询如下。
CREATE TABLE CUSTOMERS (
CUS_ID INT NOT NULL,
CUST_NAME VARCHAR(20) NOT NULL,
DOB DATE,
STREET VARCHAR (200),
CITY VARCHAR (100),
STATE VARCHAR (100),
EMAIL_ID VARCHAR (256),
PRIMARY KEY ( CUST_ID)
);
SQL 查询中生产数据库的用途:
1. 业务要求——
识别利益相关者,关注业务成果,讨论最佳需求,提出重要问题和具体要求,并与利益相关者确认。
2. 选择字段 –
使用 SELECT 语句将使数据库只查询满足业务需求所需的数据。让我们借助示例来理解。例如 –
低效——
SELECT * FROM Customers
高效的 –
SELECT FirstName, Last name, Address,City,State,Zip
FROM Customers
3. 避免 SELECT DISTINCT –
SELECT DISTINCT 是一种从查询中删除重复项的方法。 SELECT DISTINCT 通过对查询中的所有字段进行分组来工作。
低效且不准确——
SELECT DISTINCT FirstName, Last name, State
FROM Customers
高效准确——
SELECT FirstName, LastName, Address, City, State, Zip
FROM Customers
4.加入(不是WHERE)——
SELECT Customers.CustomerID, Customers. Name, Sales. Last Sale.Date FROM Customers, Sales
WHERE Customers.CustomerID = Sales.customerID
这种类型的联接创建笛卡尔联接,也称为笛卡尔积或交叉联接
内部联接 –
SELECT Customers.CustomerID, Customers.Name , Sales.Last SaleDate
from Customers
INNER JOIN Sales ON customers.CustomerID =
Sales.CustomerID
DBMS 系统能够识别 WHERE 连接并自动将它们作为 INNER 连接运行。
5. 使用 where 而不是必须定义过滤器 –
高效 SQL 查询的目标必须有助于仅从数据库中获取所需的记录。例如,假设 2017 年有 300 次销售,我们要查询 2017 年每个客户的销售数量。
SELECT Customers.customerID,Customers.Name,Count (sales.saleID)
FROM Customers
INNER JOIN Sales
ON Customers.CustomerID = Sales.CustomerID
GROUP BY Customers.CustomerID,Customers.Name
HAVING Sales.Last SaleDate
BETWEEN
#1/1/2017# AND #12/31/2017#
6.最后使用通配符——
使用通配符,尤其是与结束通配符结合使用时,数据库的任务是搜索所有记录以查找所选字段内任何位置的匹配项。
SELECT City FROM Customers
WHERE city LIKE '%char%'
7. 在非高峰时段运行您的查询 –
提高性能并避免任何仅由于其他活动(例如更新、修补、错误修复脚本和其他脚本等必须在非高峰时间运行)引起的生产负载始终是一个好主意。
以下条件您的查询如下。
- 从大表中选择
- 笛卡尔连接
- 循环语句
- 嵌套子查询。
特征 :
- 高性能——
SQL 提供了高性能的编程能力、繁重的工作量和高使用率的数据库系统。它提供了多种方式来更多地描述数据。 - 高可用性 –
兼容MS Access、Microsoft SQL Server、MY SQL、Oracle数据库等数据库,关系型数据库管理支持SQL。为过程编程创建应用程序扩展很容易。 - 可扩展性和灵活性——
创建新表非常容易,并且可以在数据库中删除或删除以前创建或未使用的表。 - 高安全性——
提供对表、过程和视图的权限很容易,因此它为您的数据提供了安全性。
结论 :
设计具有可重用查询的对象。其他对象可以引用可以节省我们的开发时间。我们将需要重新开发参考对象。当我们进行更改时,它会跟踪从注释到元数据的引用,然后引入很少的问题。在某些情况下,由于查询是临时的或易于开发,因此可能不需要参考。