03/12/2019

SQL – 4 SQL Komutları

Öncelikle scriptte kullandığımız basit komutları ekliyorum. Bunlar çok opsiyonu olmayan komutlar. Olsada benim önüme gelecek sınavda çok dert değil.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| SofaAG             |
| grandhotel         |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
5 rows in set (0.33 sec)
MariaDB [(none)]> use SofaAG;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [SofaAG]>

EXPLAIN TABLE

bir table in attributelarını görmek için.

MariaDB [SofaAG]> show tables;
+------------------+
| Tables_in_SofaAG |
+------------------+
| t_aufbau         |
| t_bestellpos     |
| t_plattform      |
| t_sonder         |
+------------------+
4 rows in set (0.00 sec)

MariaDB [SofaAG]> explain t_plattform;
+-------------------+-------------+------+-----+---------+-------+
| Field             | Type        | Null | Key | Default | Extra |
+-------------------+-------------+------+-----+---------+-------+
| platt_nr          | int(11)     | NO   | PRI | NULL    |       |
| hersteller_nr     | int(11)     | YES  |     | NULL    |       |
| typ               | varchar(20) | YES  |     | NULL    |       |
| motor             | varchar(40) | YES  |     | NULL    |       |
| leistung_in_kw    | int(11)     | YES  |     | NULL    |       |
| hubraum           | int(11)     | YES  |     | NULL    |       |
| getriebe          | varchar(20) | YES  |     | NULL    |       |
| kabine            | varchar(20) | YES  |     | NULL    |       |
| lieferzeit_tage   | int(11)     | YES  |     | NULL    |       |
| verrechnungspreis | float(10,2) | YES  |     | NULL    |       |
+-------------------+-------------+------+-----+---------+-------+
10 rows in set (0.32 sec)

tek satılıklar

drop database grandhotel;
create database grandhotel;
use grandhotel;

Use ile DB’yi seçiyoruz, çünkü RDBM (Relational Database Manager- MySQL, MSSQL, Oracle..) üzerinde birden çok DB olabilir. (bizde de SofaAG ve grandhotel)

Drop database ile de siliyoruz. E tabii “create database” ile de oluşturuyoruz.

table oluşturma

create table Kategorie (kategorie_id integer auto_increment,kat_bezeichnung varchar(20),kat_preis_EZ float, kart_preis_DZ float, primary key (kategorie_id));

Daha önce bahsetmiştik bir table ın yapısı nasıldır ne nedir diye

https://linux.buyukburc.de/2019/05/26/veritabani-giris-1/

İşte şimdi bu table ı oluşturacağız. Oluştururken tablo adını ve ilişki şemasını tek bir komutta veriyoruz. İlişki şeması (sütunların adı ve tipi)

Create table <table_adi> ( <sütun_adı> <Sütun_veri_tipi>, <sütun_adı> <Sütun_veri_tipi> , … primary key (<primary key olacak sütun adı>));

Daha sonra bu oluşturduğumuz tabloyu yukarıda ki örnekte olduğu gibi “explain” komutu ile görebiliriz.

Daha sonra sütunlara veri girmek için :

insert into Kategorie (kat_bezeichnung,kat_preis_EZ,kart_preis_DZ) values ("Standard","70","100");

insert into <table_adı> (<sütun_1_adı>, <sütun_2_adı> , <sütun_3_adı>,…..) values ( “<sütun_1_entity_attribut_değeri>“, “<sütun_1_entity_attribut_değeri>” , “<sütun_1_entity_attribut_değeri>” ,…..);

şimdi diyelim ki bir tabloya yeni birşey eklemek istiyoruz.

MariaDB [grandhotel]> explain Zimmer;
+--------------+---------+------+-----+---------+-------+
| Field        | Type    | Null | Key | Default | Extra |
+--------------+---------+------+-----+---------+-------+
| zimmer_id    | int(11) | NO   | PRI | NULL    |       |
| kategorie_id | int(11) | YES  |     | NULL    |       |
+--------------+---------+------+-----+---------+-------+

