MYSQL Veritabanı Kullanımı | MYSQL Sorgular ve Örnekler

23 Haziran 2023 178 Okuma süresi: 3 dakika

Yapttığımız projelerde kullandığımız veritabanlarından biri de ücretsiz hizmet sunan MYSQL veritabanıdır. Peki MYSQL veritabanı kullanırken bize projemiz için gerekli sorguları nasıl yaza biliriz? Aşağıdakı örneklerde iki tablo kullanarak MYSQL sorgu sintaksisini anlatmaya çalışacağım.

users
- id
- fullName
- phone
- birthday
- regDate

books
- id
- userIid
- bookName 
- createDate

Tüm kullanıcıları listelemek için:

SELECT * FROM users;

Kullanıcının adı, telefonu ve doğum tarihini almak için:

SELECT fullName, phone, birthday FROM users;

Belirli bir kullanıcının bilgilerini almak için (fullName'i 'John Doe' olan kullanıcı için):

SELECT * FROM users WHERE fullName = 'John Doe';

Kullanıcının adı ve kayıt tarihini, kitap adıyla birlikte almak için:

SELECT u.fullName, u.regDate, b.bookName
FROM users u
JOIN books b ON u.id = b.userId;

Belirli bir tarih aralığındaki kitapların adını, oluşturulma tarihini ve ilgili kullanıcının tam adını almak için:

SELECT b.bookName, b.createDate, u.fullName
FROM books b
JOIN users u ON u.id = b.userId
WHERE b.createDate BETWEEN 'başlangıçTarihi' AND 'bitişTarihi';

Burada 'başlangıçTarihi' ve 'bitişTarihi' yerine istediğiniz tarih aralığını belirtmeniz gerekmektedir.

Kullanıcının adı, telefonu ve kitap sayısını almak için:

SELECT u.fullName, u.phone, COUNT(b.id) AS kitapSayisi
FROM users u
LEFT JOIN books b ON u.id = b.userId
GROUP BY u.fullName, u.phone;

Yaşı 20'den büyük olan kullanıcılara ait kitapları listelemek için aşağıdaki SQL sorgusunu kullanabilirsiniz:

SELECT u.fullName, b.bookName
FROM users u
JOIN books b ON u.id = b.userId
WHERE TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) > 20;

Son 30 günde eklenen kitaplar ve sahiplerinin adını listelemek için aşağıdaki SQL sorgusunu kullanabilirsiniz:

SELECT u.fullName, b.bookName
FROM users u
JOIN books b ON u.id = b.userId
WHERE b.createDate >= DATE_SUB(CURDATE(), INTERVAL 30 DAY);

Yeni bir kullanıcı eklemek için aşağıdaki SQL sorgusunu kullanabilirsiniz:

INSERT INTO users (fullName, phone, birthday, regDate)
VALUES ('Yeni Kullanıcı Adı', 'Yeni Kullanıcı Telefonu', 'Yeni Kullanıcı Doğum Tarihi', CURDATE());

Kullanıcı adını güncellemek için aşağıdaki SQL sorgusunu kullanabilirsiniz:

UPDATE users
SET fullName = 'Yeni Kullanıcı Adı'
WHERE id = 'Kullanıcı ID';

Kullanıcıyı silmek için aşağıdaki SQL sorgusunu kullanabilirsiniz:

DELETE FROM users
WHERE id = 'Kullanıcı ID';

Hiç kitabı olmayan kullanıcıları silmek için aşağıdaki SQL sorgusunu kullanabilirsiniz:

DELETE FROM users
WHERE id NOT IN (SELECT DISTINCT userId FROM books);

Yeni bir kullanıcı eklemek için MySQL'de bir stored procedure (saklı procedure) oluşturabilirsiniz. İşte bir örnek:


DELIMITER //
CREATE PROCEDURE AddNewUser(
    IN p_fullName VARCHAR(255),
    IN p_phone VARCHAR(255),
    IN p_birthday DATE
)

BEGIN
    INSERT INTO users (fullName, phone, birthday, regDate)
    VALUES (p_fullName, p_phone, p_birthday, CURDATE());
END //

DELIMITER ;

Kullanıcı adını güncellemek için MySQL'de bir stored procedure (saklı procedure) oluşturabilirsiniz. İşte bir örnek:

DELIMITER //
CREATE PROCEDURE UpdateUserName(
    IN p_userId INT,
    IN p_newFullName VARCHAR(255)
)

BEGIN
    UPDATE users
    SET fullName = p_newFullName
    WHERE id = p_userId;
END //

DELIMITER ;

Yukarıdaki SQL sorgularında, "users" ve "books" tablolarını kullanarak veritabanından istediğiniz verileri çekebilirsiniz. Sorguları veritabanınıza uygun şekilde düzenleyebilirsiniz.

Benzer makaleler