Resume 8

Resume 8

mata kuliah SQL Stikom Surabaya 

The CREATE DATABASE Pernyataan

Langkah pertama manajemen data dalam database setiap proyek adalah untuk menciptakan database. Tugas ini dapat berkisar dari SD ke rumit, tergantung pada kebutuhan dan sistem manajemen database yang telah Anda pilih. Banyak sistem modern (termasuk Personal Oracle7) berikut perangkat grafis yang memungkinkan Anda untuk benar-benar membangun database dengan mengklik tombol mouse. Fitur ini menghemat waktu tentu saja bermanfaat, namun Anda harus memahami pernyataan SQL yang dijalankan untuk menanggapi klik mouse.
Melalui pengalaman pribadi, kita telah belajar pentingnya menciptakan baik SQL menginstal script. File ini berisi script kode SQL yang dibutuhkan untuk benar-benar membangun kembali basis data atau database; script sering kali berisi objek database seperti indeks, disimpan prosedur, dan pemicu. Anda akan melihat nilai dari script ini selama perkembangan sebagai Anda terus-menerus melakukan perubahan pada database dan pada kesempatan ingin sekali membangun kembali database dengan semua perubahan terbaru. Dengan menggunakan alat grafis setiap kali Anda perlu melakukan kembali dapat menjadi sangat waktu memakan. Selain itu, mengetahui sintaks SQL untuk prosedur ini memungkinkan Anda untuk menerapkan pengetahuan Anda ke sistem database lain.
Sintaks untuk pernyataan CREATE DATABASE khas terlihat seperti ini:
Sintaks:
 CREATE DATABASE database_name
Karena sintaks bervariasi secara luas dari sistem ke sistem, kita tidak akan memperluas pada pernyataan CREATE DATABASE sintaks. Banyak sistem bahkan tidak mendukung perintah SQL CREATE DATABASE. Namun, semua yang populer, lebih kuat, manajemen basis data relasional sistem (RDBMSs) melakukan memberikan itu. Alih-alih berfokus pada sintaks, kami akan meluangkan waktu mendiskusikan pilihan yang perlu dipertimbangkan ketika membuat database.

CREATE DATABASE Pilihan

Sintaks untuk pernyataan CREATE DATABASE dapat sangat bervariasi. Banyak SQL teks melompat menyangkut pernyataan CREATE DATABASE dan bergerak langsung ke pernyataan CREATE TABLE. Karena Anda harus membuat database sebelum Anda dapat membangun sebuah meja, bagian ini berfokus pada beberapa konsep pengembang harus dipertimbangkan ketika membangun database. Pertimbangan pertama adalah tingkat izin. Jika Anda menggunakan sistem manajemen database relasional (RDBMS) yang mendukung akses user tersebut, Anda harus yakin bahwa baik Anda memiliki izin pengaturan tingkat administrator sistem atau administrator sistem telah memberikan izin CREATE DATABASE. Lihat dokumentasi RDBMS Anda untuk informasi lebih lanjut .
Kebanyakan RDBMSs juga memungkinkan Anda untuk menentukan ukuran database default, biasanya dalam hal ruang hard disk (seperti megabyte). Anda perlu memahami bagaimana sistem database toko dan menempatkan data pada disk untuk memperkirakan secara akurat ukuran yang Anda butuhkan. Tanggung jawab untuk mengelola ruang ini jatuh terutama untuk administrator sistem, dan mungkin di lokasi database administrator akan membangun database test .
Jangan biarkan pernyataan CREATE DATABASE mengintimidasi Anda. Pada sederhana, Anda dapat membuat database bernama PEMBAYARAN dengan pernyataan berikut:
Sintaks:
  SQL> CREATE DATABASE PEMBAYARAN; 
  

CATATAN: Sekali lagi, pastikan untuk berkonsultasi sistem manajemen database dokumentasi Anda untuk mempelajari spesifik database bangunan, sebagai pernyataan CREATE DATABASE dapat dan memang bervariasi untuk implementasi yang berbeda. Pelaksanaan Masing-masing juga memiliki beberapa pilihan yang unik.

Desain Database

Merancang database dengan benar sangat penting bagi keberhasilan aplikasi Anda,. Pengantar Materi pada Hari 1 “Pengantar SQL,” menyentuh pada topik teori database relasional dan normalisasi database.
Normalisasi adalah proses memecah data Anda menjadi komponen-komponen terpisah untuk mengurangi pengulangan data. Setiap tingkat normalisasi mengurangi pengulangan data. Normalisasi data Anda bisa menjadi proses yang sangat kompleks, dan berbagai alat desain database memungkinkan Anda untuk merencanakan proses ini dengan cara yang logis.
Banyak faktor yang dapat mempengaruhi desain database Anda, termasuk yang berikut:
  • Keamanan
  • Tersedia ruang disk
  • Kecepatan pencarian database dan pengambilan
  • Kecepatan pembaruan basis data
  • Kecepatan beberapa-meja bergabung untuk mengambil data
  • RDBMS dukungan untuk tabel sementara
ruang disk selalu merupakan faktor penting. Meskipun Anda mungkin tidak berpikir bahwa ruang disk merupakan masalah besar dalam usia penyimpanan multigigabyte, ingat bahwa semakin besar database Anda, semakin lama waktu yang dibutuhkan untuk mengambil catatan. Jika Anda telah melakukan pekerjaan yang buruk merancang struktur tabel Anda, kemungkinan besar Anda telah sia-sia mengulangi sebagian besar data Anda.
Seringkali masalah dapat terjadi sebaliknya. Anda mungkin telah berusaha untuk sepenuhnya menormalkan ‘tabel desain Anda dengan database dan dalam melakukan banyak tabel diciptakan begitu. Meskipun Anda mungkin telah mendekati nirwana-desain database, operasi dilakukan terhadap setiap query database ini akan memakan waktu yang sangat lama untuk mengeksekusi.Database dirancang dengan cara ini terkadang sulit untuk mempertahankan karena struktur tabel mungkin mengaburkan maksud desainer. Masalah ini menggarisbawahi pentingnya selalu mendokumentasikan kode Anda atau desain sehingga orang lain dapat masuk setelah Anda (atau bekerja dengan anda) dan memiliki beberapa ide tentang apa yang Anda pikirkan pada saat Anda membuat struktur database Anda. Dalam desainer segi database, dokumentasi ini dikenal sebagai kamus data.

Membuat Kamus Data

Sebuah kamus data database desainer paling penting membentuk dokumentasi. Itu melaksanakan fungsi-fungsi berikut:
  • Menjelaskan tujuan database dan yang akan menggunakannya.
  • Dokumen yang spesifik di belakang database itu sendiri: apa perangkat itu dibuat pada,’s default ukuran database, atau ukuran file log (digunakan untuk menyimpan database informasi beroperasi di sekitar RDBMSs).
  • SQL Berisi kode sumber untuk setiap database menginstal atau menghapus script, termasuk dokumentasi mengenai penggunaan alat-alat ekspor impor /, seperti yang diperkenalkan kemarin (Day 8).
  • Memberikan penjelasan rinci tentang setiap tabel dalam database dan menjelaskan tujuan dalam proses terminologi bisnis.
  • Dokumen struktur internal setiap tabel, termasuk semua kolom dan jenis data mereka dengan komentar, semua indeks, dan semua pandangan. (Lihat Hari ke-10, “Tampilan Membuat dan Indeks.”)
  • SQL Berisi kode sumber untuk semua prosedur disimpan dan pemicu.
  • Menjelaskan kendala database seperti penggunaan nilai-nilai yang unik atau nilai-nilai NULL TIDAK. Dokumentasi juga harus menyebutkan apakah kendala-kendala yang diterapkan pada tingkat RDBMS atau apakah programmer database diharapkan untuk memeriksa hambatan-hambatan dalam kode sumber.
Banyak dibantu-komputer rekayasa perangkat lunak (CASE) alat bantuan perancang database dalam penciptaan ini kamus data. Sebagai contoh, Microsoft Access datang dikemas dengan database yang mendokumentasikan alat yang print penjelasan rinci dari setiap objek dalam database. Lihat Hari 17, “Menggunakan SQL untuk Menghasilkan SQL Laporan,” untuk rincian lebih lanjut tentang data kamus.
CATATAN: Sebagian besar paket RDBMS besar datang dengan baik data DIC-tionary diinstal atau script untuk menginstalnya.

