2021-01-22

取得SQLite版本的Chinook範例資料庫

下載取得Chinook範例資料庫:
https://github.com/lerocha/chinook-database/blob/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite

簡化資料庫名稱,把Chinook_Sqlite.sqlite 修改為 Chinook.sqlite
開啟SQLite Studio,以SQLite Studio開啟資料庫Chinook.sqlite :
把資料庫檔案拖曳到SQLite Studio的區塊內,放開滑鼠,會開啟Database小視窗,按下OK鈕,就可以成功開啟這個資料庫了。


可以透過SQLite Studio查看Chinook.sqlite的資料表、資料欄位、Primary Key、索引(Index)、資料內容、Constraint(限制條件) ...
將資料庫檔案拖曳到Database區塊內後,Database→Connect to the database


Chinook資料庫內,共包含11個資料表:Album, Artist, Customer, Employee, Genre, Invoice, InvoiceLine, MediaType, Playlist, PlaylistTrack, Track,每個資料表內所包含的資料欄位,說明如下:(以Chinook_sqlite.sql的CREATE TABLE來查看資料表的資料欄位內容)

  • Album :
    CREATE TABLE [Album]
    (
    [AlbumId] INTEGER                 NOT NULL,
    [Title]        NVARCHAR(160)   NOT NULL,
    [ArtistId]   INTEGER                 NOT NULL,
    CONSTRAINT [PK_Album] PRIMARY KEY ([AlbumId]),
    FOREIGN KEY ([ArtistId]) REFERENCES [Artist] ([ArtistId])
                                 ON DELETE NO ACTION ON UPDATE NO ACTION
    );

  • Artist :
    CREATE TABLE [Artist]
    (
    [ArtistId]     INTEGER                NOT NULL,
    [Name]       NVARCHAR(120),
    CONSTRAINT [PK_Artist] PRIMARY KEY ([ArtistId])
    );

  • Customer :
    CREATE TABLE [Customer]
    (
    [CustomerId]         INTEGER               NOT NULL,
    [FirstName]           NVARCHAR(40)    NOT NULL,
    [LastName]           NVARCHAR(20)     NOT NULL,
    [Company]            NVARCHAR(80),
    [Address]               NVARCHAR(70),
    [City]                     NVARCHAR(40),
    [State]                    NVARCHAR(40),
    [Country]               NVARCHAR(40),
    [PostalCode]          NVARCHAR(10),
    [Phone]                  NVARCHAR(24),
    [Fax]                      NVARCHAR(24),
    [Email]                  NVARCHAR(60)     NOT NULL,
    [SupportRepId]     INTEGER,
    CONSTRAINT [PK_Customer] PRIMARY KEY ([CustomerId]),
    FOREIGN KEY ([SupportRepId]) REFERENCES [Employee] ([EmployeeId]) ON DELETE NO ACTION ON UPDATE NO ACTION
    );

  • Employee :
    CREATE TABLE [Employee]
    (
    [EmployeeId]        INTEGER               NOT NULL,
    [LastName]          NVARCHAR(20)    NOT NULL,
    [FirstName]          NVARCHAR(20)    NOT NULL,
    [Title]                   NVARCHAR(30),
    [ReportsTo]          INTEGER,
    [BirthDate]          DATETIME,
    [HireDate]           DATETIME,
    [Address]            NVARCHAR(70),
    [City]                  NVARCHAR(40),
    [State]                 NVARCHAR(40),
    [Country]            NVARCHAR(40),
    [PostalCode]       NVARCHAR(10),
    [Phone]               NVARCHAR(24),
    [Fax]                   NVARCHAR(24),
    [Email]               NVARCHAR(60),
    CONSTRAINT [PK_Employee] PRIMARY KEY ([EmployeeId]),
    FOREIGN KEY ([ReportsTo]) REFERENCES [Employee] ([EmployeeId])
                                ON DELETE NO ACTION ON UPDATE NO ACTION
    );

  • Genre :
    CREATE TABLE [Genre]
    (
    [GenreId]       INTEGER                 NOT NULL,
    [Name]          NVARCHAR(120),
    CONSTRAINT [PK_Genre] PRIMARY KEY ([GenreId])
    );

  • Invoice :
    CREATE TABLE [Invoice]
    (
    [InvoiceId]                   INTEGER                     NOT NULL,
    [CustomerId]               INTEGER                     NOT NULL,
    [InvoiceDate]              DATETIME                  NOT NULL,
    [BillingAddress]          NVARCHAR(70),
    [BillingCity]                NVARCHAR(40),
    [BillingState]               NVARCHAR(40),
    [BillingCountry]          NVARCHAR(40),
    [BillingPostalCode]     NVARCHAR(10),
    [Total]                          NUMERIC(10,2)         NOT NULL,
    CONSTRAINT [PK_Invoice] PRIMARY KEY ([InvoiceId]),
    FOREIGN KEY ([CustomerId]) REFERENCES [Customer] ([CustomerId])
                                  ON DELETE NO ACTION ON UPDATE NO ACTION
    );

  • InvoiceLine :
    CREATE TABLE [InvoiceLine]
    (
    [InvoiceLineId]           INTEGER              NOT NULL,
    [InvoiceId]                  INTEGER              NOT NULL,
    [TrackId]                     INTEGER              NOT NULL,
    [UnitPrice]                  NUMERIC(10,2)    NOT NULL,
    [Quantity]                   INTEGER               NOT NULL,
    CONSTRAINT [PK_InvoiceLine] PRIMARY KEY ([InvoiceLineId]),
    FOREIGN KEY ([InvoiceId]) REFERENCES [Invoice] ([InvoiceId])
                                 ON DELETE NO ACTION ON UPDATE NO ACTION,
    FOREIGN KEY ([TrackId]) REFERENCES [Track] ([TrackId])
                                 ON DELETE NO ACTION ON UPDATE NO ACTION
    );

  • MediaType :
    CREATE TABLE [MediaType]
    (
    [MediaTypeId]      INTEGER                 NOT NULL,
    [Name]                 NVARCHAR(120),
    CONSTRAINT [PK_MediaType] PRIMARY KEY ([MediaTypeId])
    );

  • Playlist :
    CREATE TABLE [Playlist]
    (
    [PlaylistId]            INTEGER                  NOT NULL,
    [Name]                 NVARCHAR(120),
    CONSTRAINT [PK_Playlist] PRIMARY KEY ([PlaylistId])
    );
  • PlaylistTrack :
    CREATE TABLE [PlaylistTrack]
    (
    [PlaylistId]            INTEGER                 NOT NULL,
    [TrackId]               INTEGER                 NOT NULL,
    CONSTRAINT [PK_PlaylistTrack] PRIMARY KEY ([PlaylistId], [TrackId]),
    FOREIGN KEY ([PlaylistId]) REFERENCES [Playlist] ([PlaylistId])
                                ON DELETE NO ACTION ON UPDATE NO ACTION,
    FOREIGN KEY ([TrackId]) REFERENCES [Track] ([TrackId])
                                ON DELETE NO ACTION ON UPDATE NO ACTION
    );
  • Track
    CREATE TABLE [Track]
    (
    [TrackId]               INTEGER                   NOT NULL,
    [Name]                  NVARCHAR(200)     NOT NULL,
    [AlbumId]              INTEGER,
    [MediaTypeId]       INTEGER                 NOT NULL,
    [GenreId]               INTEGER,
    [Composer]           NVARCHAR(220),
    [Milliseconds]       INTEGER                  NOT NULL,
    [Bytes]                  INTEGER,
    [UnitPrice]            NUMERIC(10,2)        NOT NULL,
    CONSTRAINT [PK_Track] PRIMARY KEY ([TrackId]),
    FOREIGN KEY ([AlbumId]) REFERENCES [Album] ([AlbumId])
                                ON DELETE NO ACTION ON UPDATE NO ACTION,
    FOREIGN KEY ([GenreId]) REFERENCES [Genre] ([GenreId])
                                ON DELETE NO ACTION ON UPDATE NO ACTION,
    FOREIGN KEY ([MediaTypeId]) REFERENCES [MediaType] ([MediaTypeId])
                                ON DELETE NO ACTION ON UPDATE NO ACTION
    );