본문 바로가기

Database/MySQL9

[MySQL] 이것이 MySQL이다 1. 다까먹은 MySQL 다시 공부하기 위해 DBeaver 실행 2. 좌측상단 SQL 누르면 dataSource 들이 나옴 3. 간단한 확인 쿼리 - SELECT DATABASE(); : 현재 사용하고있는 DB명 나옴 - USE DB이름; : DB 사용한다 - SHOW TABLES; : DB에 있는 테이블 다 내놔봐 - CREATE TABLE TABLE명( 컬럼명 타입 옵션, 컬럼명 타입 옵션, PRIMARY KEY(컬럼명) ); : 나 테이블 만든다 ? - SELECT * FROM TABLE명; - INSERT INTO TABLE명(컬럼들) VALUES(값1,값2, ... ); 4. 단축키 - Fn + ] : 새 SQL 창 추가 - cmd + Enter : SQL 실행 (커스터마이징) 아 하기싫어 졸려.. 2024. 3. 25.
[MySQL] Sequelize 개념 및 세팅 방법, 쿼리 예제 1. Sequelize - Sequelize는 Node.js를 위한 ORM(Object-Relational Mapping)으로, MySQL, MariaDB, PostgreSQL, SQLite, 그리고 MSSQL과 같은 SQL 기반의 데이터베이스를 지원한다. - JavaScript, TypeScript와 모두 호환 가능하다. - Sequelize를 사용하면 SQL 쿼리를 직접 작성하지 않고도 데이터베이스에서 데이터를 조회, 삽입, 수정, 삭제가 가능하다. - 모델 기반의 접근 방식을 통해 코드의 가독성과 유지보수성을 향상시킬 수 있다. Mongoose와 거의 똑같다. 문법만 다름 2. Sequelize의 장점 - JS로 쿼리 짤 수 있음 - 다양한 SQL DB 지원 - Promise , async/awai.. 2023. 5. 12.
[MySQL] (완) 기본 문법 - 7 1. FULL TEXT SEARCH - LIKE '%어쩌고%' 이러면 INDEX 사용이 불가능해진다. - 그래서 FULL TEXT INDEX를 추가하고 MATCH(), AGAINST()를 사용한다. - 작동방식 : 모든 단어를 추출해서 정렬하고 단어가 출현하는 행을 모두 정리해두고 이를 활용한다. - 예시 - bookName 열에서 'MySQL' 을 검색한다. - 2자 이하는 검색 자체가 불가능하다. - 기본적으로 ('MySQL' IN NATURAL LANGUAGE MODE) 로 실행된다. - 이는 Stopwords를 제거하고 검색해준다 (the, is, are, and, am, also 뭐 이런것들) - 한글은 보통 불리언 모드를 사용한다. - 예시 - *는 아무문자라는 뜻이다 ('에스큐엘의' 이런 거.. 2023. 5. 4.
[MySQL] 기본 문법 - 6 1. 날짜 / 시간 다루기 - 연산자가 가능하다 cf) DATETIME(6) : 6 쓰면 좋음(소수점 이하 6자리의 초를 나타내게 하여 정밀도를 높인다.) - 응용 예시 - SELECT DATE_FORMAT('2022-03-09 13:24:11, '%Y년 %M월 %D일') : '2022년 March월 9th일' 이렇게 뜬다. 자세한 사용법은 chatGPT 하자 2. STORED FUNCTION : 계산을 저장한다. 3. IF / THEN / ELSE - IF는 procedure, function 안에서만 가능하다. - 응용 4. INDEX (인덱싱) 1) 개요 - DB에서 데이터를 더 빠르게 검색하고 접근하게 도와주는 자료구조이다. - 책의 색인과 비슷하다. - Column에 대한 데이터 값과 위치에 대.. 2023. 5. 4.
[MySQL] 기본 문법 - 5 cf) use db명 : db사용하기 cf) SELECT DATABASE(); : 현재 사용하고 있는 db 출력하기 1. DATA INSERT (데이터 넣기) - 서브쿼리 가능하다. (데이터 1개만 퉤 하는 쿼리여야함) - 조건문으로 필터링된 결과를 통째로 복사 가능하다. - 새로운 테이블 복사하기 : CREATE TABLE 새테이블명 SELECT * FROM 기존테이블명 - 당연히 특정 Column 을 조건에 따라 복사할 수 있다. 2. DATA 수정, 삭제 1) UPDATE 2) DELETE (행 삭제) - WHERE을 빼면 전체 table에 적용된다. 3. UNION (SELECT 결과 합치기) - 단, program, teacher의 column 수가 동일해야하며, Data type이 호환되어야 .. 2023. 5. 4.
[MySQL] 기본 문법 - 4 (Join 개쉬움) - SELECT * FROM program, teacher - 이렇게 하면 가능한 모든 조합의 행을 다 뽑아주므로 필터링을 해야한다. - SELECT * FROM program, teacher WHERE program.teacherID = teacher.teacherID ORDER BY program.teacherID - 이런식으로 해야하는데, JOIN을 주로 사용한다. 1. INNER JOIN : TABLE 두개 합치기 - 사용법 - 응용 예시 program teacher product INNER JOIN 예시 결과물 - teacherID와 productID가 중복되는 것을 볼 수 있는데, 중복을 제거하려면 * 대신에 필요한 열만 선택해서 가져오면 된다. 2. LEFT, RIGHT JOIN : 테이블.. 2023. 5. 4.
[MySQL] 기본 문법 - 3 (정규화 개쉬움) 1. SQL DDL(Data Definition Language) - TABLE 삭제 : DROP TABLE 테이블명 - COL 추가 : ALTER TABLE 테이블명 ADD 컬럼명 타입 옵션 - COL 수정 : ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 타입 옵션 - COL 삭제 : ALTER TABLE 테이블명 DROP COLUMN 컬럼명 2. 제약조건 (Constraint) : 옵션자리에 들어가는 것들 - NOT NULL : 빈 값 금지 - UNIQUE : 중복 금지(행마다 달라야함) - CHECK(조건식) : 조건식에 맞아야함 - PRIMARY KEY : _id 같은 고유값(고유 행을 구분하기 위한 값), NOT NULL과 UNIQUE가 자동으로 부여된다. - AUTO_INC.. 2023. 5. 4.
[MySQL] MySQL 기본 문법 -2 1. DATA Analysis - MAX : SELECT MAX(Column명) FROM table명 - MIN : SELECT MIN(Column명) FROM table명 - AVG(평균), COUNT(개수) 도 가능하다. - AS '새이름' 으로 출력 column 명을 변경할 수 있다. cf) 이미 인덱스가 존재하는 경우 최대/최소값을 구하는 건 정렬이 빠를 수 있다. - 특정 그룹의 연산 응용 : SELECT user_rank, MAX(price) FROM table명 WHERE user_rank = 'vip' - 중복 제거(DISTINCT) : SELECT AVG(DISTINCT price) FROM table명 2. DATA 조작 후 출력하기 - 산술연산 : SELECT price*100 FRO.. 2023. 5. 4.