SELECT DAN INSERT PADA MYSQL

1 comments
SELECT, INSERT merupakan jenis perintah DML (Data Manipulation Language). Kedua perintah ini adalah query yang paling sering digunakan dalam perintah DML.

SELECT

Bentuk Umum SELECT:
SELECT
    [ALL | DISTINCT | DISTINCTROW ]
      [HIGH_PRIORITY]
      [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr ...]
    [FROM table_references
    [WHERE where_condition]
    [GROUP BY {col_name | expr | position}
      [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | position}
      [ASC | DESC], ...]
    [LIMIT {[offset,] row_count | row_count OFFSET offset}]
    [PROCEDURE procedure_name(argument_list)]
    [INTO OUTFILE 'file_name' export_options
      | INTO DUMPFILE 'file_name'
      | INTO var_name [, var_name]]
    [FOR UPDATE | LOCK IN SHARE MODE]]
Fungsi statement SELECT adalah untuk menampilkan baris record yang ada pada suatu tabel. Penggunaan statement SELECT tidak hanya sampai disitu, statement SELECT juga dapat digunakan untuk menampilkan hasil dari suatu operasi hitung.
SELECT 10 + 5;
+--------+
| 10 + 5 |
+--------+
|     15 | 
+--------+

SELECT 10 - 5;
+--------+
| 10 - 5 |
+--------+
|      5 | 
+--------+

SELECT 10 * 5;
+--------+
| 10 * 5 |
+--------+
|     50 | 
+--------+

SELECT 10 / 5;
+--------+
| 10 / 5 |
+--------+
|      2 | 
+--------+
Selain itu statement SELECT juga dapat digunakan untuk menampilkan tanggal dan waktu sekarang dengan memanfaatkan fungsi NOW() yang sudah disediakan MySQL.
SELECT NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2009-11-21 08:57:23 | 
+---------------------+
SELECT juga dapat digunakan untuk menyambung dua atau lebih tipe data yang berbeda dengan menggunakan fungsi CONCAT.
SELECT CONCAT('etap','blogs');
+------------------------+
| CONCAT('etap','blogs') |
+------------------------+
| etapblogs              | 
+------------------------+

SELECT CONCAT('etap','blogs') AS judul;
+------------------------+
| judul                  |
+------------------------+
| etapblogs              | 
+------------------------+

SELECT CONCAT(5,' ','kambing') AS jumlah;
+-----------+
| jumlah    |
+-----------+
| 5 kambing | 
+-----------+
 
SELECT CONCAT('hasil=',5 + 5) AS penjumlahan;
+-------------+
| penjumlahan |
+-------------+
| hasil=10    | 
+-------------+

SELECT CONCAT('sekarang:',NOW()) AS waktu;
+------------------------------+
| waktu                        |
+------------------------------+
| sekarang:2009-11-21 09:10:05 |  
+------------------------------+
Begitu luwesnya penggunaan statement SELECT merupakan salah satu faktor yang membuat MySQL tidak kaku tetapi powerfull. Terlepas dari itu semua, penggunaan statement SELECT lebih sering digunakan untuk menampilkan baris record pada suatu tabel. Sebagai contoh, buat database universitas dan tabel mahasiswa.
CREATE DATABASE universitas;
USE universitas;
CREATE TABLE MAHASISWA(npm VARCHAR(8) NOT NULL PRIMARY KEY,
nama VARCHAR(30) NOT NULL);
Untuk menampilkan record yang ada pada tabel mahasiswa gunakan statement SELECT.
SELECT * FROM mahasiswa;
Empty set (0.03 sec)
MySQL menampilkan pesan Empty set karena kita belum memasukkan record pada tabel mahasiswa. Untuk menambahkan record pada tabel mahasiswa diperlukan perintah INSERT.

INSERT

