mysql -u root -p
Windows CMD에서 root 계정으로 접속합니다.
접속, 데이터베이스, 테이블, 조회, 수정, 집계, 조인, 권한, 트랜잭션 핵심 명령
;을 붙입니다.mysql -u root -p
Windows CMD에서 root 계정으로 접속합니다.
EXIT;
QUIT;도 같은 기능을 합니다.
SHOW DATABASES;
서버의 데이터베이스 목록을 확인합니다.
CREATE DATABASE school_db;
school_db를 생성합니다.
USE school_db;
작업할 데이터베이스를 선택합니다.
SELECT DATABASE();
현재 선택된 데이터베이스를 확인합니다.
DROP DATABASE school_db;
데이터베이스를 삭제합니다.
SHOW TABLES;
현재 데이터베이스의 테이블 목록을 확인합니다.
CREATE TABLE student (
id INT PRIMARY KEY,
name VARCHAR(20),
score INT
);학생 테이블을 생성합니다.
DESC student;
DESCRIBE student;와 같습니다.
SHOW CREATE TABLE student;
테이블 생성 SQL을 확인합니다.
DROP TABLE student;
테이블 구조와 데이터를 삭제합니다.
INSERT INTO student VALUES (1, '홍길동', 95);
한 행을 추가합니다.
INSERT INTO student VALUES (2, '김철수', 88), (3, '이영희', 91);
여러 행을 한 번에 추가합니다.
INSERT INTO student (id, name, score) VALUES (4, '박민수', 99);
입력할 열을 명시합니다.
SELECT * FROM student;
모든 열과 행을 조회합니다.
SELECT name, score FROM student;
필요한 열만 조회합니다.
SELECT * FROM student WHERE score >= 90;
90점 이상인 학생을 조회합니다.
SELECT * FROM student WHERE score BETWEEN 80 AND 100;
80점 이상 100점 이하를 조회합니다.
SELECT * FROM student WHERE id IN (1, 3, 5);
지정한 값과 일치하는 행을 조회합니다.
SELECT * FROM student WHERE name LIKE '김%';
이름이 김으로 시작하는 학생을 조회합니다.
SELECT * FROM student WHERE score IS NULL;
점수가 없는 행을 조회합니다.
SELECT * FROM student ORDER BY score DESC;
점수 내림차순으로 정렬합니다.
SELECT DISTINCT class FROM student;
중복 값을 제거합니다.
SELECT * FROM student LIMIT 5;
앞의 5개 행만 조회합니다.
UPDATE student SET score = 100 WHERE id = 1;
id가 1인 학생의 점수를 수정합니다.
DELETE FROM student WHERE id = 2;
id가 2인 행만 삭제합니다.
DELETE FROM student;
구조는 남기고 모든 행을 삭제합니다.
SELECT COUNT(*) FROM student;
행의 개수를 계산합니다.
SELECT AVG(score) FROM student;
점수 평균을 계산합니다.
SELECT SUM(score), MAX(score), MIN(score) FROM student;
합계, 최댓값, 최솟값을 계산합니다.
SELECT class, AVG(score) FROM student GROUP BY class;
반별 평균을 계산합니다.
SELECT class, AVG(score) FROM student GROUP BY class HAVING AVG(score) >= 90;
평균이 90 이상인 그룹만 조회합니다.
ALTER TABLE student ADD age INT;
age 열을 추가합니다.
ALTER TABLE student DROP COLUMN age;
age 열을 삭제합니다.
ALTER TABLE student CHANGE name student_name VARCHAR(30);
열 이름과 자료형을 변경합니다.
CREATE TABLE member (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30)
);id가 자동 증가하는 테이블을 만듭니다.
SELECT student.name, class.class_name FROM student INNER JOIN class ON student.class_id = class.id;
두 테이블의 일치 행을 결합합니다.
CREATE VIEW high_score AS SELECT * FROM student WHERE score >= 90;
가상 테이블을 생성합니다.
CREATE INDEX idx_name ON student(name);
검색 성능 향상을 위한 인덱스를 생성합니다.
SELECT USER(), CURRENT_USER();
접속 사용자와 인증 계정을 확인합니다.
ALTER USER 'root'@'localhost' IDENTIFIED BY '새비밀번호';
root 비밀번호를 변경합니다.
FLUSH PRIVILEGES;
권한 정보를 다시 읽습니다.
START TRANSACTION;
트랜잭션을 시작합니다.
COMMIT;
변경 내용을 확정합니다.
ROLLBACK;
확정 전 변경을 취소합니다.