SQL과 데이터베이스_1

우주먼지·2020년 7월 7일
0

인공지능 사관학교

목록 보기
3/15
post-thumbnail

SQL과 데이터베이스

데이터 베이스의 종류

  • 계층형
  • 네트워크 형
  • 관계형 : 단순한 표를 이용하여 데이터의 상호관계를 정의함.
  • 객체지향 형

SQL

DDL(데이터 정의) : 데이터베이스를 정의, 생성 변경, 삭제하는 것
DML(데이터 조작) : 질의를 통해서 데이터를 불러오고 처리하는 것
DCL(데이터 제어) : 데이터의 보안, 무결성, 병행 수행 제어 등을 하는 것

경량(light weight)데이터 베이스 용 : 1인 사용자 전제. 로컬 컴퓨터에 탑재. SQLite사용
데이터베이스 서버(server)구축 용 : 다수의 사용자 전제. 하나의 서버에 다수의 클라이언트가 접속. MySQL, MicrosoftSQL, OracelSQL....

SQLiteStudio를 사용한다
download

column, 열, feature -> 세로줄
행, observation -> 가로줄

데이터 분석을 위해서는 분산된 테이블 보다 하나로 합쳐져 있는 테이블이 더 좋다. 데이터를 받았을때, 분산된 테이블을 경우 제일먼저 테이블을 하나로 합쳐줘야한다.

1행 주석은 '--'로 시작, multi-line주석은 '/'로 시작하여 '/'로 끝냄.
<select 문 예시>

SELECT 'Hello world!' => Hello world!
SELECT 1+2 => 3

sqlitestudio사용시 데이터 베이스를 가져와서 연결하지 않으면 쿼리문 실행이 불가하다.
Database -> Add a database->Connect to the Database

SELECT문 실습

SELECT NAME, LIFEEXPECTANCY AS 'LIFE EXPECTANCY' FROM COUNTRY ORDER BY LIFEEXPECTANCY DESC;

이름과 수명을 출력하는데, 수명의 이름을 변경해주고 수명순으로 내림차순으로 정렬해서 출력한다. 변수명에 공백이 들어갈 경우 '가 필수다.

SELELCT COUNT(NAME) FROM COUNTRY;

-> NAME의 개수를 샌다. NULL이 아닌 값만의 개수를 샌다.

SELECT * FROM COUNTRY ORDER BY NAME LIMIT 3 OFFSET 100;

->COUNT의 모든 요소를 출력하는데, 이름으로 정렬한 후 처음부터 100개 이후의 3개의 데이터를 출력한다.

필터링 결과 보여주기

SELECT + WHERE를 사용하여 필터링. AND, OR, NOT등으로 조건문 연결가능.

SELECT NAME, CONTINENT, POPULATION FROM COUNTRY WHERE POPULATION < 100000 ORDER BY POPULATION DESC;

NAME, CONTINENT, POPULATION을 COUNTRY에서 가져오는데, 인구가 100000미만인 행만 가져오며, 출력할때는 내림차순으로 정렬하여 출력해준다.
조건은 칼럼에만 가능하며, 행 자체에는 불가능하다.

SELECT NAME, POPULATION FROM COUNTRY WHERE POPULATION BETWEEN 100000 AND 1000000 ORDER BY POPULATION DESC;

100000에서 1000000까지의 인구를 가진 행의 이름과 인구를 인구의 내림차순으로 출력해라.

SELECT NAME FROM COUNTRY WHERE NAME LIKE '%ISLAND'; -- 끝
SELECT NAME FROM COUNTRY WHERE NAME LIKE 'ISLAND%'; -- 시작
SELECT NAME FROM COUNTRY WHERE NAME LIKE '%ISLAND%'; -- 중간
SELECT NAME FROM COUNTRY WHERE NAME LIKE '_A%'; --두번쨰 문자

_ 는 자리와 개수를 나타내지만, %는 자리만 나타내고 개수는 상관없다.

SELECT DISTINCT COUNTRYCODE FROM CITY;
SELECT COUNT(DISTINCT COUNTRYCODE) FROM CITY; --중복없는 국가코드 수

DISTINCT라는 키워드를 사용하여 중복 없이 출력할 수 있도록 해준다.

SELECT NAME FROM (SELECT CODE, NAME, CONTINENT FROM COUNTRY);

SELECT로 출력된 결과를 가상의 테이블로 사용하여 새로운 SELECT문을 만들 수 있다.

profile
안녕하세요 ㅎㅎ

0개의 댓글