Membuat Kunci Fields

Seiring dengan mendokumentasikan desain database, desain tujuan paling penting yang harus Anda miliki adalah untuk menciptakan struktur tabel anda sehingga setiap tabel memiliki kunci primer dan kunci asing. Kunci utama harus memenuhi tujuan berikut:
  • Setiap catatan unik dalam tabel (ada catatan lain dalam tabel memiliki semua kolom yang sama dengan yang lain).
  • Sebagai catatan yang harus unik, semua kolom yang diperlukan, yaitu data dalam satu kolom tidak harus diulang di tempat lain dalam tabel.
Mengenai gol kedua, kolom yang unik data lengkap seluruh meja dikenal sebagai bidang primary key. Bidang kunci asing adalah bidang yang menghubungkan satu meja ke meja utama atau kunci asing lain. Contoh berikut akan memperjelas situasi ini.
Asumsikan Anda memiliki tiga tabel: BILLS, BANK_ACCOUNTS, dan PERUSAHAAN 9.1. Tabel menunjukkan format ketiga tabel.

Tabel 9.1. Tabel struktur database PEMBAYARAN.

Uang kertas Bank_Accounts Perusahaan
NAMA, CHAR (30) Account_id, NOMOR NAMA, CHAR (30)
JUMLAH, NOMOR JENIS, CHAR (30) ALAMAT, CHAR (50)
Account_id, NOMOR NERACA, NOMOR KOTA, CHAR (20)

BANK, CHAR (30) NEGARA, CHAR (2)
Luangkan waktu sejenak untuk memeriksa tabel ini. Bidang yang menurut Anda adalah kunci utama? Yang merupakan kunci asing?
Kunci utama dalam tabel BILLS adalah bidang NAMA. Bidang ini tidak boleh ditiru karena kamu hanya memiliki satu tagihan dengan jumlah ini. (Pada kenyataannya, Anda mungkin akan memiliki nomor cek atau tanggal untuk membuat catatan ini benar-benar unik, tapi untuk saat ini menganggap bahwa bekerja bidang NAME.) Bidang account_id dalam tabel BANK_ACCOUNTS adalah kunci utama untuk meja itu. Bidang NAMA adalah kunci utama untuk tabel PERUSAHAAN.
Kunci asing dalam contoh ini mungkin mudah untuk spot. Bidang account_id pada tabel BILLS BILLS bergabung meja dengan tabel BANK_ACCOUNTS. Bidang NAMA pada tabel BILLS BILLSbergabung meja dengan tabel PERUSAHAAN. Jika ini adalah desain database matang penuh, Anda akan memiliki tabel lebih banyak dan kerusakan data. Misalnya, bidang BANK dalam tabelBANK_ACCOUNTS bisa menunjuk ke sebuah meja BANK berisi informasi bank seperti alamat dan nomor telepon. Tabel PERUSAHAAN dapat dikaitkan dengan tabel lain (atau database untuk hal ini) yang berisi informasi tentang perusahaan dan produk-produknya.

The CREATE TABLE Pernyataan

Proses membuat tabel jauh lebih standar daripada pernyataan CREATE DATABASE. Berikut sintaks dasar untuk pernyataan CREATE TABLE:
Sintaks:
  CREATE TABLE table_name 
  (Field1 [datatype NOT NULL], 
        field2 [datatype NOT NULL], 
        field3 [datatype NOT NULL ]...) 
Sebuah contoh sederhana dari pernyataan berikut CREATE TABLE.
INPUT / OUTPUT:
  SQL> CREATE TABLE BILLS ( 
    2 NAME CHAR (30), 
    3 JUMLAH NOMOR, 
    4 account_id NUMBER); 

  Tabel dibuat. 
ANALISIS:
Pernyataan ini membuat sebuah tabel bernama BILLS. Dalam tabel BILLS tiga bidang: NAMA, JUMLAH, dan account_id. Bidang NAME memiliki tipe data karakter dan string dapat menyimpan hingga 30 karakter. The JUMLAH dan bidang account_id dapat berisi nilai angka saja.
Bagian berikut membahas komponen dari perintah CREATE TABLE.

Tabel Nama

Ketika membuat tabel menggunakan Pribadi Oracle7, beberapa kendala berlaku ketika penamaan meja. Pertama, nama tabel boleh ada lebih dari 30 karakter. Oracle Karena peka terhadap huruf, Anda dapat menggunakan salah satu huruf besar atau huruf kecil untuk karakter individu. Namun, karakter pertama dari nama harus surat antara A dan Z. Karakter tersisa bisa huruf atau _simbol, #, $, dan @. Tentu saja, nama tabel harus unik dalam skema tersebut. Nama juga tidak dapat menjadi salah satu Oracle atau SQL dilindungi kata-kata (seperti SELECT).

CATATAN: Anda dapat memiliki duplikat nama tabel sebagai panjang sebagai pemilik atau skema berbeda. Nama tabel dalam skema yang sama harus unik.

Field Nama

Kendala-kendala yang sama yang berlaku untuk nama tabel juga berlaku untuk nama field basis data. Namun, lapangan nama dapat ditiru di dalam. pembatasan adalah bahwa nama field harus unik dalam tabel tersebut. Sebagai contoh, asumsikan bahwa Anda memiliki dua tabel dalam database Anda: TABLE1 dan TABLE2. Kedua tabel ini bisa memiliki bidang yang disebut ID. Anda tidak bisa, bagaimanapun, memiliki dua bidang dalam TABLE1 disebut ID, bahkan jika mereka adalah jenis data yang berbeda.

Field Tipe Data

Jika Anda pernah diprogram dalam bahasa apapun, Anda akrab dengan konsep tipe data, atau jenis data yang akan disimpan dalam suatu bidang tertentu. Misalnya, tipe data karakter merupakan sebuah bidang yang menyimpan data string karakter saja. Tabel 9.2 menunjukkan jenis data yang didukung oleh Personal Oracle7.

Tabel 9.2. jenis data yang didukung oleh Personal Oracle7.

Jenis Data Komentar
CHAR Data alfanumerik dengan panjang antara 1 dan 255 karakter. Spasi melangkah ke kanan nilai untuk melengkapi dialokasikan panjang total kolom.
DATE Termasuk sebagai bagian dari tanggal adalah abad, tahun, bulan, hari, jam, menit, dan detik.
PANJANG Variabel string alfanumerik-panjang sampai 2 gigabyte. (Lihat catatan berikut.)
PANJANG RAW Binary data hingga 2 gigabyte. (Lihat catatan berikut.)
NOMOR Angka 0, positif atau negatif tetap atau floating-point data.
RAW Binary data sampai dengan 255 byte.
ROWID String heksadesimal mewakili alamat unik sebuah baris dalam tabel. (Lihat catatan berikut.)
VARCHAR2 data alfanumerik yang panjang variabel; field ini harus antara 1 dan 2.000 karakter.

CATATAN: Tipe data PANJANG sering disebut tipe data MEMO dalam sistem manajemen basis data lainnya. Hal ini terutama digunakan untuk menyimpan sejumlah besar teks untuk pencarian pada beberapa waktu kemudian.Jenis data RAW PANJANG sering disebut sebuah objek besar biner (BLOB) dalam sistem manajemen basis data lainnya. Hal ini biasanya digunakan untuk menyimpan grafik, suara, atau data video. Meskipun sistem manajemen database relasional tidak awalnya dirancang untuk melayani jenis data, saat ini banyak sistem multimedia menyimpan data mereka diRAW PANJANG, atau blob, ladang. Jenis ROWID lapangan digunakan untuk memberikan setiap record dalam tabel Anda yang unik, nonduplicating nilai. Banyak sistem database lain mendukung konsep dengan lapanganCOUNTER (Microsoft Access) atau medan IDENTITAS (SQL Server).


CATATAN: Periksa pelaksanaan untuk jenis data yang didukung karena dapat bervariasi.

Nilai NULL

