Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Buat Tabel di SQL Server 2017

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 ini Artists ), 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, dan PRIMARY 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 adalah nvarchar(255) , yang berarti menerima data string Unicode dengan panjang variabel, dengan panjang maksimum 255 karakter. Kami juga menyetel kolom ini ke NOT NULL sehingga tidak dapat berisi entri nol.
ActiveFrom date
Kolom terakhir disebut ActiveFrom dan kami menyetelnya untuk menerima tipe data date
);
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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mencadangkan Database SQL Server menggunakan T-SQL

  2. 3 Pertanyaan Pemantauan SQL Server untuk Ditanyakan Saat Mengambil alih Posisi DBA

  3. SQL Server membagi CSV menjadi beberapa baris

  4. Membuat Gambar Docker SQL Server khusus di atas Gambar Resmi

  5. Mana yang lebih berkinerja, CTE atau tabel sementara?