목록전체 보기 (338)
DevSSOM
관계형 대수 관계형 데이터베이스에서 원하는 정보를 유도하기 위한 기본 연산 집합. 일반 집합 연산, 순수 관계 연산 두 가지로 이루어짐. 1) 일반 집합 연산 - 카디션 프로덕트 : 두 개의 테이블이 있을 때, 해당 테이블의 데이터를 통해 가능한 모든 경우의 수를 추출하는 연산 2) 순수 관계 연산 순수 관계 연산은 지금까지 공부했던 애들. - 디비전 : 두 개의 테이블이 있을 때, 첫번째 테이블과 두번째 테이블의 서로 연관된 값만 추출하는 연산
서브쿼리 하나의 쿼리 안에 포함된 또 하나의 쿼리. 메인 쿼리가 서브쿼리를 포함하는 종속적인 관계. 조건문이 복잡해질 때 서브쿼리를 활용함. 알려지지 않은 기준을 이용한 검색에 유용 ex) 연봉이 상위 5%인 여자를 직원 테이블에서 검색할 때 메인 쿼리가 실행되기 이전에 한 번만 실행 (서브쿼리부터 실행됨) 한 문장에서 여러 번 사용 가능(서브쿼리의 서브쿼리) 서브쿼리 사용시 주의사항 서브쿼리는 괄호와 함께 사용되어야 함 서브쿼리 안에서 ORDER BY 절은 사용할 수 없음 서브쿼리는 연산자의 오른쪽에 사용되어야 함 (메인쿼리 4500; 1) 서브쿼리를 알면, 사원 데브쏨의 급여를 알지 못해도 검색 가능 SELECT * FROM employee WHERE 급여 > (SELECT 급여 FROM employ..
INNER JOIN 따로 분리되어 있는 두 개의 테이블에서 정보를 한 번에 조회하기. 1) rental 테이블의 모든 컬럼을 조회하되 user테이블과 연결해 조회하기 SELECT * FROM rental INNER JOIN user; /* 연결할 테이블*/ ON 두 개의 테이블을 조건을 적용해서 연결한다면, INNER JOIN + ON으로 조건을 붙여서 사용. 1) rental 테이블의 모든 컬럼을 조회하되 user테이블과 연결해 조회하기. 이때 user테이블의 id와 rental테이블의 user_id를 기준으로 연결하기 SELECT * FROM rental /* 테이블 */ INNER JOIN user /* 연결할 테이블 */ ON user.id = rental.user_id /* 연결할 조건 컬럼 *..
GROUP BY 데이터를 그룹화해서 표현하는 명령어. ※ LIMIT, ORDER BY, GROUP BY는 쿼리 마지막줄에 위치한다. 1) 유저별로 몇 권의 책을 빌렸는지 확인하기 위해, rental테이블의 user_id컬럼과 해당 컬럼값에 해당하는 데이터의 수를 차례대로 조회하기 SELECT user_id, COUNT(*) /* 검색할 컬럼 */ FROM rental GROUP BY user_id; /* 그룹의 기준 컬럼*/ 2) GROUP BY는 다른 내장함수들과 다양하게 조합해서 사용할 수 있음. SELECT user_id, SUM(컬럼명) FROM rental GROUP BY user_id; -- user_id가 같은 열에서 컬럼의 내용을 다 더한 값을 출력 SELECT user_id, AVG(컬럼..
COUNT 검색한 결과의 데이터 개수를 가져오는 내장함수. Null인 데이터는 제외(null = 데이터가 없는 빈 공간이라는 뜻) 1) book 테이블 안에 있는 id 컬럼의 개수를 검색 SELECT COUNT(id) FROM book; select + count(검색할 컬럼) 2) 검색할 데이터에 *을 입력하면 모든 데이터 검색 SELECT COUNT(*) FROM book; 테이블 데이터의 전체 개수를 가져올 때 많이 사용함 LIMIT 데이터의 일부만 보고 싶다면 LIMIT 함수를 사용. LIMIT은 테이블에서 출력하고자 하는 데이터의 개수를 제한하는 명령어. 용량이 너무 커서 불러오지 못하는 데이터들에게 리밋을 걸어서 일부만 출력하는 것. 1) book 테이블에서 데이터를 5개만 가져오기 SELEC..
ORDER BY : 데이터를 정렬할 때 데이터를 검색할 때 정렬해서 결과를 출력하는 명령어. 엑셀의 텍스트 오름차순 정렬, 내림차순 정렬과 비슷. ASC = 오름차순(작은 값부터), DESC = 내림차순(큰 값부터). 참고로, 테이블 구조를 추출하는 DESC 테이블명과는 기능이 다름(얘는 describe의 약자). 1) score 테이블에서 수학(math) 값이 높은 데이터부터 정렬해서 검색 SELECT * FROM score ORDER BY math DESC; 조건이 아니라, 정렬이라서 WHERE를 쓰지 않음. '~를 정렬해라' 라고 할 때 ORDER BY를 써서 ORDER BY math 인데, 내림차순 정렬이라 DESC를 붙여줌. 2) score 테이블에서 수학(math) 값이 낮은 데이터부터 정렬해..
INSERT INTO 관계형 데이터베이스의 테이블에 값을 저장하는 명령어. 1) '햄릿' 책 데이터를 book 테이블에 추가 INSERT INTO book(id, title, author, publisher) VALUES('3', '햄릿', '윌리엄 셰익스피어', '데브솜 출판'); INSERT INTO + 테이블 이름 (컬럼 이름들), VALUES(컬럼에 맞는 값들); 컬럼의 개수와 VALUES의 개수가 똑같아야함. 1-1) 컬럼을 명시하지 않을 경우에는 순서대로 값을 삽입 INSERT INTO book VALUES('3', '햄릿', '윌리엄 셰익스피어', '데브솜 출판'); id, title, author, publisher 라는 원래 테이블 컬럼 순서대로 값들이 입력되게 됨. UPDATE 관계형 ..
SQL 명령어 종류 DML : 데이터 조작어 DDL : 데이터 정의어 DCL : 데이터 제어어 TCL : 트랜젝션 제어어 DML - LIKE : 데이터에서 유사한 값 찾기 특정 문자가 포함된 문자열을 찾고 싶을 때 사용하는 명령 1) book 테이블에서 제목(title)이 '어린왕자'인 책 검색하기 [where + title + like + 데이터] SELECT * FROM book WHERE title LIKE '어린왕자'; * select : 검색 명령어, select + 컬럼 where : 조건 명령어, where + 데이터, where 컬럼 like 데이터 2) book 테이블에서 제목(title)이 '왕자'로 끝나는 책 검색하기 SELECT * FROM book WHERE title LIKE '..