반응형

Database 17

(MySQL) INNER JOIN: 두 개의 테이블 결합하기 (내부 조인)

SQL의 INNER JOIN 구문으로 두 개의 테이블에서 조건이 일치하는 행만을 출력할 수 있습니다. Inner Join 구문의 형식은 다음과 같습니다. INNER JOIN SELECT 필드명들 FROM 테이블1 INNER JOIN 테이블2 ON 조건 WHERE 조건; 이 예제를 실행하기 위한 학생 테이블(student)과 학과코드 테이블(department)의 내용은 다음과 같습니다. INNER JOIN 위의 두 개의 테이블에서 학생의 학번, 이름, 학과명을 출력하는 SQL 구문입니다. SELECT student.hakbun, student.name, department.department FROM student INNER JOIN department ON student.deptCD = departme..

Database/MySQL 2023.03.30

(MySQL) 그룹화: GROUP BY, HAVING 조건 지정하기

여기에서는 GROUP BY 구를 이용해서 집계합수로 넘겨줄 집합을 그룹으로 나누는 방법을 소개합니다. 먼저 학생(student) 테이블의 학번, 이름, 학년을 조회합니다. mysql> select hakbun, name, s_year from student; 등록된 학년(s_year)은 다음과 같습니다. mysql> select s_year from student GROUP BY s_year; GROUP BY 구를 이용해서 학년별 인원수를 구합니다. DISTINCT 구문을 사용했을 때와 같은 결과가 나왔습니다. GROUP BY에 열을 지정하여 그룹화하면 지정된 열의 값이 같은 행이 하나의 그룹으로 묶입니다. 그러나 DISTINCT로 중복을 제거하는 것과 GROUP BY 구문으로 그룹화 하는 것은 차이가 ..

Database/MySQL 2023.03.22

(MySQL) DISTINCT: 중복된 행 제거하기

SQL의 DISTINCT 구분을 이용하면 결과로 출력되는 행의 중복된 값을 제거할 수 있습니다. 다음은 학생(student) 테이블의 내용입니다. mysql> select * from student; 학과코드(deptCD)를 조회해 보겠습니다. mysql> select deptCD from student; 기본으로 모든 학생의 학과코드가 출력되기 때문에 중복된 값이 출력되었습니다. 중복된 값을 1개씩만 출력되도록 distinct 키워드를 사용해 보겠습니다. mysql> select DISTINCT deptCD from student; COUNT 함수를 이용해서 중복된 값을 제거한 학과코드의 갯수도 구할 수 있습니다. mysql> select COUNT(DISTINCT deptCD) from student;

Database/MySQL 2023.03.05

(MySQL) COUNT 함수: 행 개수 구하기

SQL 구문에서 대표적인 집계함수에는 다음과 같은 것이 있습니다. COUNT 개수 SUM 합 AVG 평균 MIN 최소값 MAX 최대값 여기서는 COUNT 함수를 이용해서 행의 개수를 구해보겠습니다. 학생(student) 테이블의 내용은 다음과 같습니다. mysql> select count(*) from student; 생년월일(birthday) 필드에는 NULL 값이 2개가 있습니다. NULL 값은 행의 개수에 포함되지 않습니다. 1학년 학생의 인원수를 구하고자 한다면 다음과 같이 할 수 있습니다. mysql> select count(*) from student where s_year=1; AS를 사용해서 다음과 같이 입력할 수도 있습니다. 필드명에 AS 다음에 입력한 문자열이 출력이 되었습니다. mys..

Database/MySQL 2023.02.27

(MySQL) Insert update delete 행(row) 추가 갱신 삭제

