mysql komutları (mysql commands)

Giriş yapmak ;

 [mysql_dir]/bin/mysql -u root -p 

Bir database yaratmak (ek olarak default character set ve collate ekleyebilirsiniz) ;

 mysql> create database [database_name]; 

Tüm databaseleri listelemek ;

 mysql> show databases; 

Bir database seçmek ;

 mysql> use [database_name] ;

Seçtiğimiz databasede bulunan tüm tablaları görmek ;

 mysql> show tables; 

Tablonun yapısını görmek ;

 mysql> describe [table_name] ;

Database silmek ;

 mysql> drop database [database_name] ;

Tablo silmek ;

 mysql> drop table [table_name] ;

Tablodaki bütün verileri görmek ;

 mysql> SELECT * FROM [table_name];

Tablodaki sütunları ve özelliklerini görmek ;

 mysql> show columns from [table_name];

Tablodaki verileri bir kritere göre listelemek ;

 mysql> SELECT * FROM [table_name] WHERE [field_name] = "kriter";

Tabloda name sütunundaki veri ‘Ahmet’ ve phone sütunundaki veri ‘123123123’ olan verileri listelemek ;

 mysql> SELECT * FROM [table_name] WHERE name = "Ahmet" AND phone = ""123123123";

Tabloda name sütunundaki veri ‘Ahmet’ olmayan ve phone sütunundaki veri ‘789789789’ olan verileri numara sırasında göre listelemek ;

 mysql> SELECT * FROM [table_name] WHERE name != "Ahmet" AND phone = "789789789" ORDER BY phone;

Tabloda name sütunundaki veri ‘Ahmet’ ile başlayan ve phone sütununda ‘123123123’ olan verileri listelemek ;

 mysql> SELECT * FROM [table_name] WHERE name = 'Ahmet%' AND phone = "123123123";

Tabloda name sütunundaki veri ‘Ahmet’ ile başlayan ve phone sütununda ‘123123123’ olan verileri 1,5 aralığında (5 adet) listelemek ;

 mysql> SELECT * FROM [table_name] WHERE name = 'Ahmet%' AND phone = '123123123' LIMIT 1,5 ;

Tabloda rec sütunundaki veri ‘a’ ile başlayan verileri listelemek ;

 mysql> SELECT * FROM [table_name] WHERE rec RLIKE '^a';

Bir sütundaki unique verileri listelemek ;

 mysql> SELECT DISTINCT [column_name] FROM [table_name];

Tabloda belirlediğimiz sütundaki verileri belirleriğimiz bir artma(ascending – ASC) veya azalma(descenging – DESC) sırasına göre listeler;

 mysql> SELECT [column_1], [column_2] FROM [table_name] ORDER BY [column_2] ASC;

Tablodaki satır sayısını verir ;

 mysql> SELECT count(*) FROM [table_name];

Sütundaki toplam değeri verir ;

 mysql> SELECT SUM(column) FROM [table_name];

BUNU TEKRAR YAP. Tabloları join etme ;

 mysql> ;

Yeni bir kullanıcı yaratıp root olarak giriş yapma ;

mysql -u root -p
mysql> use mysql;
mysql> INSERT INTO user (Host, User, Password) VALUES ('%', 'username', PASSWORD('password'));
mysql> flush privileges; 

Kullanıcının şifresini değiştirme ;

 mysql> SET PASSWORD FOR 'user'@'hostname' = PASSWORD('password');
 mysql> flush privileges;

mysql root password geri almak (mysql server işlemini durduruyoruz, skip-grant-tables yaparak mysql’e root olarak giriş yapıyoruz. yeni şifreyi set ediyoruz, sonra mysql’i restart ediyoruz. );

/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables
mysql -u root
mysql> use mysql;
mysql> UPDATE user SET password=PASSWORD("newrootpassword") WHERE User='root';
mysql> flush privileges;
mysql> quit
/etc/init.d/mysql stop
/etc/init.d/mysql start 

root şifresi hiç değiştirilmediyse, bir şifre vermek için ;

 mysqladmin -u root password newpassoword ;

root şifresini değiştirme ;

 mysqladmin -u root oldpassword newpassword ;

‘ahmet’ isimli kullanıcıya “pass” şifresi erişim izni verme;

 mysql> use mysql;
mysql> grant usage on *.* to ahmet@localhost identified by 'pass';
mysql> flush privileges; 

Veritabanı için kullanıcıya yetki vermek (2 yolu vardır). ;
1 )

 # mysql -u root -p
mysql> use mysql;
mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ('%','databasename','username','Y','Y','Y','Y','Y','N');
mysql> flush privileges;  ;

2 )

 mysql> grant all privileges on databasename.* to username@localhost;
mysql> flush privileges; ;

Update işlemi ;

 mysql> UPDATE [table_name] SET [column_1] = 'A', [column_2] = 'B' WHERE [field_name] 'user'; 

Tablodan satır silmek ;

 mysql> DELETE FROM [table_name] where [phone] = '123123123';

Dosya izinlerini güncellemek;

 mysql> flush privileges;

Tablodan bir sütun silmek ;

 mysql> ALTER TABLE [table_name] DROP COLUMN [column_name];

Tabloya bir sütun eklemek ;

 mysql> ALTER TABLE [table_name] ADD COLUMN [new_column_name] varchar(30);

Tablodan bir sütunun ismi değiştirme ;

 mysql> ALTER TABLE [table_name] CHANGE [old_column_name] [new_column_name];

Bir sütunu unique hale getirmek ;

 mysql> ALTER TABLE [table_name] ADD UNIQUE ([column_name]);

Tablodaki bir sütunun yapısını düzenlemek (düzenlemeden önce varchar(50) olduğunu varsayalım);

 mysql> ALTER TABLE [table_name] MODIFY [column_name] varchar(30);

Tablodaki bir sütunun unique keyini kaldırmak ;

 mysql> ALTER TABLE [table_name] DROP INDEX [column_name];

CSV dosyasını tabloya aktarmak ;

 mysql> LOAD DATA INFILE 'filename.csv' REPLACE INTO TABLE [table_name] FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (field1, field2, field3)  ;

Tüm veritabanlarını yedeklemek ;

 mysqldump -u root -p --opt > alldatabase.sql ;

Tek bir veritabanını yedeklemek ;

 mysqldump -u root -p --databases databasename1 > database1.sql ;

Bir veritabanından tek bir tabloyu yedeklemek ;

 mysqldump -u root -p databasename tablename > database.table.sql ;

Veritabanı içe aktarmak, onarmak ;

 mysqldump -u root -p databasename < database.sql ;

Tablo oluşturma örneği ;

 mysql > CREATE TABLE IF NOT EXISTS `settings` (
  `settings_id` int(11) NOT NULL AUTO_INCREMENT,
  `settings_name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `status` enum('on','off') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'on',
  PRIMARY KEY (`settings_id`)
) ;

Bu yazı buradaki yazıdan türkçeye çevirilmiştir.