Upload
ismael-picot
View
250
Download
0
Embed Size (px)
Citation preview
VTYS 2012Mehmet Emin KORKUSUZ
Ders -
03
Create Alter Drop
Data Defination Language
Database Table Procedure ve Function Index View Trigger
Create
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_specification:
[DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
Create Database
create database if not exist Bilgi_Sistemichar set utf8collate utf8_turkish_ci;
Default
create database if not exist Bilgi_Sistemidefault char set utf8default collate utf8_turkish_ci;
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options]
Create Table
CREATE TABLE ornek( id INT, data VARCHAR(100) );
{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}
Table Options
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]...)
Table Options
Storage Engine Description
InnoDB Transaction-safe tables with row locking and foreign keys. The default storage engine for new tables. See Section 13.2, “The InnoDB Storage Engine”, and in particular Section 13.2.1.1, “InnoDB as the Default MySQL Storage Engine” if you have MySQL experience but are new to InnoDB.
MyISAM The binary portable storage engine that is primarily used for read-only or read-mostly workloads. See Section 13.3, “The MyISAM Storage Engine”.
MEMORY The data for this storage engine is stored only in memory. See Section 13.4, “The MEMORY Storage Engine”.
CSV Tables that store rows in comma-separated values format. See Section 13.5, “The CSV Storage Engine”.
ARCHIVE The archiving storage engine. See Section 13.6, “The ARCHIVE Storage Engine”.
EXAMPLE An example engine. See Section 13.10, “The EXAMPLE Storage Engine”.
FEDERATED Storage engine that accesses remote tables. See Section 13.9, “The FEDERATED Storage Engine”.
HEAP This is a synonym for MEMORY.
MERGE A collection of MyISAM tables used as one table. Also known as MRG_MyISAM. See Section 13.8, “The MERGE Storage Engine”.
ISAM(OBSOLETE) Not available in MySQL 5.6. If you are upgrading to MySQL 5.6 from a previous version, you should convert any existing ISAM tables to MyISAM beforeperforming the upgrade.
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]
integerType Storage Minimum Value Maximum Value
(Bytes) (Signed/Unsigned) Signed/Unsigned)
TINYINT 1 -128 127
0 255
SMALLINT 2 -32768 32767
0 65535
MEDIUMINT 3 -8388608 8388607
0 16777215
INT 4 -2147483648 2147483647
0 4294967295
BIGINT 8 -9223372036854775808 9223372036854775807
0 18446744073709551615
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)
Data Type
Date-Time
Data Type “Zero” Value
DATE '0000-00-00'
TIME '00:00:00'
DATETIME '0000-00-00 00:00:00'
TIMESTAMP '0000-00-00 00:00:00'
YEAR 0000
Char - Varchar
Value CHAR(4) Storage Required
VARCHAR(4)
Storage Required
'' ' ' 4 bytes '' 1 byte
'ab' 'ab ' 4 bytes 'ab' 3 bytes
'abcd' 'abcd' 4 bytes 'abcd' 5 bytes
'abcdefgh' 'abcd' 4 bytes 'abcd' 5 bytes
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]
enum
CREATE TABLE sizes ( name ENUM('small', 'medium', 'large') );
ENUM('one', 'two', 'three')
Value Index
NULL NULL
'' 0
'one' 1
'two' 2
'three' 3
set
CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));
INSERT INTO myset (col) VALUES -> ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');
CHAR(M) M × w bytes, 0 <= M <= 255, where w is the number of bytes required for the maximum-length character in the character set
BINARY(M) M bytes, 0 <= M <= 255
VARCHAR(M), VARBINARY(M) L + 1 bytes if column values require 0 – 255 bytes, L + 2 bytes if values may require more than 255 bytes
TINYBLOB, TINYTEXT L + 1 bytes, where L < 28
BLOB, TEXT L + 2 bytes, where L < 216
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 224
LONGBLOB, LONGTEXT L + 4 bytes, where L < 232
ENUM('value1','value2',...) 1 or 2 bytes, depending on the number of enumeration values (65,535 values maximum)
SET('value1','value2',...) 1, 2, 3, 4, or 8 bytes, depending on the number of set members (64 members maximum)
Diğer tipler
Other Vendor Type MySQL Type
BOOL TINYINT
BOOLEAN TINYINT
CHARACTER VARYING(M) VARCHAR(M)
FIXED DECIMAL
FLOAT4 FLOAT
FLOAT8 DOUBLE
INT1 TINYINT
INT2 SMALLINT
INT3 MEDIUMINT
INT4 INT
INT8 BIGINT
LONG VARBINARY MEDIUMBLOB
LONG VARCHAR MEDIUMTEXT
LONG MEDIUMTEXT
MIDDLEINT MEDIUMINT
NUMERIC DECIMAL
Mevcut Tabloyu Kopyalamak
CREATE TABLE new_tbl SELECT * FROM orig_tbl;
CREATE TABLE new_tbl LIKE orig_tbl;
Alter database
ALTER {DATABASE | SCHEMA} [db_name] alter_specification ...
ALTER {DATABASE | SCHEMA} db_name UPGRADE DATA DIRECTORY NAME
alter_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name
Alter table
ALTER [IGNORE] TABLE tbl_name [alter_specification [, alter_specification] ...] [partition_options]
Add Change Modify Drop Rename Order by
ALTER TABLE Example ADD ID INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (ID);
ALTER TABLE Example ADD UNIQUE (URL); ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT FIRST; ALTER TABLE testalter_tbl DROP i; ALTER TABLE testalter_tbl ADD i INT AFTER c;
ALTER TABLE testalter_tbl MODIFY c CHAR(10);
ALTER TABLE testalter_tbl CHANGE i j BIGINT; ALTER TABLE testalter_tbl CHANGE j j INT; ALTER TABLE testalter_tbl MODIFY j BIGINT
NOT NULL DEFAULT 100;
ALTER TABLE testalter_tbl engine= MYISAM; SHOW TABLE STATUS LIKE 'testalter_tbl‘; ALTER TABLE testalter_tbl RENAME TO
alter_tbl; ALTER TABLE testalter_tbl ORDER BY name;
rename
RENAME TABLE old_table TO backup_table, new_table TO old_table;
truncate
Truncate old_friends;
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
Drop if exists veritabani;
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE]
Drop tablo;
Drop
Veri GirişiLoad data, insert
LOAD DATA INFILE
[LOCAL] [LOW_PRIORITY | CONCURRENT]
[LOCAL] ifadesi veri alınacak dosyanın yerelde yani bu bilgisayarda olduğunu ifade eder.
[LOW_PRIORITY] Veri tabanından bilgi istenirken işlem önceliğinin olmayacağını belirten bir komuttur.
[CONCURRENT] ifadesi ise veri tabanında bilgi istenildiği zaman eş zamanlı olarak çağırmak içindir.
LOAD DATA [LOCAL] INFILE
“C:/Users/Desktop/açık_dosya_adı”
INTO TABLE tablo_ad
COLUMNS ESCAPED BY “,”
LINES TERMINATED BY “-”;
Select into outfile
Select into outfile load data infile komutunun tam tersini yapmaktadır.
Tablodaki verileri harici bir dosyaya yazdırmaya yarar.
SELECT * INTO OUTFILE “dosya_yolu” [FIELDS | COLUMNS] [TERMINATED | ESCAPED] BY “karekter”
LINES [TERMINATED | STARTING] BY “karakter”FROM tablo_adı;
UYGULAMA
SELECT * INTO OUTFILE “C:/Users/Desktop/dosya_adı_ve_uzantısı” INTO TABLE tablo_adı COLUMNS ESCAPED BY “,” LINES TERMINATED BY “-” FROM tablo_ad;
SELECT alan1,alan2,alan7 INTO OUTFILE“C:/Users/Desktop/dosya_adı_ve_uzantısı”INTO TABLE tablo_adı
COLUMNS ESCAPED BY “;”LINES TERMINATED BY “\n”
FROM tablo_ad;