You are on page 1of 5

What's in the database?

Database client
Cuối cùng bạn đã được cấp quyền truy cập vào cơ sở dữ liệu của công ty bạn. Đúng! nhưng bạn bắt
đầu từ đâu?
Các bảng là gì?
Chúng có liên quan với nhau như thế nào?
Những cột nào tồn tại trong các bảng?

Máy khách cơ sở dữ liệu là một chương trình được sử dụng để kết nối và làm việc với cơ sở dữ liệu.
Có nhiều khách hàng cơ sở dữ liệu khác nhau. Mỗi cái có một cách khác nhau để truy xuất thông tin về tên
bảng, các cột trong mỗi bảng và mối quan hệ hình thức giữa các bảng. Tham khảo tài liệu của chương
trình máy khách của bạn để tìm các lệnh trích xuất thông tin này.
Entity relationship diagram / Sơ đồ ER/
Bạn cũng có thể được cung cấp thông tin về cấu trúc của cơ sở dữ liệu từ chủ sở hữu hoặc người tạo
cơ sở dữ liệu.
Một loại tài liệu là sơ đồ mối quan hệ thực thể hiển thị các bảng, các cột của chúng và mối quan hệ
giữa các bảng.
Đây là sơ đồ mối quan hệ thực thể cho cơ sở dữ liệu cho khóa học này. Có sáu bảng

Bảng evanston311 chứa các yêu cầu trợ giúp được gửi đến thành phố Evanston, Illinois.
Fortune500 chứa thông tin về 500 công ty lớn nhất Hoa Kỳ tính theo doanh thu từ năm 2017.
stackoverflow chứa dữ liệu từ trang web hỏi đáp lập trình phổ biến. Nó bao gồm số lượng câu hỏi hàng
ngày được gắn thẻ là có liên quan đến các công ty công nghệ được chọn.
company, tag_company và tag_type là các bảng hỗ trợ với thông tin bổ sung liên quan đến dữ liệu
stackoverflow.
The keys to the database
The keys to the database
Giai đoạn thứ hai của việc khám phá cơ sở dữ liệu là tìm hiểu các mối quan hệ chính thức hoặc các
liên kết giữa các bảng.
Những mối quan hệ rõ ràng này là một trong những lợi ích của việc có dữ liệu của bạn trong cơ sở dữ
liệu thay vì trong một tập hợp các tệp dữ liệu riêng lẻ.

Foreign keys

Khóa ngoại là cách chính thức để các bảng cơ sở dữ liệu được liên kết với nhau. Trong ví dụ này, cột
Actor_id trong bảng film_actor là khóa ngoại tham chiếu đến cột id của bảng diễn viên.
Khóa ngoại là một cột tham chiếu đến một hàng cụ thể trong cơ sở dữ liệu. Hàng được tham chiếu
thường nằm trong một bảng khác, nhưng khóa ngoại cũng có thể tham chiếu các hàng trong cùng một
bảng.
Khóa ngoại tham chiếu các hàng khác bằng mã định danh duy nhất cho hàng đó. ID duy nhất thường
đến từ cột khóa chính trong bảng được tham chiếu.
Khóa chính là các cột được chỉ định đặc biệt trong đó mỗi hàng có một giá trị duy nhất, không rỗng.
Các cột khóa ngoài bị hạn chế chứa giá trị trong cột được tham chiếu hoặc null. Nếu giá trị là null, điều
đó cho thấy rằng không có mối quan hệ nào cho hàng đó
ER diagram

Hãy xem sơ đồ mối quan hệ thực thể cho cơ sở dữ liệu của chúng tôi.
Trong sơ đồ, các khóa ngoại được chỉ định bằng các mũi tên giữa các bảng.
Giá trị trước dấu hai chấm là tên của cột trong bảng mà mũi tên bắt nguồn. Giá trị sau dấu hai chấm là
tên của cột được tham chiếu trong bảng mà mũi tên đang trỏ tới. Vì vậy cột company_id trong bảng
tag_company đề cập đến cột id trong bảng công ty.
Khi một mũi tên chỉ từ và tới cùng một bảng, đây là một tham chiếu tự. parent_id trong bảng công ty
tham chiếu đến cột id trong cùng bảng.
Lưu ý rằng không có khóa ngoại nào liên kết bảng công ty với bảng Fortune500. Nhưng điều này
không ngăn cản chúng ta tham gia các bảng này. Cả hai bảng đều có các cột đánh dấu với các giá trị
tương đương có thể được sử dụng để nối các bảng.
Việc thiếu mối quan hệ khóa ngoại chỉ có nghĩa là các giá trị trong các cột đánh dấu không bị giới
hạn ở tập hợp các giá trị trong bảng khác.

Primary Keys
Sơ đồ cũng cho thấy cột nào là khóa chính. Các khóa chính có đường viền xung quanh chúng ở đầu
mỗi danh sách cột. Khóa chính xác định duy nhất các hàng trong bảng.
Coalesce function