SQL juga memungkinkan Anda untuk mengidentifikasi apa yang dapat disimpan dalam kolom. Sebuah nilai NULL hampir oksimoron, karena memiliki lapangan dengan nilai NULL berarti bahwa lapangan sebenarnya tidak memiliki nilai yang tersimpan di dalamnya.
Ketika bangunan meja, sistem database yang paling memungkinkan Anda untuk menunjukkan kolom dengan kata kunci NULL TIDAK. NOT NULL berarti kolom tidak dapat berisi nilai NULL untuk setiap record dalam tabel. Sebaliknya, TIDAK NULL berarti bahwa setiap catatan harus memiliki nilai aktual dalam kolom ini. Contoh berikut menggambarkan penggunaan kata kunci NULL TIDAK.
INPUT:
  SQL> CREATE TABLE BILLS ( 
   2 NAME CHAR (30) NOT NULL, 
   3 JUMLAH NOMOR, 
   4 account_id NOT NULL); 
ANALISIS:
Dalam tabel ini, Anda ingin menyimpan nama perusahaan Anda berutang uang untuk, bersama dengan jumlah tagihan itu. Jika bidang NAMA dan / atau account_id tidak disimpan, catatan akan menjadi tidak berarti. Anda akan berakhir dengan catatan dengan tagihan, namun Anda akan tidak tahu siapa yang harus Anda bayar.
Pernyataan pertama dalam contoh berikut menyisipkan catatan yang berisi data yang valid untuk tagihan yang akan dikirim ke Joe Layanan Komputer sebesar $ 25.
INPUT / OUTPUT:
  SQL> INSERT INTO NILAI BILLS ("Layanan Komputer Joe", 25, 1); 

  1 baris dimasukkan.
INPUT / OUTPUT:
  SQL> INSERT INTO NILAI BILLS ("", 25000, 1); 

  1 baris dimasukkan. 
ANALISIS:
Perhatikan bahwa catatan kedua dalam contoh sebelumnya tidak mengandung nilai NAMA. (Anda mungkin berpikir bahwa penerima pembayaran yang hilang adalah untuk keuntungan Anda karena jumlah tagihan adalah $ 25.000, tetapi kami tidak akan mempertimbangkan bahwa mengangkat.) Yang Jika tabel telah diciptakan dengan NULL TIDAK nilai untuk bidang NAMA, kedua masukkan akan kesalahan.
Aturan praktis yang baik adalah bahwa bidang kunci utama dan semua kolom kunci asing tidak boleh berisi nilai NULL.

Unik Fields

Salah satu tujuan desain Anda harus memiliki satu kolom yang unik dalam setiap tabel. Ini kolom atau bidang adalah bidang kunci primer. Beberapa sistem manajemen database memungkinkan Anda untuk mengatur medan sebagai unik. Sistem manajemen basis data lainnya, seperti Oracle dan SQL Server, memungkinkan Anda untuk membuat indeks yang unik di lapangan. (Lihat Hari 10 fitur. Ini) membuat Anda memasukkan nilai-nilai field kunci duplikat ke dalam database.
Anda harus memperhatikan beberapa hal ketika memilih bidang kunci. Seperti yang telah disebutkan, Oracle menyediakan lapangan ROWID yang bertambah untuk setiap baris yang ditambahkan, yang membuat bidang ini secara default selalu sebuah kunci yang unik. Bidang ROWID melakukan bidang utama yang sangat baik karena beberapa alasan. Pertama, adalah lebih cepat untuk bergabung pada sebuah nilai integer dari pada-karakter string 80. Hasil tersebut bergabung dalam ukuran database lebih kecil dari waktu ke waktu jika Anda menyimpan nilai integer di setiap dan asing kunci utama yang bertentangan dengan nilai CHAR panjang. Keuntungan lainnya adalah bahwa Anda dapat menggunakan ROWID bidang untuk melihat bagaimana meja diatur. Juga, menggunakan nilai CHAR daun Anda terbuka untuk sejumlah masalah entri data. Sebagai contoh, apa yang akan terjadi jika satu orang masuk 111 First Street, yang lain masuk 111 1 Street, dan lagi-lagi masuk 111 First St? Dengan lingkungan grafis pengguna hari ini, string yang benar bisa dimasukkan ke dalam kotak daftar. Ketika seorang pengguna membuat pilihan dari daftar kotak, kode tersebut akan mengkonversi string ini ke sebuah ID yang unik dan menyimpan ID ini untuk database.
Sekarang Anda dapat membuat tabel yang Anda gunakan tadi pagi. Anda akan menggunakan tabel ini selama sisa hari ini, jadi Anda akan ingin mengisinya dengan beberapa data. Gunakan perintah INSERT tertutup kemarin untuk memuat tabel dengan data pada Tabel 9.3, 9.4, dan 9,5.
INPUT / OUTPUT:
  SQL> membuat database PEMBAYARAN; 

  Pernyataan diproses. 

  SQL> BILLS membuat tabel ( 
    2 NAME CHAR (30) NOT NULL, 
    3 JUMLAH NOMOR, 
    4 account_id NUMBER NOT NULL); 

  Tabel dibuat. 

  SQL> BANK_ACCOUNTS membuat tabel ( 
    2 NOMOR account_id NOT NULL, 
    3 JENIS CHAR (30), 
    4 NERACA NOMOR, 
    5 BANK CHAR (30)); 

  Tabel dibuat. 

  SQL> membuat tabel PERUSAHAAN ( 
    2 NAME CHAR (30) NOT NULL, 
    3 ALAMAT CHAR (50), 
    4 CHAR KOTA (30), 
    5 CHAR NEGARA (2)); 

  Tabel dibuat. 

Tabel 9.3. Contoh data untuk tabel BILLS.

Nama Jumlah Account_id
Telepon Perusahaan 125 1
Power Company 75 1
Rekam Club 25 2
Software Perusahaan 250 1
Perusahaan TV kabel 35 3

Tabel 9.4. Contoh data untuk tabel BANK_ACCOUNTS.

Account_id Jenis Keseimbangan Pita
1 Memeriksa 500 Pertama Federal
2 Pasar uang 1200 Pertama Investor
3 Memeriksa 90 Credit Union

Tabel 9.5. Contoh data untuk tabel PERUSAHAAN.

Nama Alamat Kota Negara
Telepon Perusahaan 111 1 Street Atlanta GA
Power Company 222 2 Street Jacksonville FL
Rekam Club 333 3 Avenue Los Angeles CA
Software Perusahaan 444 4 Drive San Francisco CA
Perusahaan TV kabel 555 5 Drive Austin TX

Tabel Penyimpanan dan Ukuran

Kebanyakan RDBMSs utama memiliki setting default untuk ukuran meja dan lokasi tabel. Jika Anda tidak menentukan ukuran meja dan lokasi, kemudian meja akan mengambil default. The default mungkin sangat tidak diinginkan, terutama untuk tabel besar. default ukuran dan lokasi akan bervariasi antara implementasi. Berikut adalah contoh dari pernyataan CREATE TABLE dengan klausa penyimpanan (dari Oracle).
INPUT:
 SQL> CREATE TABLE tablename 2 (NOT NULL CHAR COLUMN1, 3 COLUMN2 NOMOR, 4 COLUMN3 DATE) 5 tablespace Tablespace NAMA 6 PENYIMPANAN 7 AWAL UKURAN, 8 NEXT UKURAN, 9 MINEXTENTS nilai, 10 MAXEXTENTS nilai, 11 PCTINCREAS E nilai);
OUTPUT:
  Tabel dibuat. 
ANALISIS:
Dalam Oracle Anda dapat menentukan tablespace di mana Anda ingin meja untuk tinggal. Satu keputusan biasanya dibuat sesuai dengan ruang yang tersedia, sering oleh database administrator (DBA) UKURAN. AWAL adalah ukuran untuk tingkat awal tabel (yang awal ruang yang dialokasikan) UKURAN. BERIKUTNYA adalah nilai untuk setiap luasan tambahan meja dapat berlangsung melalui pertumbuhan. MINEXTENTS dan MAXEXTENTS mengidentifikasi luasan maksimum dan minimum yang diizinkan untuk meja, dan PCTINCREASE mengidentifikasi persentase tingkat berikutnya akan meningkat setiap kali meja tumbuh, atau mengambil batas lain.

