목록SQL (36)
으나님의 잡다한 개발상식
1. 계층형 - 트리(Tree) 형태의 자료구조에 데이터를 저장하고 관리 - 오너(Owner)와 멤버(Member) 형태로 데이터 저장 - 1:N 관계 표현 2. 네트워크형 - 1:N, M:N 표현 가능 - 부모가 2개 이상 가능 3. 관계형 - 테이블(= 엔터티 or 릴레이션)에 데이터를 저장하고 관리 - 테이블은 열과 행으로 구분됨 - 테이블을 사용해서 집합 연산과 관계 연산 가능 집합 연산 합집합(Union) - 두 개의 테이블을 하나로 합침 - 중복된 행은 한 번만 조회 차집합(Difference) 본래 테이블에 존재하고 다른 테이블에는 존재하지 않는 것을 조회 교집합(Intersection) 두 개의 테이블 간 공통된 부분 조회 곱집합(Cartesian product) 각 테이블에 존재하는 모든..
1. 명령 프롬프트에서 'netstat' 실행 > 1521포트 확인 Oracle XE를 설치하면 자동으로 TNSListener가 설치된다. TNS Listener는 데이터베이스 연결을 하기 위해서 반드시 필요한 서비스인데, 만약 TNS Listener에 문제가 있으면 개발자는 데이터베이스와 연결을 할 수 없다. TNS Listener의 이상유무를 확인하는 방법으로 명령프롬프트에서 'netstat'을 실행하여 Oracle 포트번호인 1521(변경 가능)을 확인하는 방법이 있다. 2. 명령 프롬프트에서 'tnsping 127.0.0.1' 실행 tnsping은 Oracle 서버와 연결을 시도하고 연결 정보까지 출력한다. ip주소는 localhost ip주소인 '127.0.0.1'을 입력한다.
SELECT c.i_Num , LISTAGG(m.mem_name,', ') WITHIN GROUP (ORDER BY m.mem_name) as charger FROM member m, charger c where c.mem_id=m.mem_id GROUP BY c.i_Num;
1. 자료형 2. 데이터 더하기 3. 데이터 가져오기 4. 정규화 이렇게 검색하면 안됨. 왜냐하면 sum(number)는 필드가 하나만 생기지만 실제로는 데이터를 더한 합인데, 이에 맞추어서 number도 필드가 하나만 나오게 됨. 즉 두 개의 데이터가 맞지 않으므로. 이렇게 쓰면 안 됨. 이름을 기준으로 그룹화는 되었으나 다른 항목은 가장 위에 있는 데이터만 나오기 때문임 5. show create database/table
1. insert into 테이블명 values(넣을 값); 2. update 테이블명 set 필드명=필드값, 필드명2 = 필드값2...; 3. select 필드명1, 필드명 2... from 테이블명1, 테이블명2... where 필드명 order by 필드명 [ASC/DESC] ※ASC : 오름차순 / DESC : 내림차순 4. delete from 테이블명 where 필드명 ※primary key 절대 겹치지 않도록 하는 것. null로 넣으면 자동으로 숫자를 카운트 동등한 이름이 들어가면 에러가 나도록 설정
*표를 만들어내는 SQL문 : create 1. create databases 데이터베이스명 이렇게 하면 엑셀로 치면 시트 하나 만들어서 이름 지정한 것과 같음 test라는 이름의 데이터베이스를 만듦 2. create table 테이블명 숫자형 : int 문자형 : varchar //varchar() : 괄호 안에 숫자를 넣어서 문자의 길이를 지정할 수 있음 이렇게 하면 표 안의 필드를 생성한 것과 같음. id를 int형으로, name을 varchar 길이는 10으로 지정함. ※ 이렇게 데이터베이스를 지정한 후 테이블을 만들어야 하지만, 이렇게 데이터베이스명.테이블명으로 쓰면 바로 데이터베이스 안에 테이블을 골라서 만들 수 있다. ※desc 테이블명 desc 테이블명을 입력해서 테이블이 어떻게 구성되었는..