DB 다루기
DB 생성 : create database
DB 삭제 : drop database
--전체 데이터베이스 보기
SHOW DATABASES;
-- 만약 기존에 sqlDB가 존재하면 삭제
DROP DATABASE IF EXISTS sqlDB;
-- 새 데이터베이스 생성
CREATE DATABASE sqlDB;
-- 데이터베이스 선택
USE sqlDB;
테이블 다루기
TB 생성 : create table
TB 삭제 : drop table
TB 수정 : alter table
테이블 생성, 삭제
-- 테이블 생성
CREATE TABLE 테이블명 (
칼럼명1 타입1,
칼럼명2 타입2,
칼럼명3 타입3
);
-- 테이블 삭제
DROP TABLE 테이블명
- NOT NULL : 필드에 NULL값 저장할 수 없음
- UNIQUE : 필드에 값이 중복될 수 없음
- PRIMARY KEY : 기본키 설정 (NOT NULL + UNIQUE)
- DEFAULT : 필드의 기본값 설정
- AUTO_INCREMENT : 1부터 시작해서 레코드가 추가될 때마다 자동으로 1씩 증가
-- 예시
CREATE TABLE article (
id INT PRIMARY KEY AUTO_INCREMENT,
regDate DATETIME NOT NULL,
`name` CHAR(100) NOT NULL UNIQUE
);
테이블 조회
SHOW TABLES
SHOW TABLES LIKE 'ar%' -- ar로 시작하는 테이블명 조회
DESC 테이블명 -- 테이블 구조 조회
테이블 수정
-- 필드 추가 (ADD)
ALTER TABLE 테이블명 ADD COLUMN 필드명 필드타입
ALTER TABLE 테이블명 ADD COLUMN 필드명 필드타입 after 기존필드명 -- 필드 추가 위치 설정 가능
ALTER TABLE 테이블명 ADD PRIMARY KEY(필드명);
-- 필드 수정 (MODIFY)
ALTER TABLE 테이블명 MODIFY COLUMN 필드명 새필드타입
ALTER TABLE 테이블명 MODIFY COLUMN 필드명 필드타입 UNSIGNED NOT NULL; -- 제한요소 추가 가능
-- 필드명 수정 (CHANGE)
ALTER TABLE 테이블명 CHANGE COLUMN 필드명 새필드명 새필드타입
-- 필드 삭제 (DROP)
ALTER TABLE 테이블명 DROP COLUMN 필드명
ALTER TABLE 테이블명 DROP INDEX `인덱스`
데이터 다루기
데이터 생성 : INSERT
데이터 조회 : SELECT
데이터 수정 : UPDATE
데이터 삭제 : DELETE
데이터 조회
SELECT 컬럼명, 집계함수 AS 별명
FROM 테이블명
WHERE 테이블 조건
GROUP BY 컬럼명
HAVING 그룹 조건
ORDER BY 컬럼명 -- 오름차순 ASC / 내림차순 DESC
-- 예시
-- article 테이블에서 id가 4이상이고 title이 '제'로 시작하는
-- id와 regDate 칼럼 id가 높은 것부터 3개만 조회
SELECT id, regDate
FROM article
WHERE id >= 4 AND title LIKE '제%'
ORDER BY id DESC
LIMIT 3;
데이터 삽입, 수정, 삭제
-- 삽입
INSERT INTO 테이블명
SET 필드명1 = 데이터값1 , 필드명2 = 데이터값2 ;
INSERT INTO 테이블명(필드명1, 필드명2, 필드명3, ...)
VALUES (데이터값1, 데이터값2, 데이터값3, ...)
-- 수정
UPDATE 테이블명
SET 필드명1 = 데이터값2 , 필드명2 = 데이터값2, ...
WHERE 필드명 = 데이터값; -- 조건 없을 시 테이블 전체가 바뀜
-- 삭제
DELETE FROM 테이블명 WHERE 필드이름=데이터값 -- WHERE 생략해서 전체삭제 가능
TRUNCATE 테이블명 -- 테이블의 row들 뿐 아니라 인덱스 필드의 데이터도 삭제
'MySQL, DBMS' 카테고리의 다른 글
[MySQL] SELECT 합치기 - UNION (0) | 2023.03.09 |
---|---|
[MySQL] - JOIN (INNER, LEFT, RIGHT) (0) | 2023.03.09 |
[MySQL] - CASE문 (0) | 2023.03.09 |
[MySQL] 그룹화하여 데이터 조회 (GROUP BY, HAVING) (0) | 2023.03.09 |
[DB] DDL, DML, DCL 이란? (0) | 2023.03.09 |