Membuat Tabel dari Tabel Ada

Yang paling umum cara untuk membuat tabel adalah dengan perintah CREATE TABLE. Namun, sistem manajemen database beberapa memberikan metode alternatif untuk menciptakan tabel, menggunakan format dan data dari tabel yang ada. Metode ini berguna bila Anda ingin memilih data dari meja untuk modifikasi sementara. Hal ini juga dapat berguna saat Anda harus membuat tabel yang sama ke tabel yang ada dan mengisinya dengan data yang sama. (Anda tidak perlu masuk kembali semua informasi ini Oracle.) Sintaks untuk berikut.
Sintaks:
 CREATE TABLE NEW_TABLE (FIELD1, FIELD2, FIELD3) AS (SELECT FIELD1, FIELD2, FIELD3 DARI <WHERE...> OLD_TABLE
sintaks ini memungkinkan Anda untuk membuat sebuah meja baru dengan jenis data yang sama dengan kolom yang dipilih dari meja tua. Hal ini juga memungkinkan Anda untuk mengubah nama field dalam tabel baru dengan memberi mereka nama-nama baru.
INPUT / OUTPUT:
  SQL> CREATE TABLE NEW_BILLS (NAMA, JUMLAH, account_id) 
    2 AS SELECT * (BILLS FROM WHERE JUMLAH <50); 

  Tabel dibuat. 
ANALISIS:
Pernyataan sebelumnya membuat tabel baru (NEW_BILLS) dengan semua catatan dari meja BILLS yang AMOUNT sebuah kurang dari 50.
Beberapa sistem database juga memungkinkan Anda untuk menggunakan sintaks berikut:
Sintaks:
  INSERT NEW_TABLE 
  SELECT <field1, field2 ...  | *> Dari OLD_TABLE 
  <WHERE...> 
Sintaks sebelumnya akan membuat tabel baru dengan struktur lapangan tepat dan data yang ditemukan di meja tua. Menggunakan-SQL server Transact SQL dalam contoh berikut menggambarkan teknik ini.
INPUT:
  INSERT NEW_BILLS 
  1 * pilih> dari BILLS mana JUMLAH <50 
  2> pergi 
(Pernyataan GO di SQL Server memproses pernyataan SQL dalam buffer perintah;. Hal ini setara dengan titik koma () digunakan dalam Oracle7.)

The ALTER TABLE Pernyataan

Berkali-kali desain database Anda tidak menjelaskan segala sesuatu yang seharusnya. Selain itu, persyaratan untuk aplikasi dan database selalu berubah. ALTER TABLE pernyataan itu memungkinkan administrator database atau desainer untuk mengubah struktur dari tabel setelah ini telah diciptakan.
ALTER TABLE Perintah ini memungkinkan Anda untuk melakukan dua hal:
  • Tambahkan kolom ke tabel yang ada
  • Mengubah kolom yang sudah ada
Sintaks untuk pernyataan ALTER TABLE adalah sebagai berikut:
Sintaks:
  ALTER TABLE table_name 
    <ADD column_name data_type; | 
    Memodifikasi column_name data_type;> 
Perubahan perintah berikut bidang NAMA tabel BILLS untuk menahan 40 karakter:
INPUT / OUTPUT:
  SQL> ALTER TABLE BILLS 
    2 memodifikasi NAME CHAR (40); 

  Tabel diubah. 

CATATAN: Anda dapat menambah atau mengurangi panjang kolom, namun Anda tidak dapat mengurangi kolom yang panjang jika ukuran saat ini salah satu nilai yang lebih besar dari nilai yang ingin Anda tetapkan ke panjang kolom.

Berikut pernyataan untuk menambahkan kolom baru ke tabel NEW_BILLS:
INPUT / OUTPUT:
  SQL> TABLE NEW_BILLS ALTER 
    2 ADD COMMENTS CHAR (80); 

  Tabel diubah. 
ANALISIS:
Pernyataan ini akan menambahkan kolom baru bernama COMMENTS mampu memegang 80 karakter. lapangan itu akan ditambahkan ke kanan semua bidang yang ada.
Beberapa pembatasan berlaku untuk menggunakan ALTER TABLE pernyataan. Anda tidak dapat menggunakannya untuk menambah atau menghapus field dari database. Hal ini dapat mengubah kolom dari NULL TIDAK NULL, tetapi belum tentu sebaliknya. Sebuah spesifikasi kolom dapat diubah dari TIDAK NULL NULL hanya jika kolom tersebut tidak mengandung nilai NULL. Untuk mengubah kolom dari NOT NULL ke NULL, gunakan sintaks berikut:
Sintaks:
  ALTER TABLE table_name memodifikasi (column_name data_type NULL); 
Untuk mengubah kolom dari NULL untuk TIDAK NULL, Anda mungkin harus mengambil beberapa langkah:
  1. Tentukan apakah kolom mempunyai nilai NULL.
  2. menemukan. Deal dengan NULL nilai-nilai yang Anda. (Hapus catatan-catatan, update kolom yang nilai, dan sebagainya.)
  3. Masalah ALTER TABLE perintah.

CATATAN: Beberapa sistem manajemen basis data mengizinkan penggunaan klausa memodifikasi; lainnya tidak. Masih lain telah menambahkan klausa lain untuk ALTER TABLElaporan. Dalam Oracle, Anda bahkan dapat mengubah parameter storage meja. Periksa dokumentasi sistem yang Anda gunakan untuk menentukan pelaksanaan ALTER TABLEpernyataan.

Pernyataan itu TABLE DROP

SQL menyediakan perintah untuk menghapus sebuah tabel dari database. The TABLE DROP perintah menghapus tabel beserta semua pandangan yang terkait dan indeks.. (Lihat Hari 10 untuk rincian) Setelah perintah ini telah diterbitkan, tidak ada jalan kembali. Yang umum menggunakan sebagian besar pernyataan DROP TABLE adalah ketika Anda telah membuat tabel untuk digunakan sementara. Ketika Anda telah menyelesaikan semua operasi di atas meja yang Anda rencanakan untuk lakukan, masalah pernyataan TABLE DROP dengan sintaks berikut:
Sintaks:
  DROP TABLE table_name; 
Berikut adalah cara untuk drop tabel NEW_BILLS:
INPUT / OUTPUT:
  SQL NEW_BILLS DROP TABLE>; 

  Tabel menjatuhkan. 
ANALISIS:
Perhatikan tidak adanya sistem prompt. Perintah ini tidak bertanya Apakah Anda yakin? (Y / N). Setelah perintah DROP TABLE dikeluarkan, tabel ini dihapus secara permanen.

PERINGATAN: Jika Anda masalah SQL NEW_BILLS DROP TABLE>; Anda dapat menjatuhkan meja yang salah. Ketika tabel menjatuhkan, Anda harus selalu menggunakan atau nama pemilik skema. Sintaks yang disarankan adalah
  SQL OWNER.NEW_BILLS DROP TABLE>;
Kami menekankan sintaks ini karena kami pernah memiliki untuk memperbaiki database produksi dari tabel yang salah yang terjatuh. Meja itu tidak benar diidentifikasi dengan nama skema. Memulihkan database adalah delapan jam kerja, dan kami harus bekerja sampai tengah malam sudah lewat.

Pernyataan itu DROP DATABASE

Beberapa sistem manajemen database juga memberikan pernyataan DROP DATABASE, yang identik dalam penggunaan dengan pernyataan DROP TABLE. Sintaks untuk pernyataan ini adalah sebagai berikut:
  DROP DATABASE database_name 
Jangan jatuhkan database BILLS sekarang karena Anda akan menggunakannya untuk sisa hari ini, serta pada Hari ke-10.

CATATAN: Database relasional implementasi berbagai mengharuskan Anda untuk mengambil langkah-erent diff untuk drop database. Setelah database terjatuh, Anda perlu membersihkan file-file sistem operasi yang membentuk basis data.


Categories: Share

Leave a Reply

Total Pageviews

You can replace this text by going to "Layout" and then "Page Elements" section. Edit " About "

Senin, 05 Desember 2011

Resume 8

Diposting oleh Zeniwahyu di 11:45:00 AM

Resume 8

mata kuliah SQL Stikom Surabaya 

The CREATE DATABASE Pernyataan

Langkah pertama manajemen data dalam database setiap proyek adalah untuk menciptakan database. Tugas ini dapat berkisar dari SD ke rumit, tergantung pada kebutuhan dan sistem manajemen database yang telah Anda pilih. Banyak sistem modern (termasuk Personal Oracle7) berikut perangkat grafis yang memungkinkan Anda untuk benar-benar membangun database dengan mengklik tombol mouse. Fitur ini menghemat waktu tentu saja bermanfaat, namun Anda harus memahami pernyataan SQL yang dijalankan untuk menanggapi klik mouse.
Melalui pengalaman pribadi, kita telah belajar pentingnya menciptakan baik SQL menginstal script. File ini berisi script kode SQL yang dibutuhkan untuk benar-benar membangun kembali basis data atau database; script sering kali berisi objek database seperti indeks, disimpan prosedur, dan pemicu. Anda akan melihat nilai dari script ini selama perkembangan sebagai Anda terus-menerus melakukan perubahan pada database dan pada kesempatan ingin sekali membangun kembali database dengan semua perubahan terbaru. Dengan menggunakan alat grafis setiap kali Anda perlu melakukan kembali dapat menjadi sangat waktu memakan. Selain itu, mengetahui sintaks SQL untuk prosedur ini memungkinkan Anda untuk menerapkan pengetahuan Anda ke sistem database lain.
Sintaks untuk pernyataan CREATE DATABASE khas terlihat seperti ini:
Sintaks:
 CREATE DATABASE database_name
Karena sintaks bervariasi secara luas dari sistem ke sistem, kita tidak akan memperluas pada pernyataan CREATE DATABASE sintaks. Banyak sistem bahkan tidak mendukung perintah SQL CREATE DATABASE. Namun, semua yang populer, lebih kuat, manajemen basis data relasional sistem (RDBMSs) melakukan memberikan itu. Alih-alih berfokus pada sintaks, kami akan meluangkan waktu mendiskusikan pilihan yang perlu dipertimbangkan ketika membuat database.

CREATE DATABASE Pilihan

Sintaks untuk pernyataan CREATE DATABASE dapat sangat bervariasi. Banyak SQL teks melompat menyangkut pernyataan CREATE DATABASE dan bergerak langsung ke pernyataan CREATE TABLE. Karena Anda harus membuat database sebelum Anda dapat membangun sebuah meja, bagian ini berfokus pada beberapa konsep pengembang harus dipertimbangkan ketika membangun database. Pertimbangan pertama adalah tingkat izin. Jika Anda menggunakan sistem manajemen database relasional (RDBMS) yang mendukung akses user tersebut, Anda harus yakin bahwa baik Anda memiliki izin pengaturan tingkat administrator sistem atau administrator sistem telah memberikan izin CREATE DATABASE. Lihat dokumentasi RDBMS Anda untuk informasi lebih lanjut .
Kebanyakan RDBMSs juga memungkinkan Anda untuk menentukan ukuran database default, biasanya dalam hal ruang hard disk (seperti megabyte). Anda perlu memahami bagaimana sistem database toko dan menempatkan data pada disk untuk memperkirakan secara akurat ukuran yang Anda butuhkan. Tanggung jawab untuk mengelola ruang ini jatuh terutama untuk administrator sistem, dan mungkin di lokasi database administrator akan membangun database test .
Jangan biarkan pernyataan CREATE DATABASE mengintimidasi Anda. Pada sederhana, Anda dapat membuat database bernama PEMBAYARAN dengan pernyataan berikut:
Sintaks:
  SQL> CREATE DATABASE PEMBAYARAN; 
  

CATATAN: Sekali lagi, pastikan untuk berkonsultasi sistem manajemen database dokumentasi Anda untuk mempelajari spesifik database bangunan, sebagai pernyataan CREATE DATABASE dapat dan memang bervariasi untuk implementasi yang berbeda. Pelaksanaan Masing-masing juga memiliki beberapa pilihan yang unik.

Desain Database

Merancang database dengan benar sangat penting bagi keberhasilan aplikasi Anda,. Pengantar Materi pada Hari 1 “Pengantar SQL,” menyentuh pada topik teori database relasional dan normalisasi database.
Normalisasi adalah proses memecah data Anda menjadi komponen-komponen terpisah untuk mengurangi pengulangan data. Setiap tingkat normalisasi mengurangi pengulangan data. Normalisasi data Anda bisa menjadi proses yang sangat kompleks, dan berbagai alat desain database memungkinkan Anda untuk merencanakan proses ini dengan cara yang logis.
Banyak faktor yang dapat mempengaruhi desain database Anda, termasuk yang berikut:
  • Keamanan
  • Tersedia ruang disk
  • Kecepatan pencarian database dan pengambilan
  • Kecepatan pembaruan basis data
  • Kecepatan beberapa-meja bergabung untuk mengambil data
  • RDBMS dukungan untuk tabel sementara
ruang disk selalu merupakan faktor penting. Meskipun Anda mungkin tidak berpikir bahwa ruang disk merupakan masalah besar dalam usia penyimpanan multigigabyte, ingat bahwa semakin besar database Anda, semakin lama waktu yang dibutuhkan untuk mengambil catatan. Jika Anda telah melakukan pekerjaan yang buruk merancang struktur tabel Anda, kemungkinan besar Anda telah sia-sia mengulangi sebagian besar data Anda.
Seringkali masalah dapat terjadi sebaliknya. Anda mungkin telah berusaha untuk sepenuhnya menormalkan ‘tabel desain Anda dengan database dan dalam melakukan banyak tabel diciptakan begitu. Meskipun Anda mungkin telah mendekati nirwana-desain database, operasi dilakukan terhadap setiap query database ini akan memakan waktu yang sangat lama untuk mengeksekusi.Database dirancang dengan cara ini terkadang sulit untuk mempertahankan karena struktur tabel mungkin mengaburkan maksud desainer. Masalah ini menggarisbawahi pentingnya selalu mendokumentasikan kode Anda atau desain sehingga orang lain dapat masuk setelah Anda (atau bekerja dengan anda) dan memiliki beberapa ide tentang apa yang Anda pikirkan pada saat Anda membuat struktur database Anda. Dalam desainer segi database, dokumentasi ini dikenal sebagai kamus data.

Membuat Kamus Data

Sebuah kamus data database desainer paling penting membentuk dokumentasi. Itu melaksanakan fungsi-fungsi berikut:
  • Menjelaskan tujuan database dan yang akan menggunakannya.
  • Dokumen yang spesifik di belakang database itu sendiri: apa perangkat itu dibuat pada,’s default ukuran database, atau ukuran file log (digunakan untuk menyimpan database informasi beroperasi di sekitar RDBMSs).
  • SQL Berisi kode sumber untuk setiap database menginstal atau menghapus script, termasuk dokumentasi mengenai penggunaan alat-alat ekspor impor /, seperti yang diperkenalkan kemarin (Day 8).
  • Memberikan penjelasan rinci tentang setiap tabel dalam database dan menjelaskan tujuan dalam proses terminologi bisnis.
  • Dokumen struktur internal setiap tabel, termasuk semua kolom dan jenis data mereka dengan komentar, semua indeks, dan semua pandangan. (Lihat Hari ke-10, “Tampilan Membuat dan Indeks.”)
  • SQL Berisi kode sumber untuk semua prosedur disimpan dan pemicu.
  • Menjelaskan kendala database seperti penggunaan nilai-nilai yang unik atau nilai-nilai NULL TIDAK. Dokumentasi juga harus menyebutkan apakah kendala-kendala yang diterapkan pada tingkat RDBMS atau apakah programmer database diharapkan untuk memeriksa hambatan-hambatan dalam kode sumber.
Banyak dibantu-komputer rekayasa perangkat lunak (CASE) alat bantuan perancang database dalam penciptaan ini kamus data. Sebagai contoh, Microsoft Access datang dikemas dengan database yang mendokumentasikan alat yang print penjelasan rinci dari setiap objek dalam database. Lihat Hari 17, “Menggunakan SQL untuk Menghasilkan SQL Laporan,” untuk rincian lebih lanjut tentang data kamus.
CATATAN: Sebagian besar paket RDBMS besar datang dengan baik data DIC-tionary diinstal atau script untuk menginstalnya.

Membuat Kunci Fields

Seiring dengan mendokumentasikan desain database, desain tujuan paling penting yang harus Anda miliki adalah untuk menciptakan struktur tabel anda sehingga setiap tabel memiliki kunci primer dan kunci asing. Kunci utama harus memenuhi tujuan berikut:
  • Setiap catatan unik dalam tabel (ada catatan lain dalam tabel memiliki semua kolom yang sama dengan yang lain).
  • Sebagai catatan yang harus unik, semua kolom yang diperlukan, yaitu data dalam satu kolom tidak harus diulang di tempat lain dalam tabel.
Mengenai gol kedua, kolom yang unik data lengkap seluruh meja dikenal sebagai bidang primary key. Bidang kunci asing adalah bidang yang menghubungkan satu meja ke meja utama atau kunci asing lain. Contoh berikut akan memperjelas situasi ini.
Asumsikan Anda memiliki tiga tabel: BILLS, BANK_ACCOUNTS, dan PERUSAHAAN 9.1. Tabel menunjukkan format ketiga tabel.

Tabel 9.1. Tabel struktur database PEMBAYARAN.

Uang kertas Bank_Accounts Perusahaan
NAMA, CHAR (30) Account_id, NOMOR NAMA, CHAR (30)
JUMLAH, NOMOR JENIS, CHAR (30) ALAMAT, CHAR (50)
Account_id, NOMOR NERACA, NOMOR KOTA, CHAR (20)

BANK, CHAR (30) NEGARA, CHAR (2)
Luangkan waktu sejenak untuk memeriksa tabel ini. Bidang yang menurut Anda adalah kunci utama? Yang merupakan kunci asing?
Kunci utama dalam tabel BILLS adalah bidang NAMA. Bidang ini tidak boleh ditiru karena kamu hanya memiliki satu tagihan dengan jumlah ini. (Pada kenyataannya, Anda mungkin akan memiliki nomor cek atau tanggal untuk membuat catatan ini benar-benar unik, tapi untuk saat ini menganggap bahwa bekerja bidang NAME.) Bidang account_id dalam tabel BANK_ACCOUNTS adalah kunci utama untuk meja itu. Bidang NAMA adalah kunci utama untuk tabel PERUSAHAAN.
Kunci asing dalam contoh ini mungkin mudah untuk spot. Bidang account_id pada tabel BILLS BILLS bergabung meja dengan tabel BANK_ACCOUNTS. Bidang NAMA pada tabel BILLS BILLSbergabung meja dengan tabel PERUSAHAAN. Jika ini adalah desain database matang penuh, Anda akan memiliki tabel lebih banyak dan kerusakan data. Misalnya, bidang BANK dalam tabelBANK_ACCOUNTS bisa menunjuk ke sebuah meja BANK berisi informasi bank seperti alamat dan nomor telepon. Tabel PERUSAHAAN dapat dikaitkan dengan tabel lain (atau database untuk hal ini) yang berisi informasi tentang perusahaan dan produk-produknya.

The CREATE TABLE Pernyataan

Proses membuat tabel jauh lebih standar daripada pernyataan CREATE DATABASE. Berikut sintaks dasar untuk pernyataan CREATE TABLE:
Sintaks:
  CREATE TABLE table_name 
  (Field1 [datatype NOT NULL], 
        field2 [datatype NOT NULL], 
        field3 [datatype NOT NULL ]...) 
Sebuah contoh sederhana dari pernyataan berikut CREATE TABLE.
INPUT / OUTPUT:
  SQL> CREATE TABLE BILLS ( 
    2 NAME CHAR (30), 
    3 JUMLAH NOMOR, 
    4 account_id NUMBER); 

  Tabel dibuat. 
ANALISIS:
Pernyataan ini membuat sebuah tabel bernama BILLS. Dalam tabel BILLS tiga bidang: NAMA, JUMLAH, dan account_id. Bidang NAME memiliki tipe data karakter dan string dapat menyimpan hingga 30 karakter. The JUMLAH dan bidang account_id dapat berisi nilai angka saja.
Bagian berikut membahas komponen dari perintah CREATE TABLE.

Tabel Nama

Ketika membuat tabel menggunakan Pribadi Oracle7, beberapa kendala berlaku ketika penamaan meja. Pertama, nama tabel boleh ada lebih dari 30 karakter. Oracle Karena peka terhadap huruf, Anda dapat menggunakan salah satu huruf besar atau huruf kecil untuk karakter individu. Namun, karakter pertama dari nama harus surat antara A dan Z. Karakter tersisa bisa huruf atau _simbol, #, $, dan @. Tentu saja, nama tabel harus unik dalam skema tersebut. Nama juga tidak dapat menjadi salah satu Oracle atau SQL dilindungi kata-kata (seperti SELECT).

CATATAN: Anda dapat memiliki duplikat nama tabel sebagai panjang sebagai pemilik atau skema berbeda. Nama tabel dalam skema yang sama harus unik.

Field Nama

Kendala-kendala yang sama yang berlaku untuk nama tabel juga berlaku untuk nama field basis data. Namun, lapangan nama dapat ditiru di dalam. pembatasan adalah bahwa nama field harus unik dalam tabel tersebut. Sebagai contoh, asumsikan bahwa Anda memiliki dua tabel dalam database Anda: TABLE1 dan TABLE2. Kedua tabel ini bisa memiliki bidang yang disebut ID. Anda tidak bisa, bagaimanapun, memiliki dua bidang dalam TABLE1 disebut ID, bahkan jika mereka adalah jenis data yang berbeda.

Field Tipe Data

Jika Anda pernah diprogram dalam bahasa apapun, Anda akrab dengan konsep tipe data, atau jenis data yang akan disimpan dalam suatu bidang tertentu. Misalnya, tipe data karakter merupakan sebuah bidang yang menyimpan data string karakter saja. Tabel 9.2 menunjukkan jenis data yang didukung oleh Personal Oracle7.

Tabel 9.2. jenis data yang didukung oleh Personal Oracle7.

Jenis Data Komentar
CHAR Data alfanumerik dengan panjang antara 1 dan 255 karakter. Spasi melangkah ke kanan nilai untuk melengkapi dialokasikan panjang total kolom.
DATE Termasuk sebagai bagian dari tanggal adalah abad, tahun, bulan, hari, jam, menit, dan detik.
PANJANG Variabel string alfanumerik-panjang sampai 2 gigabyte. (Lihat catatan berikut.)
PANJANG RAW Binary data hingga 2 gigabyte. (Lihat catatan berikut.)
NOMOR Angka 0, positif atau negatif tetap atau floating-point data.
RAW Binary data sampai dengan 255 byte.
ROWID String heksadesimal mewakili alamat unik sebuah baris dalam tabel. (Lihat catatan berikut.)
VARCHAR2 data alfanumerik yang panjang variabel; field ini harus antara 1 dan 2.000 karakter.

CATATAN: Tipe data PANJANG sering disebut tipe data MEMO dalam sistem manajemen basis data lainnya. Hal ini terutama digunakan untuk menyimpan sejumlah besar teks untuk pencarian pada beberapa waktu kemudian.Jenis data RAW PANJANG sering disebut sebuah objek besar biner (BLOB) dalam sistem manajemen basis data lainnya. Hal ini biasanya digunakan untuk menyimpan grafik, suara, atau data video. Meskipun sistem manajemen database relasional tidak awalnya dirancang untuk melayani jenis data, saat ini banyak sistem multimedia menyimpan data mereka diRAW PANJANG, atau blob, ladang. Jenis ROWID lapangan digunakan untuk memberikan setiap record dalam tabel Anda yang unik, nonduplicating nilai. Banyak sistem database lain mendukung konsep dengan lapanganCOUNTER (Microsoft Access) atau medan IDENTITAS (SQL Server).


CATATAN: Periksa pelaksanaan untuk jenis data yang didukung karena dapat bervariasi.

Nilai NULL

SQL juga memungkinkan Anda untuk mengidentifikasi apa yang dapat disimpan dalam kolom. Sebuah nilai NULL hampir oksimoron, karena memiliki lapangan dengan nilai NULL berarti bahwa lapangan sebenarnya tidak memiliki nilai yang tersimpan di dalamnya.
Ketika bangunan meja, sistem database yang paling memungkinkan Anda untuk menunjukkan kolom dengan kata kunci NULL TIDAK. NOT NULL berarti kolom tidak dapat berisi nilai NULL untuk setiap record dalam tabel. Sebaliknya, TIDAK NULL berarti bahwa setiap catatan harus memiliki nilai aktual dalam kolom ini. Contoh berikut menggambarkan penggunaan kata kunci NULL TIDAK.
INPUT:
  SQL> CREATE TABLE BILLS ( 
   2 NAME CHAR (30) NOT NULL, 
   3 JUMLAH NOMOR, 
   4 account_id NOT NULL); 
ANALISIS:
Dalam tabel ini, Anda ingin menyimpan nama perusahaan Anda berutang uang untuk, bersama dengan jumlah tagihan itu. Jika bidang NAMA dan / atau account_id tidak disimpan, catatan akan menjadi tidak berarti. Anda akan berakhir dengan catatan dengan tagihan, namun Anda akan tidak tahu siapa yang harus Anda bayar.
Pernyataan pertama dalam contoh berikut menyisipkan catatan yang berisi data yang valid untuk tagihan yang akan dikirim ke Joe Layanan Komputer sebesar $ 25.
INPUT / OUTPUT:
  SQL> INSERT INTO NILAI BILLS ("Layanan Komputer Joe", 25, 1); 

  1 baris dimasukkan.
INPUT / OUTPUT:
  SQL> INSERT INTO NILAI BILLS ("", 25000, 1); 

  1 baris dimasukkan. 
ANALISIS:
Perhatikan bahwa catatan kedua dalam contoh sebelumnya tidak mengandung nilai NAMA. (Anda mungkin berpikir bahwa penerima pembayaran yang hilang adalah untuk keuntungan Anda karena jumlah tagihan adalah $ 25.000, tetapi kami tidak akan mempertimbangkan bahwa mengangkat.) Yang Jika tabel telah diciptakan dengan NULL TIDAK nilai untuk bidang NAMA, kedua masukkan akan kesalahan.
Aturan praktis yang baik adalah bahwa bidang kunci utama dan semua kolom kunci asing tidak boleh berisi nilai NULL.

Unik Fields

Salah satu tujuan desain Anda harus memiliki satu kolom yang unik dalam setiap tabel. Ini kolom atau bidang adalah bidang kunci primer. Beberapa sistem manajemen database memungkinkan Anda untuk mengatur medan sebagai unik. Sistem manajemen basis data lainnya, seperti Oracle dan SQL Server, memungkinkan Anda untuk membuat indeks yang unik di lapangan. (Lihat Hari 10 fitur. Ini) membuat Anda memasukkan nilai-nilai field kunci duplikat ke dalam database.
Anda harus memperhatikan beberapa hal ketika memilih bidang kunci. Seperti yang telah disebutkan, Oracle menyediakan lapangan ROWID yang bertambah untuk setiap baris yang ditambahkan, yang membuat bidang ini secara default selalu sebuah kunci yang unik. Bidang ROWID melakukan bidang utama yang sangat baik karena beberapa alasan. Pertama, adalah lebih cepat untuk bergabung pada sebuah nilai integer dari pada-karakter string 80. Hasil tersebut bergabung dalam ukuran database lebih kecil dari waktu ke waktu jika Anda menyimpan nilai integer di setiap dan asing kunci utama yang bertentangan dengan nilai CHAR panjang. Keuntungan lainnya adalah bahwa Anda dapat menggunakan ROWID bidang untuk melihat bagaimana meja diatur. Juga, menggunakan nilai CHAR daun Anda terbuka untuk sejumlah masalah entri data. Sebagai contoh, apa yang akan terjadi jika satu orang masuk 111 First Street, yang lain masuk 111 1 Street, dan lagi-lagi masuk 111 First St? Dengan lingkungan grafis pengguna hari ini, string yang benar bisa dimasukkan ke dalam kotak daftar. Ketika seorang pengguna membuat pilihan dari daftar kotak, kode tersebut akan mengkonversi string ini ke sebuah ID yang unik dan menyimpan ID ini untuk database.
Sekarang Anda dapat membuat tabel yang Anda gunakan tadi pagi. Anda akan menggunakan tabel ini selama sisa hari ini, jadi Anda akan ingin mengisinya dengan beberapa data. Gunakan perintah INSERT tertutup kemarin untuk memuat tabel dengan data pada Tabel 9.3, 9.4, dan 9,5.
INPUT / OUTPUT:
  SQL> membuat database PEMBAYARAN; 

  Pernyataan diproses. 

  SQL> BILLS membuat tabel ( 
    2 NAME CHAR (30) NOT NULL, 
    3 JUMLAH NOMOR, 
    4 account_id NUMBER NOT NULL); 

  Tabel dibuat. 

  SQL> BANK_ACCOUNTS membuat tabel ( 
    2 NOMOR account_id NOT NULL, 
    3 JENIS CHAR (30), 
    4 NERACA NOMOR, 
    5 BANK CHAR (30)); 

  Tabel dibuat. 

  SQL> membuat tabel PERUSAHAAN ( 
    2 NAME CHAR (30) NOT NULL, 
    3 ALAMAT CHAR (50), 
    4 CHAR KOTA (30), 
    5 CHAR NEGARA (2)); 

  Tabel dibuat. 

Tabel 9.3. Contoh data untuk tabel BILLS.

Nama Jumlah Account_id
Telepon Perusahaan 125 1
Power Company 75 1
Rekam Club 25 2
Software Perusahaan 250 1
Perusahaan TV kabel 35 3

Tabel 9.4. Contoh data untuk tabel BANK_ACCOUNTS.

Account_id Jenis Keseimbangan Pita
1 Memeriksa 500 Pertama Federal
2 Pasar uang 1200 Pertama Investor
3 Memeriksa 90 Credit Union

Tabel 9.5. Contoh data untuk tabel PERUSAHAAN.

Nama Alamat Kota Negara
Telepon Perusahaan 111 1 Street Atlanta GA
Power Company 222 2 Street Jacksonville FL
Rekam Club 333 3 Avenue Los Angeles CA
Software Perusahaan 444 4 Drive San Francisco CA
Perusahaan TV kabel 555 5 Drive Austin TX

Tabel Penyimpanan dan Ukuran

Kebanyakan RDBMSs utama memiliki setting default untuk ukuran meja dan lokasi tabel. Jika Anda tidak menentukan ukuran meja dan lokasi, kemudian meja akan mengambil default. The default mungkin sangat tidak diinginkan, terutama untuk tabel besar. default ukuran dan lokasi akan bervariasi antara implementasi. Berikut adalah contoh dari pernyataan CREATE TABLE dengan klausa penyimpanan (dari Oracle).
INPUT:
 SQL> CREATE TABLE tablename 2 (NOT NULL CHAR COLUMN1, 3 COLUMN2 NOMOR, 4 COLUMN3 DATE) 5 tablespace Tablespace NAMA 6 PENYIMPANAN 7 AWAL UKURAN, 8 NEXT UKURAN, 9 MINEXTENTS nilai, 10 MAXEXTENTS nilai, 11 PCTINCREAS E nilai);