Bentuk Umum INSERT:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    {VALUES | VALUE} ({expr | DEFAULT},...),(...),...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]
atau
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    SET col_name={expr | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]
atau
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    SELECT ...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]
Fungsi statement INSERT adalah untuk menambahkan atau menyisipkan record baru pada suatu tabel. Sebagai contoh kita akan menambahkan record baru dengan nama Iqbal dengan npm 30107786.
INSERT INTO mahasiswa(npm,nama) VALUES('30107786','Iqbal');
Untuk melihat daftar record yang ada pada table mahasiswa, gunakan perintah SELECT.
SELECT * FROM mahasiswa;
+----------+-------+
| npm      | nama  |
+----------+-------+
| 30107786 | Iqbal |
+----------+-------+
Kita juga dapat menggunakan perintah INSERT tanpa menyebutkan nama kolomnya.
INSERT INTO mahasiswa VALUES('30107122','Etap');
SELECT * FROM mahasiswa;
+----------+-------+
| npm      | nama  |
+----------+-------+
| 30107786 | Iqbal |
| 30107122 | Etap  |
+----------+-------+

SELECT nama FROM mahasiswa;
+-------+
| nama  |
+-------+
| Iqbal |
| Etap  |
+-------+

SELECT * FROM mahasiswa WHERE npm='30107122';
+----------+-------+
| npm      | nama  |
+----------+-------+
| 30107122 | Etap  |
+----------+-------+

SELECT nama FROM mahasiswa WHERE npm='30107786';
+-------+
| nama  |
+-------+
| Iqbal |
+-------+

SELECT COUNT(*) FROM mahasiswa;
+----------+
| COUNT(*) |
+----------+
|        2 |
+----------+
COUNT pada statement SELECT adalah fungsi siap pakai yang disediakan oleh MySQL yang digunakan untuk menampilkan jumlah baris record yang ada pada tabel mahasiswa.

Good Luck..!!

Lebih baik menjadi orang bodoh yang sering berbagi daripada menjadi orang pintar yang pelit ilmu. REFERENSI

CREATE, ALTER, DAN DROP TABLE

2 comments

CREATE TABLE

Bentuk Umum CREATE TABLE:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    (create_definition,...)
    [table_options]
atau
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    [(create_definition,...)]
    [table_options]
    select_statement
atau
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    { LIKE old_tbl_name | (LIKE old_tbl_name) }

create_definition:
    col_name column_definition
  | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)
        [index_type]
  | {INDEX|KEY} [index_name] [index_type] (index_col_name,...)
        [index_type]
  | [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY]
        [index_name] [index_type] (index_col_name,...)
        [index_type]
  | {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...)
        [index_type]
  | [CONSTRAINT [symbol]] FOREIGN KEY
        [index_name] (index_col_name,...) reference_definition
  | CHECK (expr)

column_definition:
    data_type [NOT NULL | NULL] [DEFAULT default_value]
      [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
      [COMMENT 'string'] [reference_definition]

data_type:
    BIT[(length)]
  | TINYINT[(length)] [UNSIGNED] [ZEROFILL]
  | SMALLINT[(length)] [UNSIGNED] [ZEROFILL]
  | MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]
  | INT[(length)] [UNSIGNED] [ZEROFILL]
  | INTEGER[(length)] [UNSIGNED] [ZEROFILL]
  | BIGINT[(length)] [UNSIGNED] [ZEROFILL]
  | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL]
  | NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL]
  | DATE
  | TIME
  | TIMESTAMP
  | DATETIME
  | YEAR
  | CHAR[(length)]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | VARCHAR(length)
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | BINARY[(length)]
  | VARBINARY(length)
  | TINYBLOB
  | BLOB
  | MEDIUMBLOB
  | LONGBLOB
  | TINYTEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | TEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | MEDIUMTEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | LONGTEXT [BINARY]
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | ENUM(value1,value2,value3,...)
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | SET(value1,value2,value3,...)
      [CHARACTER SET charset_name] [COLLATE collation_name]
  | spatial_type

index_col_name:
    col_name [(length)] [ASC | DESC]

index_type:
    USING {BTREE | HASH | RTREE}

