Tạo cơ sở dữ liệu và bảng trong SQL

Tạo cơ sở dữ liệu

Bạn đã sẵn sàng để bắt đầu tạo cơ sở dữ liệu và bảng với ngôn ngữ truy vấn có cấu trúc ? Trong bài viết này, chúng tôi khám phá quá trình tạo bảng theo cách thủ công với các lệnh CREATE DATABASE và CREATE TABLE. Nếu bạn mới sử dụng SQL, bạn có thể xem lại bài viết Cơ bản về SQL của chúng tôi trước tiên.

Yêu cầu kinh doanh

Trước khi chúng tôi ngồi xuống bàn phím, chúng tôi cần đảm bảo rằng chúng tôi hiểu rõ các yêu cầu của khách hàng. Cách tốt nhất để có được cái nhìn sâu sắc này là gì? Nói chuyện với khách hàng, tất nhiên! Sau khi ngồi xuống với Giám đốc Nhân sự của XYZ, chúng tôi đã biết rằng họ là một công ty bán hàng phụ tùng và chủ yếu quan tâm đến việc theo dõi thông tin về nhân viên bán hàng của họ.

Tập đoàn XYZ phân chia lực lượng bán hàng của họ thành các khu vực phía đông và phía tây, mỗi khu vực được chia thành nhiều lãnh thổ được bao gồm bởi các đại diện bán hàng cá nhân. Bộ phận nhân sự muốn theo dõi lãnh thổ được bao trả bởi mỗi nhân viên cũng như thông tin lương và thông tin lương của từng nhân viên. Để đáp ứng các yêu cầu này, chúng tôi đã thiết kế một cơ sở dữ liệu gồm ba bảng, được hiển thị trong biểu đồ Quan hệ thực thể trên trang này.

Chọn một nền tảng cơ sở dữ liệu

Chúng tôi đã quyết định sử dụng một hệ thống quản lý cơ sở dữ liệu (hoặc DBMS) được xây dựng dựa trên Ngôn ngữ truy vấn có cấu trúc (SQL). Do đó, tất cả các lệnh tạo bảng cơ sở dữ liệu và bảng của chúng ta phải được viết bằng tiêu chuẩn ANSI SQL.

Như một lợi ích bổ sung, sử dụng SQL tuân thủ ANSI sẽ đảm bảo rằng các lệnh này sẽ làm việc trên bất kỳ DBMS nào hỗ trợ chuẩn SQL , bao gồm Oracle và Microsoft SQL Server. Nếu bạn chưa chọn nền tảng cho cơ sở dữ liệu của mình, bài viết Tùy chọn phần mềm cơ sở dữ liệu sẽ hướng dẫn bạn qua quá trình lựa chọn.

Tạo cơ sở dữ liệu

Bước đầu tiên của chúng tôi là tạo cơ sở dữ liệu. Nhiều hệ thống quản lý cơ sở dữ liệu cung cấp một loạt các tùy chọn để tùy chỉnh các tham số cơ sở dữ liệu ở bước này, nhưng cơ sở dữ liệu của chúng tôi chỉ cho phép tạo một cơ sở dữ liệu đơn giản. Như với tất cả các lệnh của chúng tôi, bạn có thể tham khảo tài liệu dành cho DBMS của mình để xác định xem có bất kỳ thông số nâng cao nào được hệ thống cụ thể của bạn hỗ trợ đáp ứng nhu cầu của bạn hay không. Hãy sử dụng lệnh CREATE DATABASE để thiết lập cơ sở dữ liệu của chúng ta:

TẠO nhân viên DATABASE

Ghi chú đặc biệt về cách viết hoa được sử dụng trong ví dụ trên. Thực tế phổ biến trong số các lập trình viên SQL sử dụng tất cả các chữ cái viết hoa cho các từ khóa SQL như "CREATE" và "DATABASE" trong khi sử dụng tất cả các chữ thường cho tên người dùng định nghĩa như tên cơ sở dữ liệu "nhân sự". Những quy ước này cung cấp cho dễ đọc.

Tiếp tục đọc hướng dẫn này khi chúng ta tạo các bảng cho cơ sở dữ liệu của chúng ta.

Học nhiều hơn nữa

Nếu bạn muốn tìm hiểu thêm về Ngôn ngữ truy vấn có cấu trúc , hãy đọc Giới thiệu về SQL hoặc đăng ký khóa học e-mail Learning SQL miễn phí của chúng tôi.

