Di sini kita membuat tiga tabel di SQL Server, lalu menganalisis skrip yang membuatnya. Kami juga menjalankan skrip lain untuk memverifikasi bahwa tabel telah dibuat.
Sebelumnya kita membuat database dari sebuah script. Namun, database adalah database kosong — tidak berisi tabel atau data.
Sekarang kita akan membuat beberapa tabel untuk database kita.
Pertama, sebagai penyegaran, inilah yang telah kami lakukan sejauh ini:
CREATE DATABASE Music;
Itu membuat database kosong. Jika Anda belum melakukannya, jalankan skrip tersebut.
Sekarang jalankan skrip berikut:
USE Music; CREATE TABLE Artists ( ArtistId int IDENTITY(1,1) NOT NULL PRIMARY KEY, ArtistName nvarchar(255) NOT NULL, ActiveFrom date ); GO CREATE TABLE Genres ( GenreId int IDENTITY(1,1) NOT NULL PRIMARY KEY, Genre nvarchar(50) NOT NULL ); CREATE TABLE Albums ( AlbumId int IDENTITY(1,1) NOT NULL PRIMARY KEY, AlbumName nvarchar(255) NOT NULL, ReleaseDate date NOT NULL, ArtistId int NOT NULL, GenreId int NOT NULL CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId) REFERENCES dbo.Artists (ArtistId) ON DELETE NO ACTION ON UPDATE NO ACTION );
Script itu menambahkan tiga tabel ke database. Tabelnya disebut Artists
, Genres
, dan Albums
.
Inilah hasilnya di SQL Operations Studio/Azure Data Studio:
Alat GUI apa pun akan menampilkan tabel dengan cara yang hampir sama. Setiap tabel dapat diperluas untuk menampilkan kolomnya, serta indeks, pemicu, kunci, dll. Anda juga dapat memperluas Kolom node untuk menampilkan daftar kolom dan tipe datanya, serta batasan apa pun yang telah ditentukan.
Penjelasan dari CREATE TABLE
Pernyataan
Script yang baru saja kita jalankan terdiri dari tiga CREATE TABLE
pernyataan — masing-masing membuat tabel yang berbeda. Script juga menambahkan batasan kunci asing, tetapi kita akan melihatnya nanti.
Untuk saat ini, mari kita analisis CREATE TABLE
pertama pernyataan dalam skrip kami:
USE Music; CREATE TABLE Artists ( ArtistId int IDENTITY(1,1) NOT NULL PRIMARY KEY, ArtistName nvarchar(255) NOT NULL, ActiveFrom date ); GO
Pernyataan SQL ini membuat tabel yang disebut Artists
dengan tiga kolom, disebut ArtistId
, ArtistName
, dan ActiveFrom
. Definisi setiap kolom dimulai dengan namanya, diikuti dengan tipe datanya dan batasan apa pun yang akan diterapkan ke kolom tersebut.
Berikut deskripsi "baris demi baris" yang lebih detail:
USE Music;
- Bagian ini sebenarnya bukan bagian dari
CREATE TABLE
penyataan. Itu hanya untuk beralih ke Musik basis data. Mungkin ada banyak database di server dan kami ingin memastikan bahwa kami membuat tabel di database yang benar. Anda tidak memerlukan baris ini jika Anda sudah bekerja di database yang benar. CREATE TABLE Artists (
- Ini adalah awal dari
CREATE TABLE
penyataan. Diikuti dengan nama tabel (dalam hal iniArtists
), diikuti oleh tanda kurung pertama yang menyertakan definisi tabel. ArtistId int IDENTITY(1,1) NOT NULL PRIMARY KEY,
- Kami kemudian mendefinisikan kolom pertama. Dalam hal ini kami menyebutnya
ArtistId
, tentukan tipe datanya sebagai bilangan bulat (int
), tetapkan sebagai kolom indentitas (kolom ini akan memberikan ID unik untuk tabel, dan nilainya akan bertambah dengan setiap baris ditambahkan),(1,1)
artinya nilai dimulai dari 1 dan bertambah 1,NOT NULL
berarti bidang tidak boleh berisi nilai nol, danPRIMARY KEY
menetapkan kolom ini sebagai kunci utama untuk tabel. kunci utama adalah kolom yang telah dikonfigurasi sebagai bidang pengenal unik untuk tabel. ArtistName nvarchar(255) NOT NULL,
- Kolom berikutnya bernama
ArtistName
dan tipe datanya adalahnvarchar(255)
, yang berarti menerima data string Unicode dengan panjang variabel, dengan panjang maksimum 255 karakter. Kami juga menyetel kolom ini keNOT NULL
sehingga tidak dapat berisi entri nol. ActiveFrom date
- Kolom terakhir disebut
ActiveFrom
dan kami menyetelnya untuk menerima tipe datadate
);
- Kami kemudian menggunakan
)
untuk menutup definisi, dan;
untuk mengakhiri pernyataan (titik koma adalah terminator pernyataan). GO
- Menandakan akhir dari sekumpulan pernyataan Transact-SQL. Ini sebenarnya bukan pernyataan Transact-SQL. Ini adalah perintah yang dikenali oleh sqlcmd dan utilitas osql dan SQL Server Management Studio Code Editor untuk menandakan akhir dari sekumpulan pernyataan Transact-SQL.
Cara Mengambil Informasi Tabel Saat menggunakan Alat Baris Perintah
Saat menggunakan alat baris perintah, Anda tidak memiliki kemewahan melihat tabel database Anda duduk di panel samping menunggu untuk diperluas dengan satu klik. Namun bukan berarti Anda tidak dapat melihat informasi tentang tabel atau objek database lainnya.
Saat menggunakan alat baris perintah, Anda dapat menjalankan pernyataan berikut untuk menampilkan informasi tentang tabel dalam database di atas:
USE Music; SELECT column_name, data_type, character_maximum_length, is_nullable FROM information_schema.columns;Hasil
column_name data_type character_maximum_length is_nullable ----------- --------- ------------------------ ----------- ArtistId int null NO ArtistName nvarchar 255 NO ActiveFrom date null YES GenreId int null NO Genre nvarchar 50 NO AlbumId int null NO AlbumName nvarchar 255 NO ReleaseDate date null NO ArtistId int null NO GenreId int null NO 10 row(s) returned Executed in 1 ms
Tabel yang dimaksud ada di database bernama Musik jadi itu sebabnya kami beralih ke itu terlebih dahulu.
Anda juga dapat mempersempitnya ke tabel tertentu dengan menggunakan WHERE
klausa:
USE Music; SELECT column_name, data_type, character_maximum_length, is_nullable FROM information_schema.columns WHERE table_name = 'Artists';Hasil
column_name data_type character_maximum_length is_nullable ----------- --------- ------------------------ ----------- ArtistId int null NO ArtistName nvarchar 255 NO ActiveFrom date null YES 3 row(s) returned Executed in 1 ms
Masih banyak lagi kolom yang bisa dikembalikan oleh information_schema.columns
. Anda dapat menggunakan SELECT *
untuk mengembalikan semuanya jika Anda mau.
Metode baris perintah untuk mengambil informasi tabel juga berfungsi saat menggunakan alat GUI (bagaimanapun juga, itu hanya pernyataan SQL). Anda dapat memasukkan pernyataan SQL yang sama untuk mengambil data yang sama apakah Anda menggunakan sql-cli, sqlcmd, SSMS, Azure Data Studio, DBeaver, atau alat manajemen SQL Server lainnya:
GO
Perintah
Anda mungkin perlu menambahkan GO
ke akhir skrip (saat menggunakan sqlcmd misalnya).
Beberapa Baris
Anda mungkin menemukan kesalahan jika Anda mencoba menyebarkan skrip di atas ke beberapa baris dengan alat baris perintah.
Jika demikian, coba tambahkan garis miring terbalik di akhir setiap baris. Seperti ini:
USE Music; \ SELECT column_name, data_type, character_maximum_length, is_nullable \ FROM information_schema.columns;
Jika Anda tidak menyukai gagasan untuk menambahkan garis miring terbalik, opsi lain adalah menyimpan skrip multi-baris ke dalam file .sql, lalu jalankan dari prompt perintah.
Metode untuk menjalankan skrip dari prompt perintah akan bergantung pada utilitas baris perintah yang Anda gunakan.
Berikut cara menggunakan sqlcmd untuk menjalankan file yang disimpan di mesin Windows:
sqlcmd -S myServer\instanceName -i C:\myScript.sql
Dan berikut ini cara menggunakan sql-cli untuk menjalankan file yang disimpan di Mac:
.run /myScript.sql
Jelas, path lengkap dan nama file akan tergantung pada nama file Anda dan di mana Anda menyimpannya.