본문 바로가기

학부 전공63

subquery subquery 이제 메인인 subquery에 대해 다뤄보겠다. subquery는 join이 수행하는 대부분을 수행할 수 있고 거의 동일하다고 한다. 하나의 질의 안에 다른 질의가 포함되어 있는 형태를 의미하며 예시를 표현하면 이와 같다. SELECT name FROM MovieExec WHERE certNo = (SELECT producerCNo FROM Movie WHERE title = ‘Star Wars’); 빨간색 부분이 main query, 파란 부분이 subquery이다. 하지만 certNo = () 여기서 ()부분이 결과가 하나만 나와야 하고 여러 개가 나올 경우 = 부분이 달라져야한다고 한다. 실제로 fcdb에는 Star Wars 영화가 두 개 존재하여 다음과 같은 에러를 마주할 수 있다.. 2021. 6. 19.
SQl 집합 연산(합집합, 교집합, 차집합) 합집합, 교집합, 차집합 이제 집합에서 합집합, 교집합, 차집합 연산이 어떻게 이뤄지는 지 살펴보겠다. 그리고 조인과 비슷한 개념을 가지는 subquery에 대해서도 알아보겠다. 먼저 교집합은 INTERSECT라는 명령어를 사용하고 차집합은 EXCEPT를, 합집합은 UNION을 사용한다. Ex) (SELECT name, address FROM MovieStar WHERE gender = ‘F’) INTERSECT, EXCEPT, UNION (셋 중에 하나를 이렇게 넣어 사용) (SELECT name, address FROM MovieExec WHERE netWorth > 10000000); 2021. 6. 19.
SQL join사용하기 첫 번째는 join으로 정보가 2개 이상의 테이블에 존재할 때 어떻게 할 것인지에 대한 내용이었다. Query가 스타워즈 감독의 이름이 누구냐 라고 주어진다면 Movie 테이블도 MovieExec 테이블도 필요하게 된다. 따라서 적절한 조건을 주어 join을 해주어야한다. Movie 테이블에는 감독 번호만이 존재하고 MovieExec에 감독 이름이 존재하니 MovieExec에 있는 certNo과 producerCNo가 같은 조건으로 조인하고 영화이름이 StarWars인 것 중 감독 이름을 뽑으면 된다. 이를 Relation algebra로 표현하면 다음과 같이 표현된다. 그리고 이를 SQL로 표현하면 이와 같다. SELECT name FROM Movie, MovieExec WHERE title = ‘St.. 2021. 6. 19.
SQL NULL Value & Ordering Null Value Null 값은 크게 3가지로 생각할 수 있다. Value unknown, value inapplicable, value withheld가 그 종류이다. Null은 비교 연산을 할 때 할 수 없기 때문에 Boolean 타입에 null을 위한 UNKNOWN이 들어가게 된다. Ex) x가 NULL이라고 가정하면 X+3 또한 NULL이다. NULL + 3 은 legal SQL expression에 맞지 않는다. X=3은 UNKNOWN이며 NULL = 3은 SQL에 맞지 않는다. X IS NULL is TRUE 로 확인할 수 있다. PostgreSQL에서는 다음과 같다. SQL>select 10 = 10; >> t SQL> select 10 IS NULL; >> f SQL> select 10 .. 2021. 6. 19.
PostgreSQL Regular Expressions & comparing Dates and Times PostgreSQL Regular Expressions Similar to 가 SQL 표준으로 1999년에 들어가긴 했지만 잘 안 쓰인다. 대신 POSIX-style이 중요하다. Editor라던지 language라던지 text 도구라던지 대부분이 POSIX을 표준으로 따른다. ~.~* 로 쓰인다. 식 설명 예시 . 1개의 문자와 일치한다. Star… ? 바로 앞의 문자가 없거나 한 번 있는 것이다. a?b는 b, ab를 포함한다. * 0개 이상의 문자를 포함한다. a*b는 b, ab, aab, aaab를 포함한다. + 1개 이상의 문자를 포함한다 a+b는 ab, aab, aaab를 포함하지만 b는 포함하지 않는다. {m, n} {m, n} m부터 n까지의 개수만큼만 나와야 한다. a{1,3}b는 ab, .. 2021. 6. 19.
SQL Comparisionb of String & Pattern Match Comparisionb of String (문자열 비교) 단어사전에서 더 앞에 나오는 단어가 작은 것이 된다. 즉, ‘fodder’과 ‘foo’가 있을 때 비교식은‘fodder’ ____로 찾을 수 있는 것이다. \는 앞서 %와 _의 의미를 없애고 string 그 자체를 뜻하게 만들어준다. Ex) select title from Movie where title lik.. 2021. 6. 19.
SQL 기본 사용법 영화가 나온 년도가 1990년도이고 스튜디오가 디즈니인 것을 뽑아라 >> SELECT * FROM Movie WHERE studioName = ‘Disney’ AND year = 1990; 으로 만들 수 있다. 여기서 where은 조건이고 FROM은 어디서 뽑을 것인지에 해당하고 SELECT *은 모든 테이블의 컬럼을 projection한 것이다. 일부 값만 뽑고 싶다면 * 대신 뽑고자 하는 컬럼이 정해져 있다면 SELECT title, year 이런 식으로 만들면 된다. 이름을 바꾸면서 뽑고자 하는 것은 두 가지 방법이 있는데 두 개 모두 표준화가 되어 있는 것이다. 1. SELECT title AS name, length AS duration FROM Movie WHERE studioName = ‘D.. 2021. 6. 19.
SQL 역사 DB 10주차 과제 요약 정리 일부로 틀린 사실이 있을 수 있습니다. SQL의 정확한 발음은 “sequal”이다. 만든 사람이 그렇게 요청했다. 하지만 최근 이런 전공자를 제외한 많은 사람이 모르기 때문에 SQL이라고 부르는 것이 일반적이게 되었다. 기술 발전이 어느 정도 성숙 되어야 표준화가 될 수 있기 때문에 표준화 시기는 한 타이밍씩 늦다. 가장 중요한 표준화는 미국정부에서 표준화 시킨 것으로 ANSI SQL, 86년도에 표준화되어서 SQL-86 이라고 부르기도 한다. 아주 기본적인 SQL을 표준화 시킨 것이다. 다음으로 중요한 표준화는 SQL2, SQL-92라고 부르는 표준화이다. 많은 DB가 SQL2는 지원을 하기 때문이다. 다음은 99년도에 표준화된 SQL-99, SQL3인데 여기서는 obje.. 2021. 6. 19.
안드로이드(Android) 이미지 고해상도 폴더 만들기 drawable-**dpi 폴더 만들어 고해상도 이미지 관리 1. project 파일 내 [res]를 마우스 우 클릭 > [New] > [Android Resource Directory] 2. Resource type을 drawable로 선택 (File name은 그냥 drawable로) 3. Available qualifiers : Density 선택 > 중앙의 [>>] 클릭 4. Chosen qualifiers: Densitity > 원하는 해상도 선택 > [OK]클릭 5. 문제되는 이미지를 찾아 오른쪽 클릭하고 [Refactor] > [Move File] 6. [···]을 클릭하고 만들어준 고해상도 파일 폴더로 옮겨주면 된다. 7. 성공적으로 옮겨진 경우 옆에 해상도가 나오게 된다. 8. 다시 실행.. 2021. 5. 7.
728x90