Bây giờ chúng ta đã thiết kế và tạo ra cơ sở dữ liệu của mình, chúng ta đã sẵn sàng để bắt đầu tạo ra ba bảng được sử dụng để lưu trữ dữ liệu nhân sự của XYZ Corporation. Chúng tôi sẽ triển khai các bảng mà chúng tôi đã thiết kế trong phần trước của hướng dẫn này.

Tạo bảng đầu tiên của chúng tôi

Bảng đầu tiên của chúng tôi bao gồm các dữ liệu cá nhân cho mỗi nhân viên của công ty chúng tôi. Chúng tôi cần bao gồm tên, lương, ID và người quản lý của từng nhân viên. Đó là thực hành thiết kế tốt để tách các tên cuối cùng và thành các trường riêng biệt để đơn giản hóa việc tìm kiếm và sắp xếp dữ liệu trong tương lai. Ngoài ra, chúng tôi sẽ theo dõi người quản lý của mỗi nhân viên bằng cách chèn một tham chiếu đến ID nhân viên của người quản lý trong mỗi bản ghi nhân viên. Trước tiên hãy xem bảng nhân viên mong muốn.

Thuộc tính ReportsTo lưu trữ ID người quản lý cho mỗi nhân viên. Từ các bản ghi mẫu được hiển thị, chúng tôi có thể xác định rằng Sue Scampi là người quản lý của cả Tom Kendall và John Smith. Tuy nhiên, không có thông tin trong cơ sở dữ liệu trên trình quản lý của Sue, như được chỉ ra bởi mục NULL trong hàng của cô ấy.

Bây giờ chúng ta có thể sử dụng SQL để tạo bảng trong cơ sở dữ liệu nhân sự của chúng ta. Trước khi chúng ta làm như vậy, hãy đảm bảo rằng chúng ta đang ở trong cơ sở dữ liệu chính xác bằng cách phát hành một lệnh USE:

Sử dụng nhân sự;

Ngoài ra, "nhân viên DATABASE"; lệnh sẽ thực hiện chức năng tương tự. Bây giờ chúng ta có thể xem xét lệnh SQL được sử dụng để tạo bảng nhân viên của chúng ta:

TẠO TABLE nhân viên (employeeid INTEGER NOT NULL, họ VARCHAR (25) NOT NULL, firstName VARCHAR (25) NOT NULL, reportsto INTEGER NULL);

Như với ví dụ trên, lưu ý rằng quy ước lập trình quy định rằng chúng tôi sử dụng tất cả các chữ cái viết hoa cho các từ khóa SQL và chữ thường cho các cột và bảng được người dùng đặt tên. Lệnh trên có thể có vẻ khó hiểu lúc đầu, nhưng có một cấu trúc đơn giản đằng sau nó. Dưới đây là chế độ xem tổng quát có thể xóa mọi thứ một chút:

TẠO TÊN table_name (tùy chọn datatype thuộc tính, ..., tùy chọn datatype thuộc tính);

Thuộc tính và kiểu dữ liệu

Trong ví dụ trước, tên bảng là nhân viên và chúng tôi bao gồm bốn thuộc tính: employeeid, lastname, firstname và reportsto. Kiểu dữ liệu cho biết loại thông tin chúng tôi muốn lưu trữ trong mỗi trường. ID nhân viên là một số nguyên đơn giản, vì vậy chúng tôi sẽ sử dụng kiểu dữ liệu INTEGER cho cả trường employeeid và trường reportsto. Tên nhân viên sẽ là các chuỗi ký tự có độ dài thay đổi và chúng tôi không mong đợi bất kỳ nhân viên nào có tên hoặc họ dài hơn 25 ký tự. Do đó, chúng ta sẽ sử dụng kiểu VARCHAR (25) cho các trường này.

Giá trị NULL

Chúng ta cũng có thể chỉ định NULL hoặc NOT NULL trong trường tùy chọn của câu lệnh CREATE. Điều này đơn giản chỉ cho cơ sở dữ liệu biết giá trị NULL (hoặc trống) được phép cho thuộc tính đó khi thêm các hàng vào cơ sở dữ liệu. Trong ví dụ của chúng tôi, bộ phận nhân sự yêu cầu một ID nhân viên và tên đầy đủ được lưu trữ cho mỗi nhân viên. Tuy nhiên, không phải mọi nhân viên đều có một người quản lý - giám đốc điều hành báo cáo cho không ai! - vì vậy chúng tôi cho phép các mục NULL trong trường đó. Lưu ý rằng NULL là giá trị mặc định và bỏ qua tùy chọn này sẽ ngầm cho phép các giá trị NULL cho một thuộc tính.

