엘리스트랙

SQL 복습!

Zmann 2023. 12. 24. 01:13
728x90

 

 

 

테이블 생성

CREATE TABLE users (
  id INT PRIMARY KEY,
  username VARCHAR(50) NOT NULL,
  email VARCHAR(100) NOT NULL,
  birthdate DATE,
);

 

테이블 확인

SHOW TABLES //데이터베이스의 테이블 목록 확인
DESC users //테이블의 구조 확인

 

 

데이터 삽입

INSERT INTO users (id, username, email, birthdate)
VALUES
  (1, 'john_doe', 'john.doe@example.com', '1990-01-01'),
  (2, 'jane_smith', 'jane.smith@example.com', '1985-05-15');

 

데이터 갱신

UPDATE users
SET username = 'new_username'
WHERE id = 1;

 

데이터 출력

SELECT * FROM users; //유저 테이블의 모든 데이터 조회
SELECT id, username FROM users; //유저 테이블의 id와 이름 조회
SELECT * FROM users WHERE birthdate > '1990-01-01'; //유저 테이블에서 생일이 1990-01-01 이후인 사람의 데이터 조회

 

 

열 추가

ALTER TABLE users
ADD COLUMN phone_number VARCHAR(20);

 

열 삭제

ALTER TABLE users
DROP COLUMN phone_number;

 

열 수정

ALTER TABLE users
MODIFY COLUMN email VARCHAR(150);

 

기본값 추가

ALTER TABLE users
ALTER COLUMN birthdate SET DEFAULT '2000-01-01';

 

외래키 추가

ALTER TABLE orders
ADD CONSTRAINT fk_user_id
FOREIGN KEY (user_id)
REFERENCES users(id);

 

테이블 삭제

DROP TABLE users;

 

 

데이터 정렬

SELECT * FROM users
WHERE birthdate < '2000-01-01';

 

데이터 정렬 후 조건

SELECT YEAR(birthdate) AS birth_year, COUNT(*) AS user_count
FROM users
GROUP BY birth_year
HAVING COUNT(*) > 1;

 

테이블 연결(조인)

SELECT users.username, orders.order_id
FROM users
INNER JOIN orders ON users.id = orders.user_id;

 

 

서브쿼리

SELECT username, email
FROM users
WHERE birthdate > (SELECT birthdate FROM users WHERE username = 'john_doe');

 

 

 

 

728x90