SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

SQLite Tạo chế độ xem

Tóm tắt :trong hướng dẫn này, bạn sẽ học cách sử dụng CREATE VIEW của SQLite để tạo một dạng xem mới trong cơ sở dữ liệu.

Chế độ xem là gì

Trong lý thuyết cơ sở dữ liệu, một khung nhìn là một tập hợp kết quả của một truy vấn được lưu trữ. Dạng xem là cách để đóng gói truy vấn vào một đối tượng được đặt tên được lưu trữ trong cơ sở dữ liệu.

Bạn có thể truy cập dữ liệu của các bảng bên dưới thông qua một dạng xem. Các bảng mà truy vấn trong định nghĩa dạng xem đề cập đến được gọi là bảng cơ sở.

Một chế độ xem hữu ích trong một số trường hợp:

  • Đầu tiên, các khung nhìn cung cấp một lớp trừu tượng trên các bảng. Bạn có thể thêm và xóa các cột trong chế độ xem mà không cần chạm vào giản đồ của các bảng bên dưới.
  • Thứ hai, bạn có thể sử dụng các chế độ xem để đóng gói các truy vấn phức tạp bằng các phép nối nhằm đơn giản hóa việc truy cập dữ liệu.

Chế độ xem SQLite chỉ được đọc. Nó có nghĩa là bạn không thể sử dụng INSERT , DELETEUPDATE để cập nhật dữ liệu trong bảng cơ sở thông qua dạng xem.

SQLite CREATE VIEW tuyên bố

Để tạo chế độ xem, bạn sử dụng CREATE VIEW tuyên bố như sau:

CREATE [TEMP] VIEW [IF NOT EXISTS] view_name[(column-name-list)]
AS 
   select-statement;Code language: SQL (Structured Query Language) (sql)

Đầu tiên, chỉ định tên cho chế độ xem. IF NOT EXISTS tùy chọn chỉ tạo một chế độ xem mới nếu nó không tồn tại. Nếu chế độ xem đã tồn tại, nó không có tác dụng gì.

Thứ hai, sử dụng TEMP hoặc TEMPORARY nếu bạn muốn chế độ xem chỉ hiển thị trong kết nối cơ sở dữ liệu hiện tại. Dạng xem được gọi là dạng xem tạm thời và SQLite tự động loại bỏ dạng xem tạm thời bất cứ khi nào kết nối cơ sở dữ liệu bị đóng.

Thứ ba, chỉ định một SELECT tuyên bố cho chế độ xem. Theo mặc định, các cột của chế độ xem bắt nguồn từ tập kết quả của SELECT tuyên bố. Tuy nhiên, bạn có thể gán tên của các cột dạng xem khác với tên cột của bảng

SQLite CREATE VIEW ví dụ

Hãy lấy một số ví dụ về cách tạo chế độ xem mới bằng cách sử dụng CREATE VIEW tuyên bố.

1) Tạo một dạng xem để đơn giản hóa một truy vấn phức tạp

Truy vấn sau đây lấy dữ liệu từ tracks , albums , media_typesgenres bảng trong cơ sở dữ liệu mẫu sử dụng mệnh đề nối bên trong.

SELECT
   trackid,
   tracks.name,
   albums.Title AS album,
   media_types.Name AS media,
   genres.Name AS genres
FROM
   tracks
INNER JOIN albums ON Albums.AlbumId = tracks.AlbumId
INNER JOIN media_types ON media_types.MediaTypeId = tracks.MediaTypeId
INNER JOIN genres ON genres.GenreId = tracks.GenreId;Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Để tạo một dạng xem dựa trên truy vấn này, bạn sử dụng câu lệnh sau:

CREATE VIEW v_tracks 
AS 
SELECT
	trackid,
	tracks.name,
	albums.Title AS album,
	media_types.Name AS media,
	genres.Name AS genres
FROM
	tracks
INNER JOIN albums ON Albums.AlbumId = tracks.AlbumId
INNER JOIN media_types ON media_types.MediaTypeId = tracks.MediaTypeId
INNER JOIN genres ON genres.GenreId = tracks.GenreId;Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

Từ bây giờ, bạn có thể sử dụng truy vấn đơn giản sau thay vì truy vấn phức tạp ở trên.

SELECT * FROM v_tracks;Code language: SQL (Structured Query Language) (sql)

Hãy thử nó

2) Tạo chế độ xem với tên cột tùy chỉnh

Câu lệnh sau tạo một dạng xem có tên v_albums chứa tiêu đề anbom và thời lượng của anbom tính bằng phút:

CREATE VIEW v_albums (
    AlbumTitle,
    Minutes
)
AS
    SELECT albums.title,
           SUM(milliseconds) / 60000
      FROM tracks
           INNER JOIN
           albums USING (
               AlbumId
           )
     GROUP BY AlbumTitle;
Code language: SQL (Structured Query Language) (sql)

Trong ví dụ này, chúng tôi đã chỉ định các cột mới cho chế độ xem AlbumTitle cho albums.title cột và Phút cho biểu thức SUM(milliseconds) / 60000

Truy vấn này trả về dữ liệu từ v_albums xem:

SELECT * FROM v_albums;Code language: SQL (Structured Query Language) (sql)

Trong hướng dẫn này, bạn đã học về các dạng xem cơ sở dữ liệu và cách sử dụng CREATE VIEW để tạo các dạng xem mới trong SQLite.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ứng dụng bị treo khi cài đặt với lỗi sqlite3_exec - Không đặt được chế độ đồng bộ =1 (Bình thường)

  2. Khi nào tôi nên đóng DatabaseHelper?

  3. Làm thế nào để truy cập dữ liệu / thư mục dữ liệu trong thiết bị Android?

  4. Nhận ngày thứ Hai đầu tiên của năm trong SQLite

  5. Lấy Ngày / Giờ từ Dấu thời gian Unix trong SQLite