reference_definition:
    REFERENCES tbl_name (index_col_name,...)
      [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
      [ON DELETE reference_option]
      [ON UPDATE reference_option]

reference_option:
    RESTRICT | CASCADE | SET NULL | NO ACTION

table_options:
    table_option [[,] table_option] ...

table_option:
    {ENGINE|TYPE} [=] engine_name
  | AUTO_INCREMENT [=] value
  | AVG_ROW_LENGTH [=] value
  | [DEFAULT] CHARACTER SET [=] charset_name
  | CHECKSUM [=] {0 | 1}
  | [DEFAULT] COLLATE [=] collation_name
  | COMMENT [=] 'string'
  | CONNECTION [=] 'connect_string'
  | DATA DIRECTORY [=] 'absolute path to directory'
  | DELAY_KEY_WRITE [=] {0 | 1}
  | INDEX DIRECTORY [=] 'absolute path to directory'
  | INSERT_METHOD [=] { NO | FIRST | LAST }
  | MAX_ROWS [=] value
  | MIN_ROWS [=] value
  | PACK_KEYS [=] {0 | 1 | DEFAULT}
  | PASSWORD [=] 'string'
  | ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}
  | UNION [=] (tbl_name[,tbl_name]...)

select_statement:
    [IGNORE | REPLACE] [AS] SELECT ...   (Some legal select statement)
Fungsi statement CREATE TABLE adalah untuk menciptakan tabel baru dalam suatu database. Satu hal yang harus dipahami, syarat untuk menciptakan suatu tabel adalah tabel yang diciptakan harus terdapat sekurang-kurangnya satu kolom atau field.

Buat database baru dengan nama universitas.
CREATE DATABASE universitas;
use universitas;
Database changed
Statement use universitas digunakan untuk memilih database yang akan dipakai untuk menciptakan tabel, yaitu database universitas. Untuk menciptakan tabel baru gunakan perintah CREATE TABLE nama_tabel;. Misalkan kita akan membuat tabel dengan nama mahasiswa dengan field / kolom npm dan nama.
CREATE TABLE mahasiswa(npm VARCHAR(8) NOT NULL PRIMARY KEY,
nama VARCHAR(30) NOT NULL);
SHOW TABLES;
+-----------------------+
| Tables_in_universitas |
+-----------------------+
| mahasiswa             |
+-----------------------+

varchar(8) menyatakan bahwa kolom npm hanya bisa menampung tipe data varchar dengan panjang maksimal 8 karakter. not null menyatakan bahwa kolom tersebut tidak boleh kosong atau harus diisi. Statement primary key menyatakan data yang dimasukkan kedalam kolom tersebut haruslah unik atau tidak boleh sama. Untuk melihat struktur dari tabel mahasiswa gunakan perintah DESC nama_tabel;
DESC mahasiswa;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| npm    | varchar(8)  | NO   | PRI | NULL    |       |
| nama   | varchar(30) | NO   |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+

ALTER TABLE

Bentuk Umum ALTER TABLE:
ALTER [IGNORE] TABLE tbl_name
    alter_specification [, alter_specification] ...

alter_specification:
    table_options
  | ADD [COLUMN] col_name column_definition
        [FIRST | AFTER col_name ]
  | ADD [COLUMN] (col_name column_definition,...)
  | ADD {INDEX|KEY} [index_name]
        [index_type] (index_col_name,...) [index_type]
  | ADD [CONSTRAINT [symbol]] PRIMARY KEY
        [index_type] (index_col_name,...) [index_type]
  | ADD [CONSTRAINT [symbol]]
        UNIQUE [INDEX|KEY] [index_name]
        [index_type] (index_col_name,...) [index_type]
  | ADD [FULLTEXT|SPATIAL] [INDEX|KEY] [index_name]
        (index_col_name,...) [index_type]
  | ADD [CONSTRAINT [symbol]]
        FOREIGN KEY [index_name] (index_col_name,...)
        reference_definition
  | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
  | CHANGE [COLUMN] old_col_name new_col_name column_definition
        [FIRST|AFTER col_name]
  | MODIFY [COLUMN] col_name column_definition
        [FIRST | AFTER col_name]
  | DROP [COLUMN] col_name
  | DROP PRIMARY KEY
  | DROP {INDEX|KEY} index_name
  | DROP FOREIGN KEY fk_symbol
  | DISABLE KEYS
  | ENABLE KEYS
  | RENAME [TO] new_tbl_name
  | ORDER BY col_name [, col_name] ...
  | CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]
  | [DEFAULT] CHARACTER SET [=] charset_name [COLLATE [=] collation_name]
  | DISCARD TABLESPACE
  | IMPORT TABLESPACE

index_col_name:
    col_name [(length)] [ASC | DESC]

index_type:
    USING {BTREE | HASH | RTREE}