görüldüğü gibi tabloda sadece 2 sütun var. Mesela tip sütununu eklemek istiyorum. böylece oda eskimi, yenilenmişmi yoksa tadilatta mı onuda ekleyeceğim.

MariaDB [grandhotel]> alter table Zimmer add status varchar(5);
Query OK, 0 rows affected (0.38 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [grandhotel]> explain Zimmer;
+--------------+------------+------+-----+---------+-------+
| Field        | Type       | Null | Key | Default | Extra |
+--------------+------------+------+-----+---------+-------+
| zimmer_id    | int(11)    | NO   | PRI | NULL    |       |
| kategorie_id | int(11)    | YES  |     | NULL    |       |
| status       | varchar(5) | YES  |     | NULL    |       |
+--------------+------------+------+-----+---------+-------+

görüldüğü gibi Status sütununu ekledik. Ama sütun bütün entitiylerde boş kaldı. Şimdi onu ekleyelim. Öncesi ve sonrası ile :

UPDATE <TABLE> SET

MariaDB [grandhotel]> select * from Zimmer;
+-----------+--------------+--------+
| zimmer_id | kategorie_id | status |
+-----------+--------------+--------+
|       101 |            1 | NULL   |
|       102 |            1 | NULL   |
|       103 |            1 | NULL   |
|       104 |            2 | NULL   |
+-----------+--------------+--------+
4 rows in set (0.00 sec)

MariaDB [grandhotel]> update Zimmer set status="tadil" where zimmer_id="101";
Query OK, 1 row affected (0.31 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [grandhotel]> select * from Zimmer;
+-----------+--------------+--------+
| zimmer_id | kategorie_id | status |
+-----------+--------------+--------+
|       101 |            1 | tadil  |
|       102 |            1 | NULL   |
|       103 |            1 | NULL   |
|       104 |            2 | NULL   |
+-----------+--------------+--------+
4 rows in set (0.00 sec)

Şimdi eğer yanlış bir satır girersek onu nasıl sileriz.

DELETE FROM

MariaDB [grandhotel]> select * from Zimmer;
+-----------+--------------+--------+
| zimmer_id | kategorie_id | status |
+-----------+--------------+--------+
|         0 |         NULL | tadil  |
|       101 |            1 | 1      |
|       102 |            1 | 1      |
|       103 |            1 | 1      |
|       104 |            2 | 1      |
+-----------+--------------+--------+
5 rows in set (0.00 sec)

MariaDB [grandhotel]> delete from Zimmer where status="tadil";
Query OK, 1 row affected (0.31 sec)

MariaDB [grandhotel]> select * from Zimmer;
+-----------+--------------+--------+
| zimmer_id | kategorie_id | status |
+-----------+--------------+--------+
|       101 |            1 | 1      |
|       102 |            1 | 1      |
|       103 |            1 | 1      |
|       104 |            2 | 1      |
+-----------+--------------+--------+
4 rows in set (0.00 sec)

Eklediğimiz sütunu silmek için :

ALTER TABLE <TABLE_ADI> DROP <SÜTUN_ADI>;

MariaDB [grandhotel]> select * from Zimmer;
+-----------+--------------+--------+
| zimmer_id | kategorie_id | status |
+-----------+--------------+--------+
|       101 |            1 | 1      |
|       102 |            1 | 1      |
|       103 |            1 | 1      |
|       104 |            2 | 1      |
+-----------+--------------+--------+
4 rows in set (0.00 sec)

MariaDB [grandhotel]> alter table Zimmer drop status;
Query OK, 0 rows affected (0.42 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [grandhotel]> select * from Zimmer;
+-----------+--------------+
| zimmer_id | kategorie_id |
+-----------+--------------+
|       101 |            1 |
|       102 |            1 |
|       103 |            1 |
|       104 |            2 |
+-----------+--------------+
4 rows in set (0.00 sec)

Leave a Reply