728x90

SQL 8

WITH (CTE, Common Table Expression)

WITH 는 반복적인 내용을 쓸때 쓰기 좋은, 가상 테이블로 쿼리가 실행되는 동안에만 존재하는 임시 결과의 집합이라함.-- with 절로 가상 테이블 생성WITH cte_name AS ( SELECT column1, column2, ... FROM table_name WHERE condition)-- 메인 쿼리SELECT column1, column2, ...FROM cte_nameWHERE condition; 봐도 어려운데..employee 테이블에서 이름이 중복인 전체 개수를 구한다고 친다면,-- 이름별로 직원 수를 계산하는 CTE 정의WITH name_counts AS ( SELECT employee_name, COUNT(*) AS name_count FROM employ..

SQL 2024.07.11

INSERT INTO SELECT

SELECT 한 결과를 다른 테이블에 INSERT 하기INSERT INTO table_name1 (column1, column2, column3, ...)SELECT column1, coulmn2, column3 FROM table_name2 WHERE condition;WHERE 또는 LIMIT을 걸어줌으로 조건 또는 개수를 지정할 수 있다. 테스트 데이터를 삽입할 때 매우 유용하게 사용.  INSERT INTO table1 (table2_id, name, status, created_at, updated_at, deleted_at)SELECT id AS table2_id, name AS name, 1 AS status, NOW() AS created_at, NOW() AS updated_a..

SQL 2021.06.06

INSERT INTO ... VALUES

테스트 시 필요한 데이터를 추가 할 때, datagrip에서 제공되는 +(Add Row)를 통해 값을 넣고는 했다. 사실 이게 더 안전하기도 했으니..? 테이블 값을 일일이 입력하기에는 사실 UI는 번거롭다. 그리고 SQL을 계속 배우는 입장에서 언제까지 저렇게 할 수는 없지 그런고로 INSERT INTO 문을 알아보자! 구문은 다음과 같다. INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); 여기에서 table_name에 모든 값을 입력하려면 ()를 생략해도 된다. INSERT INTO table_name VALUES (value1, value2, value3, ...); 또한 value..

SQL 2021.05.30

sub query

서브 쿼리(Sub query)는 하나의 쿼리안에 포함되어 있는 또 다른 쿼리문을 말한다. 서브 쿼리는 메인 쿼리가 서브 쿼리를 포함하는 종속적인 관계로, 여러 쿼리를 수행할 결과를 중첩시켜 간편하게 결과을 얻을 수 있다. 또한 아래 같은 특징이 있다. 서브 쿼리는 여러개 사용 가능하다. 서브 쿼리는 () 를 통해 사용한다. 서브 쿼리는 SELECT, FROM, WHERE 절 모두 사용이 가능하며, SELECT를 제외한 INSRT INTO, UPDATE 등에서도 사용이 가능하다. 서브 쿼리안에 ORDER BY 절이 들어가면 안된다. users id name address 1 lee seoul 2 park incheon ... ... ... posts id user_id content 1 1 side dis..

SQL 2021.05.27

CHAR_LENGTH

DB에 저장된 값(문자열)에 길이를 확인하여 테스트를 진행할 경우, 많이 쓰는 키워드 ex) story title은 0글자에서 50글자까지 저장이 가능하다. 근데, UI 상에서 width가 40자까지만 지원되기 때문에, 뒤에 글자들은 ellipsis(말줄임) 처리가 될 것이다. 그렇다면 40자 미만부터 아슬아슬한 경곗값인 40자와 이상을 다 확인해야겠지? id title 1 The Father Who Wanted to Marry His Daughter. 2 The Frog King, or Iron Heinrich. 3 The Story of a Boy Who Went Forth to Learn Fear. 4 The Little Old Man Made Young by Fire. 5 The King's So..

SQL 2021.05.24

DISTINCT

DISTINCT는 중복 값을 제거할 때 사용한다. 예제 users 테이블에서 address 에 중복 값을 제거하고 싶을 때 id username age address email 1 aaa 20 seoul aa@aaa.com 2 bbb 21 daejeon bb@bbb.com 3 ccc 22 incheon cc@ccc.com 4 ddd 23 seoul dd@ddd.com SELECT DISTINCT address FROM users; 를 실행하게 된다면, seoul에 중복 값은 제거 된 아래의 상태로 조회가 될 것이다. address seoul daejeon incheon 물론 중복 값 제거는 group by라는 다른 기능도 있지만, 그것은 다음에 알아보자

SQL 2021.05.23

SELECT.. FROM.. WHERE

SELECT.. FROM 테이블에서 데이터를 추출하는 SQL의 데이터 조작 언어(DML) 중 하나 SELECT 컬럼명 FROM 테이블명 예제 users 테이블 id username age address email 1 aaa 20 seoul aa@aaa.com 2 bbb 21 daejeon bb@bbb.com 3 ccc 22 gyeonggi cc@ccc.com 예제 users 테이블에서 username과 email을 조회하려면, SELECT 뒤에 컬럼명을 써주면 된다. 모든 컬럼을 보기 위해서는 * 을 입력 해주면 된다. // username, email 보기 SELECT username, email FROM USERS; // 전체 컬럼 보기 SELECT * FROM USERS; WHERE WHERE 은 ..

SQL 2021.05.23

SQL 공부 사이트

테스트 하다보면, DB에 있는 데이터를 만들거나, 가공하거나 해서 하면 매우 편한다. SQL도 공부를 꾸준히 해봐야지 아래 사이트들은 SQL 예제를 직접 실행하면서 배울 수 있는 사이트들이다. https://sqlzoo.net https://www.hackerrank.com/domains/sql https://programmers.co.kr/learn/challenges?tab=sql_practice_kit https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all SQL Tryit Editor v1.6 WebSQL stores a Database locally, on the user's computer. Each user gets their..

SQL 2021.05.21
728x90