table_options:
    table_option [[,] table_option] ...
Fungsi statement ALTER TABLE adalah untuk mengubah struktur tabel, seperti menambah kolom, menghapus kolom, menghapus primary key, menambahkan index, dan lainnya. Berikut contoh penggunan statement ALTER:

Menambahkan kolom umur dengan type int dengan panjang maksimal 3 karakter.
ALTER TABLE mahasiswa ADD umur INT(3) NOT NULL;
DESC mahasiswa;
+--------+----------- -+
| Field  | Type        | 
+--------+-------------+
| npm    | varchar(8)  | 
| nama   | varchar(30) |
| umur   | int(3)      |
+--------+-------------+
Menambahkan kolom agama dengan tipe varchar dan diletakkan pada posisi pertama dari struktur tabel.
ALTER TABLE mahasiswa ADD agama VARCHAR(10) NOT NULL FIRST;
DESC mahasiswa;
+--------+----------- -+
| Field  | Type        | 
+--------+-------------+
| agama  | varchar(10) | 
| npm    | varchar(8)  | 
| nama   | varchar(30) |
| umur   | int(3)      |
+--------+-------------+
Menghapus primary key.
ALTER TABLE mahasiswa DROP PRIMARY KEY;
DESC mahasiswa;
+--------+-------------+------+-----+
| Field  | Type        | Null | Key |
+--------+-------------+------+-----+
| agama  | varchar(10) | NO   |     |
| npm    | varchar(8)  | NO   |     |
| nama   | varchar(30) | NO   |     |
| umur   | int(3)      | NO   |     |
+--------+-------------+------+-----+
Menambahkan primary key pada kolom npm.
ALTER TABLE mahasiswa ADD PRIMARY KEY(npm);
DESC mahasiswa;
+--------+-------------+------+-----+
| Field  | Type        | Null | Key |
+--------+-------------+------+-----+
| agama  | varchar(10) | NO   |     |
| npm    | varchar(8)  | NO   | PRI |
| nama   | varchar(30) | NO   |     |
| umur   | int(3)      | NO   |     |
+--------+-------------+------+-----+
Mengubah posisi kolom agama menjadi setelah kolom nama;
ALTER TABLE mahasiswa CHANGE agama agama varchar(10) not null AFTER nama;
DESC mahasiswa;
+--------+-------------+------+-----+
| Field  | Type        | Null | Key |
+--------+-------------+------+-----+
| npm    | varchar(8)  | NO   | PRI |
| nama   | varchar(30) | NO   |     |
| agama  | varchar(10) | NO   |     |
| umur   | int(3)      | NO   |     |
+--------+-------------+------+-----+
Mengubah kolom agama menjadi hobi dengan panjang maksimal 30 karakter.
ALTER TABLE mahasiswa CHANGE agama hobi varchar(30) not null;
DESC mahasiswa;
+--------+-------------+------+-----+
| Field  | Type        | Null | Key |
+--------+-------------+------+-----+
| npm    | varchar(8)  | NO   | PRI |
| nama   | varchar(30) | NO   |     |
| hobi   | varchar(30) | NO   |     |
| umur   | int(3)      | NO   |     |
+--------+-------------+------+-----+
Menghapus kolom hobi.
ALTER TABLE mahasiswa DROP hobi;
DESC mahasiswa;
+--------+-------------+------+-----+
| Field  | Type        | Null | Key |
+--------+-------------+------+-----+
| npm    | varchar(8)  | NO   | PRI |
| nama   | varchar(30) | NO   |     |
| umur   | int(3)      | NO   |     |
+--------+-------------+------+-----+

DROP TABLE

Bentuk Umum DROP TABLE:
DROP [TEMPORARY] TABLE [IF EXISTS]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]
Fungsi statement DROP TABLE adalah untuk menghapus tabel yang ada dalam suatu database. Tidak hanya tabel yang akan terhapus, tetapi juga semua record yang terdapat dalam tabel tersebut. Oleh karenanya, berhati-hatilah menggunakan statement ini.

Untuk menghapus tabel gunakan perintah DROP TABLE nama_table. Misalkan kita akan menghapus tabel mahasiswa.
DROP TABLE mahasiswa;
SHOW TABLES;
Empty set (0.00 sec)
Good luck..!!

