전체 글 112

INNER/ OUTER JOIN

🐶 JOIN 기준을 가지고 있는 데이터를 합치는 것 언제사용되는가? 보통 한 테이블 내에서 내가 원하는 정보가 모두 있으면 좋지만, 여러 테이블에 흩어져 있는 경우가 있다. 이렇게 혼재된 데이터를 가져올 때 사용한다. 여러가지 JOIN이 존재하는데, 그 중 우리는 INNER/ LEFT/ RIGHT/ OUTER JOIN을 다룰 것이다. 🐶 INNER JOIN ※ Inner join을 수행하기 위해서는 결합하고자 하는 테이블이 동일한 컬럼을 가져야 한다. 문제1. (테이블 2개인 경우) student 내에 학과 컬럼을 이용해서 profressor 테이블에 있는 연구소 정보를 얻는다. 이 두 개 정보를 조합해 가져오기 위해서는 join을 활용해보자. student 테이블에도 학과가있고, professor테이블..

SQL 2023.08.17

조건문

조건문 조건을 설정하여 원하는 데이터만 추출하는 방법을 알아낼 수 있도록 함. CASE WHEN 웬만한 DBMS에서 다 쓰임. 조건이 여러가지인 경우 유리함. 문제1. 과목 정보에서 이수구분이 전필이라면 전공필수과목이라고 명명하며 아니라면 해당 컬럼을 전공필수 및 선택구분으로 명명하도록 한다. 그리고 학과번호, 과목명, 이수구분을 컬럼으로 나타낼 것이다. END AS라고 한 이유는 해당 조건을 통해 얻어낸 데이터들을 모아놓은 컬럼이 무엇인지 나타내는 별칭 역할을 한다. AS를 빼더라도 AS가 있다고 간주하지만, 여기서는 데이터 집합이 무엇이 있는지 나타내기 위해서 AS를 사용하였다. 문제2. 전공필수과목이 아닌 것들을 전공 선택과목으로 나타내고 싶다면 어떻게 해야할까?????? 문제3. 1학년 2학기 성..

SQL 2023.08.16

WebSQL 내장함수(문자열/ 숫자 함수)

함수란? 함수란 사용자가 사용이 편하도록 미리 정의된 기능의 모음 함수의 종류 단일행 함수: 데이터 베이스에 저장된 자료 한 줄 한 줄을 대상으로 하는 함수 복수행 함수(그룹함수): 테이블 전체를 대상으로 하는 함수 ex) SQLLite 버전 확인 함수 데이터 타입(자료형) ex) TYPEOF() 정수를 넣으면 integer, 실수를 넣으면 real, 문자열을 넣으면 text, 블랍형...? 날짜 및 시간도 텍스트타입니다. * Blob형이란??? (binary large object) 바이너리 형태로 큰 객체들(이미지, 사운드, 비디오 같은 멀티미디어)을 저장한다. 즉, 바이너리로 멀티미디어를 저장함. 문자자료형 처리 내장함수 1. 날짜 및 시간 함수 sqllite에서 날짜, 시간을 나타낼 수 있는 자료..

SQL 2023.08.16

CRUD

CRUD CRUD란 대부분 컴퓨터 SW가 가지는 기본적인 데이터 처리 기능인 Create, Read, Update, Delete의 줄임말이다. DB를 사용하기 위한 기초적인 쿼리 형식을 의미한다. CREATE(생성) 테이블을 새로 생성한다. 생성하고 싶은 테이블 명을 적어주고 어떤 컬럼의 데이터로 생성할지 적어줘야 한다. 컬럼을 적을때는 컬럼명, 데이터타입, 조건으로 적어주되 스페이스로 구분을 해줘야 한다. 다만 제약조건은 필수적으로 적어야 할 것이 아닌 옵션이다. 문제1. 제품이라는 테이블을 만들어보자. 설명: 제품이란 테이블을 만드는데, 숫자 자료형의 제품번호 컬럼, 문자열 자료형인 제품이름, 숫자 자료형인 가격 컬럼으로 구성된다. 이렇게만 하면 아직 아무런 결과값도 안나오는데 그 이유는 아직 테이블..

SQL 2023.08.16

UPDATE, DELETE, TOP, LIMIT

UPDATE UPDATE구문을 사용하면 데이터를 수정할 수 있다. WHERE절에 탐색 조건을 충족시키는 행에 대해 값을 변경할 수 있다. 문제1. 학생정보에서 첫 번째 레코드의 정보를 변경해본다. 설명: UPDATE를 해서 테이블을 적어주고 SET을 하여 변경할 값을 작성해준다. WHERE을 하여서 학번을 작성해준다. 문제2. 학과 이름 컴퓨터 공학과가 소프트웨어공학과로 변경되었다면?? .where은 해당 조건문이 이런 애들의 값만 변경해라 라는 의미로 해석하면 쉬울 것이다. ※ 주의: where을 지정해주지 않으면 모든 레코드가 변경되므로 반드시 조건을 지정해줘야할 것이다. 이렇게 됨 DELETE 테이블에서 행을 제거할 수 있다. DELETE를 하는데 WHERE을 하지 않으면 모든 행이 제거됨으로 주의..

