DB/MySQL

MySQL 실습

잔망루피 2021. 5. 25. 15:38
반응형

🍯 정리된 자료가 필요할 때 ~ 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 테이블이름

인덱스 정보 보기

 

 

 

 

 

👇 참고

https://velog.io/@michael00987/MYSQL-%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8-%ED%99%95%EC%9D%B8-%EB%B0%8F-%EB%B3%80%EA%B2%BD

 

MYSQL - 비밀번호& 확인 및 변경

mysql 버전 확인 mysql 실행 mysql 데이터베이스 비밀번호 변경을 위해서 현재 암호 확인 암호 변경 mysql 종료 ` or `

velog.io

 

https://stackoverflow.com/questions/1905470/cannot-delete-or-update-a-parent-row-a-foreign-key-constraint-fails

 

Cannot delete or update a parent row: a foreign key constraint fails

When doing: DELETE FROM `jobs` WHERE `job_id` =1 LIMIT 1 It errors: #1451 - Cannot delete or update a parent row: a foreign key constraint fails (paymesomething.advertisers, CONSTRAINT

stackoverflow.com

 

반응형

'DB > MySQL' 카테고리의 다른 글

Mysql Event Scheduler  (0) 2023.12.28
JSON 타입에서 값 추출해서 JOIN하기  (0) 2023.11.21
연관 관계에 있는 데이터 삭제  (0) 2023.11.19
MySQL 데이터 타입  (0) 2023.05.21
MySQL 계정  (0) 2023.01.21