SQL
-
level 1. 역순 정렬하기SQL/SQL 연습문제 풀이 2022. 1. 16. 20:46
https://programmers.co.kr/learn/courses/30/lessons/59035 코딩테스트 연습 - 역순 정렬하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr -- MySQL, Oracle SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC;
-
level 1. 이름이 없는 동물의 아이디SQL/SQL 연습문제 풀이 2022. 1. 16. 20:42
https://programmers.co.kr/learn/courses/30/lessons/59039 코딩테스트 연습 - 이름이 없는 동물의 아이디 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr -- MySQL SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL ORDER BY ANIMAL_ID; -- Oracle SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME I..
-
level 1. 최댓값 구하기SQL/SQL 연습문제 풀이 2022. 1. 16. 20:35
https://programmers.co.kr/learn/courses/30/lessons/59415 코딩테스트 연습 - 최댓값 구하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr -- MySQL SELECT max(DATETIME) FROM ANIMAL_INS; -- Oracle SELECT max(DATETIME) FROM ANIMAL_INS;
-
level 1. 모든 레코드 조회하기SQL/SQL 연습문제 풀이 2022. 1. 16. 20:24
https://programmers.co.kr/learn/courses/30/lessons/59034 코딩테스트 연습 - 모든 레코드 조회하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr -- MySQL SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID; -- Oracle SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID;
-
SQLite 14. INDEXSQL/Sqlite 2022. 1. 1. 22:15
인덱스란? 데이터베이스의 성능, 효율을 높이기 위해, 자주 검색이 발생하는 컬럼이 있다면, 그 컬럼과 ROWID만 다른 테이블로 뽑아낸 뒤, (쉽게 찾을 수 있도록) 컬럼값 기준으로 정렬하여 저장한다. ('컬럼들'이라면 같은 방법으로 컬럼들을 처리하면 된다.) 검색은 정렬된 새 테이블에서 이루어지며, 검색하여 ROWID를 찾은 뒤, 원 테이블의 ROWID와 비교해서 원 데이터를 출력하면 효율적인 검색이 이뤄질 수 있다. 이런 구구절절한 과정을 DBMS가 해주는 데 이 기능을 인덱스라고 한다. SQLite는 B-tree 방식의 정렬을 이용한다고 알려져 있다. 인덱스 생성하기 이렇게 인덱스 걸어줄 테이블과 컬럼을 정하면 인덱스를 사용할 수 있다. CREATE INDEX "name_index" ON "play..
-
SQLite 13. CREATE VIEWSQL/Sqlite 2022. 1. 1. 20:07
SQLite에서 VIEW는 읽기 전용 임시 테이블이다. 저장된 테이블이 아니라 실행될 때마다 데이터를 모으고 가공해서 출력한다. 따라서, 성능상의 이점은 없다. 복잡하거나, 자주 사용되는 쿼리를 VIEW로 만들어 두면 재사용이 편하고, 가독성이 높아진다. 타자와 체중을 같이 반환하는 쿼리를 만들어 보자. 체중 측정이 되지 않은 선수도 포함하려면 LEFT JOIN이 필요하다. SELECT players.id, name, team, position, height, age, date, weight FROM players LEFT JOIN weights ON players.id=weights.id 어렵진 않지만 꽤 긴 쿼리다. 이걸 볼 때마다 입력한다면... --; 위 셀렉트 문 그대로 뷰를 만들자. CREAT..
-
SQLite 12. CREATE TABLE, ALTER, DROPSQL/Sqlite 2022. 1. 1. 19:22
DB Browser에서 테이블 작성 데이터베이스 구조에서 테이블 생성 선택 타입이 5가지 밖에 없다. NN: NOT NULL. 비울 수(=null) 없다. PK: Primary Key. 기본 키. AI: Auto Increment, 자동 증가. 기본 키 컬럼이 INTEGER형이 이어야 하고, INSERT할 때마다 기본 키가 1씩 커지면서 자동으로 입력된다. 자동 증가를 선택하면 마지막 값을 기억하기 위한 테이블이 하나 생성된다. U: UNIQUE. 고유한 값. 기본값 주로 날짜 시간을 많이 사용한다. CREATE TABLE "test" ( "recorded_at_1"TEXT DEFAULT CURRENT_TIMESTAMP, "recorded_at_2"TEXT DEFAULT (datetime('now','l..
-
SQLite 11. UPDATE, DELETESQL/Sqlite 2022. 1. 1. 14:04
UPDATE WHERE이 빠지면 모든 행이 업데이트된다. UPDATE weights SET weight=weight+5 모든 선수의 체중을 5 증가시켰다. UPDATE SET WHERE WHERE를 사용하자. UPDATE players2 SET team='CWS', position=NULL WHERE id=1; SELECT * FROM players2 id=1인 선수의 팀을 바꾸고 포지션을 지웠다. NULL 을 사용하지 못하게 설정되어 있다면, 문자열은 '', 정수형은 -1 또는 0 등을 미리 정해 사용하면 된다. ROW 삭제: DELETE WHERE이 빠지면 모든 행이 삭제된다. 주의 DELETE FROM players2 WHERE id > 10 테이블 자체를 지우는 것은 DROP TABLE 이다. 외..