INGAT! Syarat untuk menciptakan suatu tabel adalah minimal mengandung satu kolom atau field, dan jangan lupa menggunakan use nama_database untuk memilih database yang akan digunakan dalam menciptakan tabel. REFERENSI

CREATE, ALTER, DAN DROP DATABASE

6 comments
SQL (Structured Query Language) merupakan suatu bahasa yang digunakan untuk mengakses database. Hampir semua software database mengerti bahasa SQL. Oleh karenanya perintah SQL antara software database yang satu dengan lainnya kurang lebih hampir sama.

Jenis-jenis perintah dalam SQl itu sendiri dibagi menjadi tiga:
  • DDL (Data Definition Language)
  • DML (Data Manipulation Language)
  • DCL (Data Control Language)

DDL (Data Denifition Language) merupakan jenis perintah SQL yang berhubungan dengan pendefinisian objek dalam suatu database atau database itu sendiri. Terdapat 3 perintah dasar dalam statement DDL ini, yaitu CREATE, ALTER, dan DROP.

DML (Data Manipulation Language) merupakan jenis perintah SQL yang berhubungan dengan manipulasi data dan record pada suatu database. Perintah dasar dalam DML antara lain SELECT, INSERT, UPDATE, DELETE, dan lain sebagainya.

DCL (Data Control Language) merupakan jenis perintah SQL yang berhubungan dengan keamanan atau security suatu database. Contoh perintah dasar DCL adalah GRANT dan REVOKE.

Dari sekian banyak pilihan software database, salah satu yang sering menjadi andalan para webmaster adalah MySQL. Karena selain freeware, MySQL juga cocok digunakan untuk orang yang baru belajar dunia per-database-an seperti saya.

Jenis perintah MySQL pun dibagi menjadi tiga, yaitu DDL, DML, DCL. Kita akan bahas satu-persatu mulai dari DDL. Salah satu statement DDL yang sudah pasti digunakan adalah CREATE, ALTER, dan DROP DATABASE.

CREATE DATABASE

Bentuk Umum CREATE DATABASE:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_specification] ...

create_specification:
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name
Fungsi statement CREATE DATABASE adalah untuk menciptakan database baru. Perintah ini fungsinya sama dengan statement CREATE SCHEMA. Jalankan MySQL console , ketikkan perintah SHOW DATABASES untuk melihat daftar database apa saja yang ada dalam MySQL.
SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| phpmyadmin         |
| test               |
+--------------------+
Maka akan tampil semua database yang ada dalam MySQL. Untuk membuat database ketikkan pada MySQL console CREATE DATABASE nama_database;. Misalkan kita akan menciptakan database baru dengan nama universitas.
CREATE DATABASE universitas;
Gunakan perintah SHOW DATABASES untuk melihat database yang baru saja kita buat.
SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| phpmyadmin         |
| test               |
| universitas        |
+--------------------+

ALTER DATABASE

Bentuk Umum ALTER DATABASE:
ALTER {DATABASE | SCHEMA} [db_name]
    alter_specification ...

alter_specification:
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name
Fungsi statement ALTER DATABASE adalah untuk mengubah characteristic suatu database yang biasanya disimpan di dalam file db.opt. Perintah ini jarang sekali digunakan. ALTER DATABASE memiliki fungsi yang sama dengan ALTER SCHEMA.

DROP DATABASE

Bentuk Umum DROP DATABASE:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
Fungsi statement DROP DATABASE adalah untuk menghapus database. Satu hal yang perlu diperhatikan ialah, MySQL tidak akan memberi konfirmasi penghapusan database jika anda menggunakan statement ini. Oleh karenanya anda harus berhati-hati menggunakan statement ini karena semua record, tabel dan objek yang ada dalam database anda akan ikut hilang bersama database yang anda hapus. Misalkan kita akan menghapus database universitas yang kita buat tadi.
DROP DATABASE universitas;
Gunakan perintah SHOW DATABASES untuk melihat daftar database.
SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| phpmyadmin         |
| test               |
+--------------------+
OK..!! Sekian dulu tutorial kali ini.

CREATE SCHEMA nama_database memiliki fungsi yang sama dengan CREATE DATABASE nama_database. Cobalah! REFERENSI