Xây dựng các bảng còn lại

Bây giờ chúng ta hãy nhìn vào bảng lãnh thổ. Từ một cái nhìn nhanh về dữ liệu này, có vẻ như chúng ta cần lưu trữ một số nguyên và hai chuỗi độ dài biến đổi. Như với ví dụ trước của chúng tôi, chúng tôi không mong đợi ID khu vực sẽ tiêu thụ hơn 25 ký tự. Tuy nhiên, một số lãnh thổ của chúng tôi có tên dài hơn, vì vậy, chúng tôi sẽ mở rộng độ dài cho phép của thuộc tính đó thành 40 ký tự. Hãy xem xét câu lệnh SQL tương ứng:

TẠO TABLE lãnh thổ (lãnh thổ INTEGER NOT NULL, lãnh thổ Mô tả VARCHAR (40) NOT NULL, regionid VARCHAR (25) NOT NULL);

Cuối cùng, chúng tôi sẽ sử dụng bảng EmployeeTerritories để lưu trữ mối quan hệ giữa nhân viên và lãnh thổ. Thông tin chi tiết về từng nhân viên và lãnh thổ được lưu trữ trong hai bảng trước đó của chúng tôi. Vì vậy, chúng tôi chỉ cần lưu trữ hai số nhận dạng nguyên trong bảng này. Nếu chúng ta cần mở rộng thông tin này, chúng ta có thể sử dụng JOIN trong các lệnh lựa chọn dữ liệu của chúng ta để lấy thông tin từ nhiều bảng. Phương pháp lưu trữ dữ liệu này làm giảm sự dư thừa trong cơ sở dữ liệu của chúng tôi và đảm bảo sử dụng tối ưu không gian trên các ổ lưu trữ của chúng tôi. Chúng tôi sẽ trình bày chi tiết lệnh JOIN trong một hướng dẫn trong tương lai. Dưới đây là mã SQL để triển khai bảng cuối cùng của chúng tôi:

TẠO TẠO bảng tính (nhân viên INTEGER NOT NULL, lãnh thổ INTEGER NOT NULL);

Cơ chế SQL cung cấp để thay đổi cấu trúc của một cơ sở dữ liệu sau khi tạo

Nếu bạn đặc biệt sắc sảo ngày hôm nay, bạn có thể nhận thấy rằng chúng tôi "vô tình" bỏ qua một trong các yêu cầu thiết kế khi triển khai các bảng cơ sở dữ liệu của chúng tôi. Giám đốc nhân sự của tập đoàn XYZ yêu cầu rằng cơ sở dữ liệu theo dõi thông tin về lương của nhân viên và chúng tôi đã bỏ qua để cung cấp thông tin này trong các bảng cơ sở dữ liệu mà chúng tôi đã tạo.

Tuy nhiên, tất cả là không bị mất. Chúng ta có thể sử dụng lệnh ALTER TABLE để thêm thuộc tính này vào cơ sở dữ liệu hiện có của chúng ta. Chúng tôi muốn lưu trữ tiền lương như một giá trị số nguyên. Cú pháp này khá giống với cú pháp của lệnh CREATE TABLE, ở đây là:

ALTER TABLE nhân viên ADD lương INTEGER NULL;

Lưu ý rằng chúng tôi đã chỉ định rằng các giá trị NULL được phép cho thuộc tính này. Trong hầu hết các trường hợp, không có tùy chọn khi thêm cột vào bảng hiện có. Điều này là do thực tế rằng bảng đã chứa các hàng không có mục nhập nào cho thuộc tính này. Do đó, DBMS sẽ tự động chèn một giá trị NULL để lấp đầy khoảng trống.

Và điều đó kết thúc tốt đẹp cái nhìn của chúng tôi về cơ sở dữ liệu SQL và quá trình tạo bảng. Thường xuyên kiểm tra các phần mới trong loạt bài hướng dẫn SQL của chúng tôi. Nếu bạn muốn nhận lời nhắc qua email khi các bài viết mới được thêm vào trang Giới thiệu về cơ sở dữ liệu, hãy nhớ đăng ký nhận bản tin của chúng tôi!