TD SQL入门教程:零基础学会数据库操作 – wiki基地

TD SQL入門教程:零基礎學會資料庫操作

歡迎來到TD SQL入門教程!無論您是資料科學家、開發人員,還是僅僅對資料庫世界感到好奇,本教學都將引導您從零開始,掌握Teradata資料庫的基本操作。SQL(Structured Query Language,結構化查詢語言)是與關係型資料庫溝通的標準語言,而TD SQL則是專為Teradata資料倉儲系統設計的SQL方言。學會TD SQL,您將能夠有效地管理和操作巨量資料。

1. 什麼是SQL?

SQL是一種專門用於管理關係型資料庫的程式語言。它允許您執行多種操作,例如建立資料庫物件(如資料表)、插入、查詢、更新和刪除資料。SQL的重要性在於其標準化和普遍性,幾乎所有的關係型資料庫系統都支援SQL。

2. TD SQL基礎

Teradata是一個強大的並行處理(MPP)資料倉儲系統,它使用TD SQL作為其主要的查詢語言。TD SQL在標準SQL的基礎上,針對Teradata的架構和效能進行了優化,但其基本語法和概念與標準SQL保持一致,這使得學習TD SQL對於有SQL基礎的人來說相對容易。

在TD SQL中,資料庫操作主要分為兩大類:

  • 資料定義語言 (Data Definition Language, DDL):用於定義和管理資料庫物件的結構,如建立、修改、刪除資料表。
  • 資料操作語言 (Data Manipulation Language, DML):用於操作資料庫中的資料,如插入、查詢、更新、刪除資料。

3. 資料定義語言 (DDL) – 建立資料表

資料表是資料庫中儲存資料的基本結構,它由列(columns)和行(rows)組成。使用CREATE TABLE語句可以建立新的資料表。

CREATE TABLE

CREATE TABLE語句用於定義資料表的名稱、每個列的名稱、資料類型以及任何約束。

語法:

sql
CREATE [SET/MULTISET] TABLE table_name (
column1 datatype [constraints],
column2 datatype [constraints],
...
PRIMARY KEY (column1, ...)
);

  • SETMULTISET:指定資料表是否允許重複的行。SET 表不允許重複行,而 MULTISET 表允許。在Teradata中,MULTISET 是預設選項。
  • table_name:您要建立的資料表名稱。
  • columnN:列的名稱。
  • datatype:列將儲存的資料類型(例如,INTEGERVARCHAR(n)DATE)。
  • constraints:應用於列的規則(例如,NOT NULLPRIMARY KEY)。PRIMARY KEY 用於唯一識別資料表中的每一行。

範例:

建立一個名為 Employees 的資料表:

sql
CREATE MULTISET TABLE Employees (
EmployeeID INTEGER NOT NULL,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
DateOfBirth DATE,
DepartmentID INTEGER,
PRIMARY KEY (EmployeeID)
);

這個範例建立了 Employees 資料表,包含五個列。EmployeeID 被設定為主鍵且不能為空。

4. 資料操作語言 (DML) – 資料的增、刪、改、查

一旦資料表建立完成,您就可以使用DML語句來操作其中的資料了。

INSERT (新增資料)

INSERT 語句用於向資料表中新增行(記錄)。

語法:

sql
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

如果您為所有列提供值,並且順序與資料表中列的定義順序一致,則可以省略列名。

範例:

“`sql
— 插入單行資料
INSERT INTO Employees (EmployeeID, FirstName, LastName, DateOfBirth, DepartmentID)
VALUES (101, ‘John’, ‘Doe’, ‘1985-03-15’, 1);

— 如果按順序插入所有列的值,可以省略列名
INSERT INTO Employees
VALUES (102, ‘Jane’, ‘Smith’, ‘1990-07-22’, 2);
“`

SELECT (查詢資料)

SELECT 語句是SQL中最常用的命令,用於從一個或多個資料表中檢索資料。

語法:

sql
SELECT column1, column2, ...
FROM table_name
WHERE condition
ORDER BY column_name [ASC|DESC];

  • SELECT *:檢索資料表中的所有列。
  • FROM table_name:指定要從中檢索資料的資料表。
  • WHERE condition:根據指定條件過濾記錄。
  • ORDER BY column_name:根據一個或多個列對結果集進行排序,ASC(升序)或 DESC(降序)。

範例:

“`sql
— 選擇 Employees 資料表中的所有列和所有行
SELECT *
FROM Employees;

— 選擇 Employees 資料表中的特定列
SELECT EmployeeID, FirstName, LastName
FROM Employees;

— 選擇 DepartmentID 為 1 的員工
SELECT FirstName, LastName
FROM Employees
WHERE DepartmentID = 1;

— 選擇 1988 年後出生,並按姓氏升序排列的員工
SELECT FirstName, LastName, DateOfBirth
FROM Employees
WHERE DateOfBirth > ‘1988-01-01’
ORDER BY LastName ASC;
“`

UPDATE (更新資料)

UPDATE 語句用於修改資料表中現有的記錄。

語法:

sql
UPDATE table_name
SET column1 = new_value1, column2 = new_value2, ...
WHERE condition;

  • SET:指定要更新的列及其新值。
  • WHERE condition:(可選) 指定要更新哪些行。如果省略,資料表中的所有行都將被更新。

範例:

“`sql
— 更新特定員工的部門ID
UPDATE Employees
SET DepartmentID = 3
WHERE EmployeeID = 101;

— 更新員工的多個列
UPDATE Employees
SET DepartmentID = 4, DateOfBirth = ‘1986-06-20’
WHERE EmployeeID = 102;
“`

DELETE (刪除資料)

DELETE 語句用於從資料表中刪除現有的行。

語法:

sql
DELETE FROM table_name
WHERE condition;

  • WHERE condition:(可選) 指定要刪除哪些行。如果省略,資料表中的所有行都將被刪除。

範例:

“`sql
— 刪除特定員工的記錄
DELETE FROM Employees
WHERE EmployeeID = 101;

— 刪除 DepartmentID 為 2 的所有員工
DELETE FROM Employees
WHERE DepartmentID = 2;

— 刪除 Employees 資料表中的所有記錄(資料表結構保留)
— DELETE FROM Employees;
“`

結論

本教程為您提供了TD SQL的入門知識,涵蓋了資料表的建立以及資料的增、刪、改、查等基本操作。掌握這些基礎知識是您進一步學習和使用Teradata資料庫的關鍵。SQL的世界廣闊而深奧,建議您在實踐中不斷探索,學習更進階的SQL功能,如聯結(JOIN)、聚合函數(Aggregate Functions)、子查詢(Subqueries)等,以充分發揮TD SQL在資料管理和分析中的強大能力。

滚动至顶部