엘리스트랙
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