MySQL 실습
🍯 정리된 자료가 필요할 때 ~ cheat seat를 찾아보자
MySQL을 시작하는 방법 2가지
1. MySQL Command Line Client에 들어간다.
2. cmd에서 아래 파일 위치로 변경
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
mysql -uroot -p #root로 로그인, -p는 비밀번호 입력
root는 관리자 권한을 가지기 때문에 모든 권한이 뚫려있음.
중요할 때만 사용하고 평소에는 다른 이름으로 로그인하자
💗 명령어
방향키 ↑를 사용하면 이전 명령어 사용할 수 있음
CREATE DATABASE 이름;
데이터베이스 생성
create table 생성할 테이블명 like 기존테이블;
테이블 복사
DROP DATABASE 이름;
데이터베이스 삭제
SHOW DATABASES;
SHOW TABLES;
생성 된 데이터베이스/테이블 리스트 출력
DESC 테이블이름;
테이블 구조 조회
USE 이름;
데이터베이스 사용
use mysql;
alter user 'root'@'localhost' identified with mysql_native_password by '변경후 비밀번호';
데이터베이스 암호 변경
CREATE TABLE topic(
id INT(11) NOT NULL AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
description TEXT NULL,
created DATETIME NOT NULL,
author VARCHAR(30) NULL,
profile VARCHAR(100) NULL,
PRIMARY KEY(id));
테이블 생성 예
varchar(100)은 100바이트까지 넣을 수 있는 가변길이 문자열을 의미함
INSERT INTO 테이블이름 (컬럼명) VALUES('값');
해당 컬럼에 순서대로 값을 삽입
SELECT * FROM 테이블명;
테이블의 모든 값을 조회
SELECT 컬럼 FROM 테이블명 WHERE 컬럼='문자열';
컬럼의 값이 '문자열'인 컬럼을 출력
SELECT 컬럼 FROM 테이블명 WHERE 컬럼='문자열' ORDER BY 컬럼 DESC;
조건에 해당하는 컬럼을 내림차순으로 조회
오름차순은 ASC
SELECT 컬럼 FROM 테이블명 WHERE 컬럼='문자열' ORDER BY 컬럼 DESC LIMIT 2;
2개만 출력
UPDATE 테이블명 SET 컬럼명="수정할 값" WHERE 조건;
갱신
where문을 빠뜨리지 않도록 주의!!!
DELETE FROM 테이블명;
테이블에 있는 모든 행 삭제
DELETE FROM 테이블명 WHERE 조건;
조건에 맞는 행을 삭제
SET FOREIGN_KEY_CHECKS=0;
foregin key 체크를 비활성화
다시 활성화할려면 1
foreign key constraint fails 에러를 해결하고 싶을 때 사용하자.
alter table 테이블명 drop column 열;
열 삭제
truncate table 테이블명;
테이블에 있는 데이터를 모두 삭제
alter table 테이블명 add 컬럼명 타입 옵션;
컬럼 추가
alter table 테이블명 modify 컬럼명 변경할컬럼타입;
컬럼 타입 변경
alter table 변경전테이블명 rename to 변경후테이블명;
테이블명 변경
🥨 제약 조건
ALTER TABLE 테이블명
ALTER 필드명 SET DEFAULT 기본값;
기존 필드에 기본값 설정
데이터 입력시 생략하면 기본값으로 저장됨
ALTER TABLE 테이블이름
ALTER 필드이름 DROP DEFAULT;
default 제약조건 삭제
alter table 테이블명 modify column 컬럼명 varchar(255) not null;
해당 필드의 값을 not null로 변경
타입 빼고 실행하면 에러 뜬다
NOT NULL 제약 조건은 해당 필드에 NULL 값을 저장할 수 없도록 설정하는 것이다.
해당 필드를 생략하지 못하도록 하는 제약 조건이 x
함수
now() | 현재 날짜와 시간(초까지 표현) |
인덱스
CREATE INDEX 인덱스이름 ON 테이블이름 (필드이름1, 필드이름2, ...)
인덱스 생성
SHOW INDEX FROM 테이블이름
인덱스 정보 보기
👇 참고