SQL 2023.08.16

연습문제

문제1 서울에 살면서 4학년인 학생들을 구하는 쿼리문을 작성하라. 문제2 2학년1학기 성적이 NULL값인 학생을 구하라. ※ 비어있는 문자열과 NULL값은 다른 값이다!!! 문제3 컴퓨터공학과의 전필과목을 구하는 쿼리문을 작성하라 (컴퓨터 공학과이면서 전필 과목이니까 '이면서'는 AND) 문제4 생일이 11월인 학생을 구하는 쿼리문을 작성하라. 문제5 모든 2학년 학생들을 조회하되 마일리지가 큰 순으로 정렬하는 쿼리문을 작성하라. 정리: ORDER BY DESC/ASC 까먹음.

SQL 2023.08.16

WHERE, INSERT

WHERE WHERE문은 데이터를 검색, 갱신, 삭제할 때 특정 데이터에 대한 조건을 설정할때 사용하는 구문 조건을 설정한다는 것은 무엇인가? 이처럼 WHERE문은 하나 또는 여러 연산자를 조합하여 조건을 지정할 수 있다. 문제: 국가장학금 100만원 이상 받은 학생들을 조회해보자. 문제: 교수정보에서 교원번호가 1,2,3인 테이블을 만들어보자. 논리연산자를 사용해서 여러 개의 조건을 같이 사용해보자 문제: 학생 정보에서 학과 정보가 컴퓨터공학과이거나 전자공학과인 학생들만 찾는 쿼리문을 던져보라. 문제: 컴퓨터공학과이면서 1학년인 학생을 찾는 쿼리문을 날려보라 문제: 코로나등교시절 학번이 홀수 학번인 학생은 등교를 하지만 짝수 학번인 학생은 등교를 할 수 없었다. 학번이 홀수인 학생들만 출력하는 쿼리문으..

SQL 2023.08.16

IS NULL, 비트 단위 논리연산자

IS NULL 필드의 값이 NULL인 경우를 조회하고자 할 때 사용한다. NULL은 결측치로 값이 없음을 의미한다. 공백과 0은 값이 있는 것인데, NULL은 값이없다 자체를 의미한다. 데이터는 결측치를 어떻게 처리해주느냐에 따라서 분석이 완전히 달라져서 NULL값 처리가 중요하다. 문제: 장학금 정보에서 성적장학금이 null인 레코드를 찾아보아라. 문제: 성적장학금, 국가장학금, 근로장학금 모두를 받은 학생이 있는지 찾아보자. 코드를 두 가지로 나타낼 수 있다. 이렇게 해도 같은 결과가 출력된다. 비트 단위 논리연산자 비트연산자는 데이터를 비트 단위로 연산한다. 비트는 0과 1로 표현하는 정보의 최소단위 따라서 비교하는 두 값을 비트 단위로 나열한 뒤 각 자리수를 연산한다. AND -> & OR -> ..

SQL 2023.08.16

BETWEEN, IN, LIKE

BETWEEN BETWEEN A AND B를 그대로 사용한 것 A와 B사이에 값을 의미하는 명령어 문제: 1학년 1학기 성적이 3.0 이상이고 4.0이하인 학생들만 출력해보자. 이렇게하면 3.0이상이면서 4.0미만인 1학년 1학기 컬럼과 학년 컬럼이 있는 레코드가 출력된 모습을 확인해볼 수 있다. IN 소괄호 안에 값이 있는지 여부를 조회하기 위한 연산자. 문제: 학생 테이블에 학과 정보를 가지고 예제코드를 작성해보자. 학과가 물리학과와 화학과인 학생들만 있는 레코드 중에서 학번, 이름, 학과 레코드만 출력하라. IN은 학과 컬럼에서 물리학과, 화학과를 제외한 나머지는 false로 인식하여 true인 물리학과와 화학과만을 출력하는 구조라고 이해할 수 있다. 문제2: 과목 정보에서 과목번호, 과목명, 이수..

SQL 2023.08.16

연결연산자, 논리연산자

연결연산자란? 테이블 내에서 각 컬럼을 연결하여 하나의 결과를 컬럼으로 얻거나 나타내거나 문자열을 추가하여 새로운 데이터를 나타내는 컬럼을 추가할 때 사용하는 방법 문제: 이재영 학생은 서울특별시 성북구에 거주 중입니다. 라는 문구를 나타내고 싶다고 가정하면 이런 경우 우리는 연결연산자를 사용할 수 있다. 문제: 어떤 과목이 어떤 과목구분으로 분류되어 있는지 subject테이블에서 알아보기. 논리연산자란? AND연산 문제: 학생정보에서 학생 학년이 2학년 1학년 학생 정보 중에서 마일리지 점수가 300점 이상인 경우에만 얻고 싶다고 가정해보자. 이렇게 하면 1학년은 모두 출력되고 2학년 중 마일리지 300이상인 레코드들만 출력된다. 코드 수정 ▼ OR연산자 문제: 1, 2학년 학생들과 마일리지가 300이..

SQL 2023.08.16