기능별 명령어 정리
기능 | SQL 명령어 | 설명 |
데이터베이스 관리 | CREATE DATABASE database_name; | 새로운 데이터베이스 생성 |
DROP DATABASE database_name; | 데이터베이스 삭제 | |
USE database_name; | 사용할 데이터베이스 선택 | |
테이블 관리 | CREATE TABLE table_name (column1 datatype constraint, ...); | 새로운 테이블 생성 |
DROP TABLE table_name; | 테이블 삭제 | |
ALTER TABLE table_name ADD column_name datatype; | 테이블에 새로운 열 추가 | |
ALTER TABLE table_name DROP COLUMN column_name; | 테이블의 특정 열 삭제 | |
ALTER TABLE table_name MODIFY COLUMN column_name datatype; | 테이블 열의 데이터 타입 변경 | |
데이터 삽입 | INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...); | 테이블에 새 데이터 삽입 |
INSERT INTO table_name VALUES (value1, value2, ...); | 모든 열에 대해 새 데이터 삽입 | |
데이터 조회 | SELECT column1, column2 FROM table_name WHERE condition; | 특정 조건에 맞는 데이터 조회 |
SELECT * FROM table_name; | 테이블의 모든 데이터 조회 | |
SELECT DISTINCT column_name FROM table_name; | 중복 없이 데이터 조회 | |
SELECT column_name AS alias_name FROM table_name; | 열에 별칭(alias) 적용 | |
데이터 업데이트 |
UPDATE table_name SET column1 = value1 WHERE condition; | 조건에 맞는 데이터 업데이트 |
데이터 삭제 | DELETE FROM table_name WHERE condition; | 조건에 맞는 데이터 삭제 |
TRUNCATE TABLE table_name; | 테이블의 모든 데이터 삭제 | |
조건 및 정렬 | SELECT * FROM table_name WHERE condition; | 조건에 맞는 데이터 조회 |
`SELECT * FROM table_name ORDER BY column_name ASC | DESC;` | |
SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2; | 범위 조건으로 데이터 조회 | |
집계 함수 | SELECT COUNT(column_name) FROM table_name; | 행의 개수 계산 |
SELECT AVG(column_name) FROM table_name; | 평균 계산 | |
SELECT SUM(column_name) FROM table_name; | 합계 계산 | |
SELECT MAX(column_name) FROM table_name; | 최대값 조회 | |
SELECT MIN(column_name) FROM table_name; | 최소값 조회 | |
그룹화 | SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name; | 특정 열로 데이터 그룹화 |
조인 | SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column; | 내부 조인 |
SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column; | 왼쪽 외부 조인 | |
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column; | 오른쪽 외부 조인 | |
SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.column = table2.column; | 완전 외부 조인 | |
서브쿼리 | SELECT column1 FROM table_name WHERE column2 = (SELECT column3 FROM table_name2 WHERE ...); | 서브쿼리 사용 |
인덱스 관리 | CREATE INDEX index_name ON table_name (column_name); | 특정 열에 인덱스 생성 |
DROP INDEX index_name; | 인덱스 삭제 | |
권한 관리 | GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host'; | 사용자에게 권한 부여 |
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host'; | 사용자의 권한 회수 |
계정 생성 및 권한 부여
MySQL을 설치하면 가장 먼저 사용되는 계정은 root 계정이다.
root 계정의 경우, 관리자 계정이기 때문에 DB에 대한 모든 권한을 갖고 있다.
- DB 접속 및 계정 조회
mysql -u root -p // root 계정 접속
use mysql; //mysql 스키마 선택
select user, host from user; //사용자 목록 조회
- 사용자 생성
create user '사용자'@'host' identified by '비밀번호';
// 내부 접근을 허용하는 사용자 추가
create user 'test'@'localhost' identified by '0000';
//외부 접근을 허용하는 사용자 추가
create user 'test'@'%' identified by '0000';
// 특정 ip만 접근을 허용하는 사용자 추가
create user 'test'@'123.456.789.100' identified by '0000';
// 특정 ip 대역을 허용하는 사용자 추가
create user 'test'@'192.168.%' identified by '0000';
- 사용자 삭제
drop user '사용자';
delete from user where user='사용자';
- 권한 부여
// 모든 데이터베이스의 모든 테이블에 모든 권한을 줌
grant all privileges on *.* to '사용자'@'localhost';
// 특정 데이터베이스의 모든 테이블에 모든 권한을 줌
grant all privileges on DB이름.* to '사용자'@'localhost';
// 특정 데이터베이스의 특정 테이블에 모든 권한을 줌
grant all privileges on DB이름.테이블명 to '사용자'@'localhost';
// 특정 데이터베이스의 특정 테이블에 select 권한을 줌
grant select on DB이름.테이블명 to '사용자'@'localhost';
모든 데이터베이스 보기
SHOW DATABASES;
데이터베이스 생성하기
# CREATE DATABASE 데이터베이스명;
CREATE DATABASE test;
데이터베이스 사용하기
#USE 데이터베이스명;
USE test;
테이블 생성하기
모든 테이블 보기
test 테이블 안에 test_table이 존재
테이블 구조 보기
DESC, DESCRIBE, EXPLAIN 중 하나와 테이블명을 통해 해당 테이블의 구조를 확인할 수 있습니다.
'CS > SQL' 카테고리의 다른 글
[MYSQL] 데이터 삭제 DELETE, DROP, TRUNCATE (0) | 2024.11.19 |
---|