COALESCE() lấy hai hoặc nhiều giá trị hoặc tên cột làm đối số. Ba dấu chấm trong ngoặc vuông ở đây
biểu thị rằng các giá trị bổ sung có thể được cung cấp làm đầu vào.
Hàm kết hợp hoạt động theo hàng trên đầu vào. Nó trả về giá trị không NULL đầu tiên trong mỗi hàng,
kiểm tra các cột theo thứ tự chúng được cung cấp cho hàm.
Column types and constraints
/Các loại trường và ràng buộc/
Column constraints
Khóa ngoại và khóa chính là hai loại ràng buộc giới hạn các giá trị trong một cột, nhưng các cột cũng có thể
bị ràng buộc theo những cách khác.
Duy nhất có nghĩa là mỗi giá trị ngoại trừ NULL phải khác với các giá trị trong tất cả các hàng khác. Không
phải NULL có nghĩa là những gì nó nói - cột không thể chứa giá trị null.
Ràng buộc kiểm tra là một cách triển khai các điều kiện bổ sung trên các giá trị của một cột, chẳng hạn như
yêu cầu cột chỉ chứa các giá trị dương hoặc đảm bảo rằng giá trị của một cột lớn hơn giá trị của cột khác.

Data types
Các ràng buộc có thể giới hạn các giá trị trong một cột, nhưng điều chính quyết định giá trị nào
được phép là loại của cột. Mỗi cột trong cơ sở dữ liệu chỉ có thể lưu trữ một loại dữ liệu. Trong khóa học
này, chúng ta đang nói về ba loại dữ liệu phổ biến nhất: số, ký tự và ngày/giờ. Ba loại này, cùng với
boolean - chứa giá trị đúng hoặc sai - là những loại phổ biến nhất mà bạn gặp phải, nhưng chúng không
phải là những loại duy nhất. Ngoài ra còn có các kiểu dữ liệu đặc biệt để lưu giữ các giá trị tiền tệ, dữ liệu
hình học như điểm hoặc đường và các kiểu dữ liệu có cấu trúc như XML và JSON. Các loại đặc biệt này
khác nhau nhiều hơn trong quá trình triển khai cơ sở dữ liệu so với bốn loại phổ biến.

Numeric types: PostgreSQL documentation


Trong các danh mục rộng rãi về dữ liệu số, ký tự hoặc ngày/giờ, có nhiều loại cột với các chi tiết
khác nhau. Ví dụ: các loại số khác nhau yêu cầu lượng bộ nhớ khác nhau trên mỗi hàng và có thể lưu trữ
các phạm vi giá trị khác nhau. Trong các chương tiếp theo, chúng ta sẽ nói nhiều hơn về những loại cụ thể
này, do đó, không cần phải lo lắng về chi tiết tại thời điểm này.
Types in entity relationship diagrams
Bạn có thể tìm thấy loại của từng cột trong sơ đồ mối quan hệ thực thể. Đây là bảng Fortune500.
Có ba loại dữ liệu số khác nhau được sử dụng trong bảng: số nguyên, số thực và số. Ngay cả khi bạn
không có sơ đồ mối quan hệ thực thể thì loại cột vẫn là phần thông tin cốt lõi mà bạn có thể mong đợi tìm
thấy trong các loại tài liệu khác.
Casting with CAST()
Các giá trị có thể được chuyển đổi tạm thời từ loại này sang loại khác thông qua một quá trình gọi
là truyền. Khi bạn truyền một cột thành một loại khác, dữ liệu sẽ chỉ được chuyển đổi sang loại mới cho
truy vấn hiện tại. Để thay đổi loại giá trị, trước tiên hãy sử dụng hàm truyền, chỉ định giá trị bạn muốn
truyền. Đây có thể là một giá trị hoặc tên của một cột. Sau đó sử dụng từ khóa AS. Cuối cùng, chỉ định tên
loại bạn muốn chuyển đổi dữ liệu. Đây là ví dụ về việc truyền giá trị số đơn 3-điểm-7 thành số nguyên.
Truyền từ số sang số nguyên làm tròn giá trị thành số nguyên gần nhất, là 4. Để chuyển đổi loại của toàn
bộ cột, hãy nhập tên của cột làm giá trị. Ở đây, một cột có tên tổng được chuyển thành kiểu số nguyên.
Chúng ta cần mệnh đề from để xác định cột đó đến từ bảng nào.
Casting with ::
Có một ký hiệu thay thế để truyền giá trị: dấu hai chấm kép. Nó thực hiện chức năng tương tự
như chức năng truyền nhưng nhỏ gọn hơn. Đặt giá trị cần chuyển đổi trước dấu hai chấm kép và loại để
truyền giá trị đó sau dấu hai chấm kép. Các ví dụ ở đây cũng giống như các ví dụ trên trang trình bày
trước, ngoại trừ ký hiệu hai dấu hai chấm thay vì hàm ép kiểu.

You might also like