SQL 4

[DB시스템 구현] SQL 검색 ②

Like 연산자 현실에서 데이터를 검색할 때, 한 조건에 맞는 데이터를 검색하고 싶을 때가 있습니다. 예를 들어, 주소지가 서울인 학생을 찾는다거나, 주민등록번호를 기준으로 성별을 찾는다거나 하는 경우가 이에 해당하죠. 이럴 때, SQL에서는 '=' 연산자 대신 like연산자를 이용합니다. 우선, like연산자에 사용가능한 문자열 패턴의 종류에 대해 알아보겠습니다. ① _ : 임의의 한 개의 문자를 말합니다. ② % : 임의의 문자 여러개를 의미합니다. 사용 예를 들어보겠습니다. '%서울%' : '서울'이라는 단어가 포함된 문자열 '서울%' : 서울로 시작하는 문자열 '_ _ _' : 3 개의 문자로 구성된 문자열 '_ _ _%' : 최소 세 개로 구성된 문자열 이런 식으로 사용됩니다. 예시문제 ) 김씨..

[DB 시스템 구현]SQL 레코드 검색 ①

SQL에서 가장 많이 사용하고, 가장 복잡하며 가장 어려운 레코드 검색에 대해 알아보겠습니다. 기본 구조 레코드 검색에서의 기본 구조는 다음과 같습니다. select 필드리스트 from 테이블리스트 where 조건 from 절 안에 테이블의 리스트가 들어가야 한다는 점을 주의해서 보시기 바랍니다. 추가적으로 이 select문의 출력값은 테이블입니다. 즉, from절 안에 또 다른 select문이 들어갈 수 있다는 점을 의미합니다. 지금은 이해가 안될수도 있습니다. 후에 계속 올리는 포스팅을 읽어보시다 보면 이해가 되실겁니다. 기본적인 레코드 검색 예시 코드를 한 번 보겠습니다. 예시는 학생들의 이름과 학번을 출력하는 코드입니다. select name, dept_name from department, st..

[DB 시스템 구현] 틀리기 쉬운 SQL문제 정리하기

이번 포스팅에선, 많은 사람들이 SQL 문제를 풀면서 틀리는 혹은 헷갈리는 문제를 학교 교수님께서 하신 강의를 바탕으로 정리하였습니다. 우선, 사용하는 테이블들의 관계도는 다음과 같습니다. 연결되어 있는 것들은 foreign key 입니다. 1. 컴퓨터 공학과 학생의 학번과 이름 찾기 위와 같은 관계도를 가진 데이터 베이스에서, 컴퓨터 공학과 학생의 학번과 이름을 찾으라고 하면 대부분 다음과 같이 진행합니다. 문제는 없을지 몰라도, 시간은 매우 오래걸립니다. SQL에서 서로 다른 두 테이블을 바탕으로 원하는 결과값을 찾을 때, 두 테이블을 합집합한 후 해당 값을 찾습니다. 이렇게, 아무 조건 없이 그냥 찾으라고 하면 중복된 값들도 계속 체크하기 때문에 실행시간이 매우 오래걸립니다. 그래서 애초에 찾을 때..

[DB 시스템 구현] SQL ①

이전 포스팅들에서 DBMS에 대해 공부하였으니 이제 본격적으로 SQL에 대해 공부해보도록 하겠습니다. 우선, SQL은 DDL과 DML로 구성됩니다. DDL DDL은 Data Definition Language의 약어로, 데이터 정의 언어를 뜻합니다. 데이터의 저장 구조를 명시하는 언어로 테이블을 정의, 수정, 삭제하는 언어를 말합니다. DML DML은 Data Manipulation Langunage로 사용자가 데이터에 접근하고 조작할 수 있도록 하는 언어를 뜻합니다. 주로 레코드의 검색, 삽입, 삭제, 수정하는 언어를 말합니다. 테이블 생성 방법 테이블으 생성하는 방법은 다음과 같다. create table department ( dept_id varchar2(10), dept_name varchar2..