MySQL 데이터베이스에 데이터를 삽입(insert), 변경(update), 삭제(delete)하는 구문을 설명하겠습니다. 각각의 구문 형식은 다음과 같습니다. INSERT INTO 테이블명 VALUES(값1, 값2, ...); INSERT INTO 테이블명(열이름1, 열이름2, ...) VALUES(값1, 값2, ...); UPDATE 테이블명 SET 열이름=값,열이름2=값 WHERE 조건; DELETE FROM 테이블명 WHERE 조건; 학생(student) 테이블을 다음과 같습니다. deptCD는 외래키(학과 코드)이고, 기본값(default)이 설정된 열은 없습니다. INSERT 구문:행 추가하기 INSERT INTO 테이블명 VALUES(값1, 값2, ...); INSERT INTO 테이블명(열..

Database/MySQL 2023.02.22

(MySQL) LIMIT, OFFSET: 검색 결과의 행 개수 제한하기

LIMIT: 출력된는 행의 개수 제한 Offset: 출력되는 시작행 설정 SQL의 SELECT 명령어의 결과값으로 반환되는 행의 개수를 제한할 수 있습니다. Limit 구절은 표준 SQL은 아닙니다. MySQL과 PostgresSQL에서 사용할 수 있는 문법입니다. Limit 구절은 where 구 또는 order by 구의 뒤쪽에 기술합니다. Microsoft SQL Server 에서는 MySQL의 LIMIT과 비슷한 기능을 하는 'TOP' 구문이 있습니다. Oracle에서는 limit이나 top이 없습니다. Where에서 조건을 지정해서 행의 개수를 제한할 수 있습니다. ; MySQL SELECT * FROM 테이블명 [WHRE 조건신] [ORDER BY 열명] LIMIT 개수 [OFFSET 시작행];..

Database/MySQL 2023.02.19

(MySQL) ORDER BY, ASC/DESC: 정렬하기

오름차순으로 정렬하기 내림차순으로 정렬하기 NULL 값의 정렬 순서 SQL의 Select 명령의 검색 결과를 특정 필드를 기준으로 정렬할 수 있습니다. SELECT 열이름,.. FROM 테이블명 [WHERE 조건] ORDER BY 열이름 [ASC/DESC]; 다음은 학생(student) 테이블의 내용입니다. 다음 코드는 이름 순으로 정렬해서 출력합니다. ASC는 오름차순으로 기본값으로 설정되어 있어서 생략할 수 있습니다. mysql> select * from student ORDER BY name; mysql> select * from student ORDER BY name ASC; 다음 코드는 이름을 역순으로 정렬하여 출력합니다. mysql> select * from student ORDER BY na..

Database/MySQL 2023.02.18

(MySQL) LIKE: 특정 문자열을 포함한 데이터 검색

LIKE 구문을 이용해서 특정 문자열을 포함하는 정보를 검색할 수 있습니다. SEELCT * FROM 테이블 WHRE 열이름 LIKE 패턴; 패턴(pattern)에는 다음과 같은 메타 문자(meta character)를 사용할 수 있습니다. %: 임의의 문자열 _: 임의의 한 문자 보통 와일드카드(wildcard characte)로 많이 사용되는 '*' 문자는 사용할 수 없습니다. 예를 들어 보겠습니다. 다음은 학생(student) 테이블의 내용입니다. 이름이 '김'씨 성인 학생을 조회하는 SQL 구문입니다. mysql> select * from student where name LIKE '김%'; 이름이 '원'으로 끝나는 학생을 조회하는 SQL 구문입니다. mysql> select * from stud..

Database/MySQL 2023.02.17

(MySQL) AND, OR, NOT: 조건을 조합해서 검색하기

SQL 구문에서 여러 개의 조건에 AND, OR, NOT을 이용해서 검색할 수 있습니다. 조건식 결합 설명 조건식1 AND 조건식2 조건식1과 조건식2 모두가 참인 경우 조건식1 OR 조건식2 조건식1 또는 조건식2 중에서 한 개라도 참인 경우 NOT 조건식 조건식이 참이 아닌 경우 학생(student) 테이블을 조회해 보겠습니다. mysql> select * from student; 조건의 AND로 결합하기 주소가 '서울'이고 남학생인 데이터를 조회합니다. mysql> select * from student where addr='서울' AND sx='1'; 조건의 OR로 결합하기 주소가 '서울'이거나 남학생인 데이터를 조회합니다. mysql> select * from student where addr=..

Database/MySQL 2023.02.17

(MyQL) DESC: 테이블 구조 알아보기

학사데이터베이스나 학생(student) 테이블은 이전 블로그에서 생성했습니다. 이 블로그의 "MySQL" 카테고리를 참고하십시오. DESC 명령으로 테이블의 구조를 알아볼 수 있습니다. DESC 테이블명; 학생(student) 테이블의 구조를 알아보겠습니다. DESC student; 학과(department) 테이블의 구조를 알아보겠습니다. DESC department; 여기에서 사용되는 자료형(data type)은 다음과 같습니다. CHAR 형식 CHAR(7) 7개의 문자를 저장할 수 있는 고정길이 데이터 형식입니다. 최대 7개의 문자를 저장할 수 있습니다. 길이보다 작은 값을 저장하면 나머지 부분을 공백문자로 채웁니다. VARCHAR 형식 VARCHAR(20) 최대 20문자를 저장할 수 있는 가변길이..

Database/MySQL 2023.02.17
반응형