BUAT TABEL PERINTAH
Buat Tabel
Mekanika untuk membuat tabel relatif sederhana. Kemampuan untuk merancang dengan baik
basis data yang dipikirkan dengan baik yang akan berkembang untuk memenuhi kebutuhan perusahaan berskala besar adalah sangat
tugas yang menantang. Dalam contoh-contoh ini kita akan bekerja melalui pengembangan yang cukup
database tiga tabel sederhana. Dengan melakukan ini, kita akan mencakup banyak aspek pengembangan
dasar-dasar untuk membuat tabel dan indeks.
Creating the person table
BUAT TABEL orang
(
num INT TIDAK NULL ,
nama_depan VARCHAR(20) NULL
lastname VARCHAR(30) NULL ,
gender_code VARCHAR(1) NULL ,
birth_dttm DATETIME NULL ,
tanggal_tidak_aktif DATETIME NULL ,
KONTROL PK_Person KUNCI UTAMA TERKELASKAN (num ASC)
DI [PRIMER]
)
Membuat tabel telepon
BUAT TABEL telepon
(
person_num INT TIDAK NULL ,
type_code CHAR(3) TIDAK NULL ,
kode_area CHAR(3) NULL ,
exchange CHAR(3) NULL ,
extension CHAR(4) NULL ,
KETERBATASAN PK_phone KUNCI UTAMA TERKELUKE
(person_num ASC, type_code ASC) ON [PRIMARY]
)
Membuat tabel alamat
BUAT TABEL alamat
(
jumlah_orang INT TIDAK NULL,
kode_tipe CHAR(4) TIDAK NULL ,
street1 CHAR(30) NULL ,
street2 CHAR(30) NULL ,
kota CHAR(30) NULL ,
state CHAR(2) NULL ,
kode_pos CHAR(10) NULL ,
KETERANGAN PK_address KUNCI UTAMA TERKELAS
(person_num ASC, type_code ASC) DI [PRIMARY]
)
Pernyataan SQLCREATE TABLE ini mendefinisikan tabel baru untuk menyimpan data produk:
BUAT TABEL PRODUK
(MFR_ID CHAR(3),
PRODUCT_ID CHAR(5),
DESCRIPTION VARCHAR(20),
UANG HADIAH
QTY_ON_HAND INTEGER)
SQL Server - Dasar-Dasar SQLTable - Tipe Data
SQL Server Ketepatan Data
BIT Bilangan bulat: 0 atau 1
TINYINT Bilangan Bulat Positif 0 -> 255
SMALLINT Bilangan Bulat Tanda -32.768 -> 32.767
INT Bilangan Bulat Tanda -2^31 -> 2^31-1
BIGINT Bilangan Bulat Tanda -2^63 -> 2^63-1
NYATA Presisi floating -1.79E + 308 -> 1.79E + 308
FLOAT Presisi floating -3.40E + 38 -> 3.40E + 38
UANG 4 tempat desimal, -2^63/10000 -> 2^63-1/10000
UANG KECIL 4 tempat desimal, -214.748,3648 -> 214.748,3647
DESIMAL Presisi tetap -10^38 + 1 -> 10^38 - 1
NUMERIK Presisi tetap -10^38 + 1 -> 10^38 - 1
TANGGAL WAKTU Tanggal+Waktu 1753-01-01 -> 9999-12-31, akurasi 3,33 ms
SMALLDATETIME Tanggal+Waktu 1900-01-01 -> 2079-06-06, akurasi satu menit
CHARn String non-Unicode panjang tetap hingga 8.000 karakter
NCHARn String Unicode panjang tetap hingga 4.000 karakter
VARCHARn String non-Unicode dengan panjang variabel hingga 8.000 karakter
NVARCHARn String Unicode dengan panjang variabel hingga 4.000 karakter
Teks String non-Unicode dengan panjang variabel hingga [Link] karakter
NTEXT String Unicode dengan panjang variabel hingga [Link] karakter
BINARY Data biner dengan panjang tetap hingga 8.000 karakter
VARBINARY Data biner panjang variabel hingga 8.000 karakter
GAMBAR Data biner dengan panjang variabel hingga [Link] karakter
MASUKKAN PERINTAH UNTUK MEMASUKKAN DATA KE DALAM TABEL
Setelah tabel dibuat, Anda dapat mengisinya dengan data menggunakan perintah INSERT
INSERT INTO PRODUK VALUES ('ACI', '41007', 'Widget Ukuran 7', 225.00, 250);
HAPUS TABEL
HAPUS TABEL PRODUK;
PERBARUI TABEL
PERBARUI PRODUK SET DESKRIPSI='ASDFGFG' DI MANA ID_PRODUK='41007';
HAPUS REKAMAN DARI TABEL
HAPUS DARI PRODUK DI MANA PRODUCT_ID='41007';
UBAH KOLOM DARI SEBUAH TABEL
UBAH TABEL siswa
PERUBAHAN COLUMN rollint TIDAK NULL
ALTER Command FOR ADDING CONSTRAINT
UBAH TABEL MAHASISWA
TAMBAH KETERANGAN pk_roll
utama kunci(gulir);
Perintah ALTER UNTUK MENGHAPUS KETENTUAN
mengubah tabel siswa drop kendala pk_roll;
KUNCI ASING
Sebuah kolom dalam satu tabel yang nilainya cocok dengan kunci utama di tabel lain disebut
kunci asing.
ciptakan tabel marks(rollint,tmarksint,LUAR gulung referensi
siswa(roll));
Di sini siswa adalah tabel induk dan roll adalah kunci utama tabel induk itu.
dirujuk oleh tabel anak marks.
ALTER UNTUK MENAMBAHKAN BATASAN KUNCI LUAR
UBAH TABEL marks2
TAMBAHKAN KONSTRAN fk_r
MENDATANG KEY(roll)
REFERENSI student1(roll);
KUNCI PRIMER KOMPOSIT
BUAT TABLE CategoriesComp (
CategoryIDint TIDAK NULL
KodeKategorichar(5) TIDAK NULL
NamaKategori varchar(50) TIDAK NULL
KEBIJAKAN PK_Kategori
PRIMER KUNCI(CategoryID, CategoryCode));
SISIPKAN KE dalam CategoriesCompVALUES(1, AAA Kucing 1
MASUKKAN KE Dalam KategoriCompNILAI(2, AAA Kucing 4
INSERT KE Dalam CategoriesCompVALUES(2, 'AAA', 'Kucing 3');//gagal
SISIPKAN KE Dalam KategoriCompNILAI(1, BBB Kucing 2
KONSTRAN DEFAULT
buat tabel siswa2(rollint,namachar(15),tmarksint default(0));
masukkan ke siswa2(roll,nama) nilai(1,'Ram');
pilih * dari siswa2;
PEMBATASAN PERIKSA
create tabel mahasiswa3(rollint,namachar(15),tmarksint periksa(tmarks<500));
masukkan masukkeun student3values(1,'Ram',367);
masukkan ke student3values(1,'Ram',602);//gagal
PERNYATAAN PILIH
Pernyataan SQL yang mengambil data dari basis data disebut
PILIH. Pernyataan SQL ini mengambil data yang Anda inginkan:
UNTUK MEMILIH SEMUA KOLAM DARI TABEL "OFFICE"
PILIH *
DARI KANTOR;
UNTUK MEMILIH KOLOM YANG DITENTUKAN DARI TABEL "KANTOR"
SELECT CITY, OFFICE, SALES
DARI KANTOR;
PERNyataan PILIH DENGAN KONDISI
SELECT NAME, SALES, QUOTA
DARI KANTOR
DIMANA PENJUALAN < KUOTA
SELECT CITY, TARGET, SALES
DARI KANTOR
DIMANA REGIO = 'Timur'
DAN PENJUALAN > TARGET
SELECT NAME, SALES
DARI SALESREPS
DI MANA MANAJER = 104
PILIH KOTA, MGR
DARI KANTOR
DIMANA MGR <> 108
KATA KUNCI DISTINKTIF
Anda dapat menghapus baris duplikat dari hasil query dengan memasukkan kata kunci DISTINCT.
theSELECTstatement tepat sebelum daftar pilih.
PILIH MGR YANG BERBEDA
DARI KANTOR;
KLAUSUL ORDER BY UNTUK MENGURUTKAN SESUAI KOLom YANG DIBERIKAN
Anda dapat meminta SQL untuk mengurutkan hasil dari suatu kueri dengan menyertakan klausa ORDER BY dalam SELECT
pernyataan.
URUTAN MENINGKAT
PILIH KOTA, WILAYAH, PENJUALAN
DARI KANTOR
URUTKAN MENURUT WILAYAH, KOTA
CITY REGION PENJUALAN
----------- -------- -----------
Atlanta Timur $367,911.00
Chicago Timur $735.042,00
New York Timur $692,637.00
Denver Barat $186,042.00
Los Angeles Barat $835,915.00
URUTAN MENURUN
PILIH KOTA, WILAYAH, PENJUALAN
DARI KANTOR
URUTKAN MENURUT PENJUALAN DESC
KOTA WILAYAH PENJUALAN
----------- -------- -----------
Los Angeles Barat Rp835.915,00
Chicago Timur $735.042,00
New York Timur $692,637.00
Atlanta Timur $367,911.00
Denver Barat $186,042.00
KLAUSUL ANTARA
SQL menyediakan bentuk kondisi pencarian yang berbeda dengan pengujian rentang menggunakan BETWEEN
PILIH KOTA, NAMA, KUOTA
DARI KANTOR
DIMANA PENJUALAN ANTARA 4095 DAN 12000
PILIH NOMOR_PESANAN, JUMLAH
DARI PESANAN
DIMANA JUMLAH ANTARA 20000,00 DAN 29999,99
Versi yang dinyatakan tidak dari tes rentang (TIDAK ANTARA) memeriksa nilai-nilai yang berada di luar
rentang, seperti dalam contoh ini:
PILIH NOMOR_PESANAN, JUMLAH
DARI PESANAN
DI MANA JUMLAH TIDAK ANTARA 20000,00 DAN 29999,99
DALAM KLAUSUL
Kondisi pencarian umum lainnya adalah pengujian keanggotaan set dengan menggunakan IN
PILIH * DARI KANTOR
DIMANA KOTA DI ('DELHI', 'MUMBAI', 'CHENNAI');
SELECT NAME, QUOTA, SALES
DARI PERWAKILAN PENJUALAN
DIMANA KANTOR_PERWAKILAN DI (11, 13, 22)
SEPERTI KATA KUNCI
Uji perbandingan sederhana dapat digunakan untuk mengambil baris di mana konten teks
kolom cocok dengan beberapa teks tertentu.
Karakter wildcard tanda persen (%) mencocokkan urutan nol atau lebih
karakter.
PILIH PERUSAHAAN, BATAS KREDIT
DARI PELANGGAN
DIMANA PERUSAHAAN SEPERTI 'Smith%';
Karakter wildcard garis bawah (_) mencocokkan satu karakter tunggal.
PILIH PERUSAHAAN, BATAS KREDIT
DARI PELANGGAN
DIMANA PERUSAHAAN SEPERTI 'S_ith';
FUNGSI AVG UNTUK MENDAPATKAN RATA-RATA DARI KOLOM YANG DIBERIKAN
PILIH RATA-RATA(PENJUALAN)
DARI KANTOR
DIMANA REGI = 'Timur'
FUNGSI SUM UNTUK MENDAPATKAN JUMLAH KOLOM YANG DIBERIKAN
PILIH JUMLAH(PENJUALAN)
DARI KANTOR;
MENEMUKAN NILAI EKSTREM (MIN DAN MAX)
PILIH MIN(JUALAN), MAX(JUALAN)
DARI KANTOR;
Fungsi kolom COUNT ( ) menghitung jumlah data
nilai dalam sebuah kolom.
SELECT COUNT (CUST_NUM)
DARI PELANGGAN;
SQL mendukung fungsi kolom COUNT(*) khusus, yang
menghitung baris daripada nilai data.
PILIH HITUNG(*)
DARI PESANAN;
Join (Equi-Joins)
Proses membentuk pasangan baris dengan mencocokkan isi yang terkait
kolom disebut bergabung dengan tabel. Tabel yang dihasilkan (berisi data
dari kedua tabel asli) disebut sebagai gabungan antara dua tabel. (A
bergabung berdasarkan kecocokan yang tepat antara dua kolom lebih tepat disebut sebagai
gabungan setara.
PILIH NOMOR_PESAN, JUMLAH, PERUSAHAAN, BATAS_KREDIT
DARI PESANAN, PELANGGAN
DIMANA CUST = CUST_NUM
Gabungan dengan Kriteria Pemilihan Baris
PILIH KOTA, NAMA, JABATAN
DARI KANTOR, PERWAKILAN PENJUALAN
DIMANA MGR = EMPL_NUM
AND TARGET > 6000
Gabungan Non-Ekuivalen
Istilah gabungan berlaku untuk setiap kueri yang menggabungkan data dari dua tabel dengan membandingkan
nilai dalam sepasang kolom dari tabel. Meskipun penggabungan didasarkan pada kesetaraan antara
kolom yang cocok (equi-join) adalah jenis join yang paling umum, SQL juga memungkinkan Anda untuk
bergabung tabel berdasarkan operator perbandingan lainnya. Berikut adalah contoh di mana lebih besar
uji perbandingan lebih besar dari (>) digunakan sebagai dasar untuk penggabungan:
SELECT NAME, QUOTA, CITY, TARGET
DARI PERWAKILAN PENJUALAN, KANTOR
DIMANA KUOTA > TARGET
Klausul GROUP BY
Klausul GROUP BY SQL digunakan bersama dengan fungsi grup untuk mengambil data yang dikelompokkan
menurut satu atau lebih kolom.
Misalnya: Jika Anda ingin mengetahui total jumlah gaji yang dibelanjakan untuk setiap departemen, maka
kueri akan menjadi:
PILIH dept, JUMLAH (gaji)
DARI karyawan
GROUP BY dept;
Keluaran akan seperti ini:
departemengaji
Listrik 25000
Electronics 55000
Aeronautika 35000
InfoTech 30000
Beberapa Kolom Pengelompokan
PILIH lokasi, dept, JUMLAH (gaji)
DARI karyawan
GROUP BY lokasi, departemen;
Keluaran akan seperti ini:
location dept salary
Listrik Bangalore 25000
Elektronik Bangalore 55000
Mysore Aeronotika 35000
Mangalore InfoTech 30000
Kondisi Pencarian Grup (Klausul HAVING)
Sama seperti klausa WHERE dapat digunakan untuk memilih dan menolak baris individu
yang berpartisipasi dalam kueri, klausa HAVING dapat digunakan untuk memilih dan
reject row groups.
SELECT REP, AVG(AMOUNT) FROM ORDERS
GRUP OLEH REP
MEMILIKI JUMLAH(SUM(AMOUNT)) > 30000
Sub kueri
Subquery adalah query di dalam [Link] atau Kuery Dalam atau Kuery Bersarang adalah
kueri dalam kueri. Sub kueri biasanya ditambahkan di Klausa WHERE dari
pernyataan sql.
PILIH KOTA
DARI KANTOR
DIMANA TARGET > (PILIH SUM(QUOTA)
DARI PERWAKILAN PENJUALAN
DIMANA KANTOR_PERWAKILAN = KANTOR
PILIH NAMA
DARI PERWAKILAN PENJUALAN
DIMANA KUOTA >= (PILIH TARGET
DARI KANTOR
DIMANA KOTA = 'Atlanta')
PROSEDUR TERSIMPAN
Prosedur tersimpan adalah satu atau lebih perintah SQL yang disimpan dalam basis data sebagai objek yang dapat dieksekusi.
Prosedur yang disimpan dapat dipanggil secara interaktif, dari dalam kode aplikasi klien, dari dalam
prosedur tersimpan lainnya, dan dari dalam pemicu. Parameter dapat diteruskan ke dan dikembalikan dari
prosedur tersimpan untuk meningkatkan kegunaan dan fleksibilitasnya. Sebuah prosedur tersimpan juga dapat mengembalikan
a number of result sets and a status code.
Sebuah Prosedur Tersimpan yang Mengembalikan Judul Buku dan Nama Penulis yang Menulisnya
BUAT [ATAU GANTI] PROSEDUR nama_prosedur [daftar parameter]
ADALAH
Bagian Deklarasi
MULAI
Bagian eksekusi
PENGECUALIAN
Bagian Pengecualian
SELESAI;