OUTPUT:
  Tabel dibuat. 
ANALISIS:
Dalam Oracle Anda dapat menentukan tablespace di mana Anda ingin meja untuk tinggal. Satu keputusan biasanya dibuat sesuai dengan ruang yang tersedia, sering oleh database administrator (DBA) UKURAN. AWAL adalah ukuran untuk tingkat awal tabel (yang awal ruang yang dialokasikan) UKURAN. BERIKUTNYA adalah nilai untuk setiap luasan tambahan meja dapat berlangsung melalui pertumbuhan. MINEXTENTS dan MAXEXTENTS mengidentifikasi luasan maksimum dan minimum yang diizinkan untuk meja, dan PCTINCREASE mengidentifikasi persentase tingkat berikutnya akan meningkat setiap kali meja tumbuh, atau mengambil batas lain.

Membuat Tabel dari Tabel Ada

Yang paling umum cara untuk membuat tabel adalah dengan perintah CREATE TABLE. Namun, sistem manajemen database beberapa memberikan metode alternatif untuk menciptakan tabel, menggunakan format dan data dari tabel yang ada. Metode ini berguna bila Anda ingin memilih data dari meja untuk modifikasi sementara. Hal ini juga dapat berguna saat Anda harus membuat tabel yang sama ke tabel yang ada dan mengisinya dengan data yang sama. (Anda tidak perlu masuk kembali semua informasi ini Oracle.) Sintaks untuk berikut.
Sintaks:
 CREATE TABLE NEW_TABLE (FIELD1, FIELD2, FIELD3) AS (SELECT FIELD1, FIELD2, FIELD3 DARI <WHERE...> OLD_TABLE
sintaks ini memungkinkan Anda untuk membuat sebuah meja baru dengan jenis data yang sama dengan kolom yang dipilih dari meja tua. Hal ini juga memungkinkan Anda untuk mengubah nama field dalam tabel baru dengan memberi mereka nama-nama baru.
INPUT / OUTPUT:
  SQL> CREATE TABLE NEW_BILLS (NAMA, JUMLAH, account_id) 
    2 AS SELECT * (BILLS FROM WHERE JUMLAH <50); 

  Tabel dibuat. 
ANALISIS:
Pernyataan sebelumnya membuat tabel baru (NEW_BILLS) dengan semua catatan dari meja BILLS yang AMOUNT sebuah kurang dari 50.
Beberapa sistem database juga memungkinkan Anda untuk menggunakan sintaks berikut:
Sintaks:
  INSERT NEW_TABLE 
  SELECT <field1, field2 ...  | *> Dari OLD_TABLE 
  <WHERE...> 
Sintaks sebelumnya akan membuat tabel baru dengan struktur lapangan tepat dan data yang ditemukan di meja tua. Menggunakan-SQL server Transact SQL dalam contoh berikut menggambarkan teknik ini.
INPUT:
  INSERT NEW_BILLS 
  1 * pilih> dari BILLS mana JUMLAH <50 
  2> pergi 
(Pernyataan GO di SQL Server memproses pernyataan SQL dalam buffer perintah;. Hal ini setara dengan titik koma () digunakan dalam Oracle7.)

The ALTER TABLE Pernyataan

Berkali-kali desain database Anda tidak menjelaskan segala sesuatu yang seharusnya. Selain itu, persyaratan untuk aplikasi dan database selalu berubah. ALTER TABLE pernyataan itu memungkinkan administrator database atau desainer untuk mengubah struktur dari tabel setelah ini telah diciptakan.
ALTER TABLE Perintah ini memungkinkan Anda untuk melakukan dua hal:
  • Tambahkan kolom ke tabel yang ada
  • Mengubah kolom yang sudah ada
Sintaks untuk pernyataan ALTER TABLE adalah sebagai berikut:
Sintaks:
  ALTER TABLE table_name 
    <ADD column_name data_type; | 
    Memodifikasi column_name data_type;> 
Perubahan perintah berikut bidang NAMA tabel BILLS untuk menahan 40 karakter:
INPUT / OUTPUT:
  SQL> ALTER TABLE BILLS 
    2 memodifikasi NAME CHAR (40); 

  Tabel diubah. 

CATATAN: Anda dapat menambah atau mengurangi panjang kolom, namun Anda tidak dapat mengurangi kolom yang panjang jika ukuran saat ini salah satu nilai yang lebih besar dari nilai yang ingin Anda tetapkan ke panjang kolom.

Berikut pernyataan untuk menambahkan kolom baru ke tabel NEW_BILLS:
INPUT / OUTPUT:
  SQL> TABLE NEW_BILLS ALTER 
    2 ADD COMMENTS CHAR (80); 

  Tabel diubah. 
ANALISIS:
Pernyataan ini akan menambahkan kolom baru bernama COMMENTS mampu memegang 80 karakter. lapangan itu akan ditambahkan ke kanan semua bidang yang ada.
Beberapa pembatasan berlaku untuk menggunakan ALTER TABLE pernyataan. Anda tidak dapat menggunakannya untuk menambah atau menghapus field dari database. Hal ini dapat mengubah kolom dari NULL TIDAK NULL, tetapi belum tentu sebaliknya. Sebuah spesifikasi kolom dapat diubah dari TIDAK NULL NULL hanya jika kolom tersebut tidak mengandung nilai NULL. Untuk mengubah kolom dari NOT NULL ke NULL, gunakan sintaks berikut:
Sintaks:
  ALTER TABLE table_name memodifikasi (column_name data_type NULL); 
Untuk mengubah kolom dari NULL untuk TIDAK NULL, Anda mungkin harus mengambil beberapa langkah:
  1. Tentukan apakah kolom mempunyai nilai NULL.
  2. menemukan. Deal dengan NULL nilai-nilai yang Anda. (Hapus catatan-catatan, update kolom yang nilai, dan sebagainya.)
  3. Masalah ALTER TABLE perintah.

CATATAN: Beberapa sistem manajemen basis data mengizinkan penggunaan klausa memodifikasi; lainnya tidak. Masih lain telah menambahkan klausa lain untuk ALTER TABLElaporan. Dalam Oracle, Anda bahkan dapat mengubah parameter storage meja. Periksa dokumentasi sistem yang Anda gunakan untuk menentukan pelaksanaan ALTER TABLEpernyataan.

Pernyataan itu TABLE DROP

SQL menyediakan perintah untuk menghapus sebuah tabel dari database. The TABLE DROP perintah menghapus tabel beserta semua pandangan yang terkait dan indeks.. (Lihat Hari 10 untuk rincian) Setelah perintah ini telah diterbitkan, tidak ada jalan kembali. Yang umum menggunakan sebagian besar pernyataan DROP TABLE adalah ketika Anda telah membuat tabel untuk digunakan sementara. Ketika Anda telah menyelesaikan semua operasi di atas meja yang Anda rencanakan untuk lakukan, masalah pernyataan TABLE DROP dengan sintaks berikut:
Sintaks:
  DROP TABLE table_name; 
Berikut adalah cara untuk drop tabel NEW_BILLS:
INPUT / OUTPUT:
  SQL NEW_BILLS DROP TABLE>; 

  Tabel menjatuhkan. 
ANALISIS:
Perhatikan tidak adanya sistem prompt. Perintah ini tidak bertanya Apakah Anda yakin? (Y / N). Setelah perintah DROP TABLE dikeluarkan, tabel ini dihapus secara permanen.

PERINGATAN: Jika Anda masalah SQL NEW_BILLS DROP TABLE>; Anda dapat menjatuhkan meja yang salah. Ketika tabel menjatuhkan, Anda harus selalu menggunakan atau nama pemilik skema. Sintaks yang disarankan adalah
  SQL OWNER.NEW_BILLS DROP TABLE>;
Kami menekankan sintaks ini karena kami pernah memiliki untuk memperbaiki database produksi dari tabel yang salah yang terjatuh. Meja itu tidak benar diidentifikasi dengan nama skema. Memulihkan database adalah delapan jam kerja, dan kami harus bekerja sampai tengah malam sudah lewat.

Pernyataan itu DROP DATABASE

Beberapa sistem manajemen database juga memberikan pernyataan DROP DATABASE, yang identik dalam penggunaan dengan pernyataan DROP TABLE. Sintaks untuk pernyataan ini adalah sebagai berikut:
  DROP DATABASE database_name 
Jangan jatuhkan database BILLS sekarang karena Anda akan menggunakannya untuk sisa hari ini, serta pada Hari ke-10.

CATATAN: Database relasional implementasi berbagai mengharuskan Anda untuk mengambil langkah-erent diff untuk drop database. Setelah database terjatuh, Anda perlu membersihkan file-file sistem operasi yang membentuk basis data.


0 komentar on "Resume 8"

Posting Komentar