bdfgdfg

SELECT/FROM/WHERE/ORDER BY 본문

CS/SQL

SELECT/FROM/WHERE/ORDER BY

marmelo12 2022. 9. 26. 22:09
반응형

SQL은 총 네가지로 나뉜다.

CRUD라고도 하는데 각 Create,Read,Update, Delete.

 

DBA팀이 아닌이상 사실 SQL을 사용할 때는 대부분 Read쪽만 거의 사용하게 된다.

 

SELECT 구문은 Select/from/where/group by/having/order by의 6가지 절로 나뉘게 된다.

어렵지 않다. 오히려 쉬운편.

 

실습환경은 밑

https://w3schools.com/sql/trysql.asp?filename=trysql_select_all 

 -> 실제 SSMS를 사용하는거보다 훨 불편하기는 하지만.. 간단하게 실습하기에는 좋다

 

DB에서 데이터를 가져올 때 가장 중요한 2가지. 바로 Select, Where이다.

어디서? 데이터를 가져오고, 어떤 걸? 가져올지에 대한 정보다.

 

게임 데이터베이스의 계정 정보(테이블)에서 해당 게임의 모든 닉네임들을 가져오고 싶다고 생각해보자.

그렇다면 select NickName from GameDB.dbo.Account. (GameDB.dbo는 보통 RDBMS에서 데이터베이스명.dbo가 앞에붙는다. MSSQL만 사용해보아서 다른 DB는 잘 모르겠음.)

 

매우 단순. 사실상 더 설명할거리가 없다.

 

다만, 조심해야할게 있다. 가끔 어떤 테이블의 칼럼과 데이터가 어떻게 저장되어있는지 궁금할 때가 있다.

대부분의 DB에선 해당 테이블의 Design을 클릭해 칼럼을 확인할 수 있지만, 데이터와 함께 보기 위해 바로 밑의 쿼리와 같이 날릴 수도 있다.

select * from A테이블.

 

근데 만약 A테이블에 저장된 데이터가 매우 많다면? 위의 쿼리는 간단하기에 긁어오는거 자체는 몇초안에 가능하겠지만,

결국 그 몇초도 컴퓨터 입장에선 오래걸리는 연산.

 

그렇기에 위와 같은 이유처럼. 단순히 칼럼네임과 저장된 데이터를 제한적으로 간단하게 확인하려면 밑과 같이 쓰면된다.

 

SELECT * FROM A테이블 limit 10;

 -> MSSQL에는 Limit이 지원이 안된다더라. 대신 비슷한 TOP 구문을 이용하자. (다만 Limit보단 기능이 제한적이라더라)

 -> EX) Select Top 10 * from A테이블.

 

where절도 어렵지 않다. 데이터를 가져오기 위한 어떤 조건을 거는 것.

예로들어 게임 데이터베이스의 계정 정보 테이블에서 계정 레벨이 100인 녀석만 조회하자!의 경우.

 -> Select * from GameDB.dbo.Account Where AccountLevel = 100

 

마지막으로 Order by. 정렬 기능이다. 보통 조호된 데이터에서 어떤 칼럼을 기준으로 정렬을해서 데이터를 가져올 때 사용한다.

예로들어 게임 데이터베이스의 계정 정보 테이블에서 계정 레벨을 내림차순으로 조회하자!의 경우.

 -> Select * from GameDB.dbo.Account Order by AccountLevel DESC;

조건을 ASC,DESC로 줄 수 있는데 대부분의 디폴트값은 ASC이므로 아무것도 주지않으면 항상 오름차순 정렬로 준다.

 

 

 

 

 

반응형

'CS > SQL' 카테고리의 다른 글

SQL 재구매가 일어난 상품과 회원 리스트 구하기  (0) 2022.12.14
SQL 인기있는 아이스크림 (이중 정렬)  (0) 2022.12.13
Join  (0) 2022.09.28
Group By/Having/집계 함수  (0) 2022.09.27
SQL  (0) 2022.09.26
Comments