DataBase/MySQL
[MySQL] 내장함수 종류 정리
집계 함수 COUNT(필드명) --NULL 값이 아닌 레코드 수를 구한다. SUM(필드명) - 필드명의 합계를 구한다. AVG(필드명) - 각각의 그룹 안에서 필드명의 평균값을 구한다. MAX(필드명) - 최대값을 구한다. MIN(필드명) - 최소값을 구한다. select userId, sum(amount) as 'SUM' # as안쓰면 sum(amount)이 컬럼 이름이 되니까 깔끔하게 별칭 사용 from buyTbl group by userid; #그룹핑을 안해주면 sum이 전체를 더해버린다. 그룹을 해줘야 그룹된 id에 맞게 sum을 해준다 select name, height from userTbl where height = (select max(height) from usertbl) or heig..
[MySQL] 인덱스(index)란?
개요 DB를 사용하면서 데이터의 양(row)에 따라 실행 결과의 속도가 차이가 나는 것을 알고 있었다. 특히 데이터의 양이 증가할수록 실행 속도는 느려지고, JOIN이나 서브 쿼리 사용 시 곱 연산이 일어나 데이터 양이 증가하기 때문에 WHERE 조건에서 필요한 데이터만 추출 후 사용하는 것이 좋다고 알고 있었는데, 보다 쿼리의 성능을 높이는 데 중요한 것은 인덱스를 적재적소로 활용하는 것이었다. 그렇다면 인덱스의 개념과 구조, 그리고 왜 사용하는지?, 사용했을 때 장점과 단점들에 대해 학습하고자 한다. 인덱스(Index)란? 인덱스란 데이터의 저장(INSERT, UPDATE, DELETE) 의 성능을 희생하고 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색(읽기) 속도를 향상시키기..
[MySQL] 기본 SQL문법 정리 (테이블 조회, 생성, 수정, 삭제)
DB 다루기 구문 -- 데이터베이스 보기 show databases; -- 만약 sqlDB가 존재하면 우선 지운다. drop database if exists sqlDB; -- 데이터베이스 생성 create database sqlDB; -- 데이터베이스 선택 use sqlDB; ※ 참고 유닉스 환경의 MySQL에서는 데이터베이스 이름의 대소문자를 구분한다. 그러나 윈도우 환경의 MySQL에서는 데이터베이스의 이름에 대소문자를 구분하지 않는다. 하지만 될 수 있으면 언제나 데이터베이스의 이름은 대소문자를 구분하여 사용하는 것이 가독성 측면에서도 좋다. 테이블 생성 CREATE TABLE db명.테이블명 ( 컬럼명1 INT PRIMARY KEY AUTO_INCREMENT, -- 기본키 숫자 자동 증가 설정 ..