MYSQL

이동원·2024년 3월 27일

정렬 order by 정렬하고싶은것

  • 낮은 > 높은 -> 오름차순(asc)
  • 높 > 낮 -> 내림차순(desc)
    cf)

국적으로 정렬

  • SELECT * FROM Customers order by Country asc;-> asc생략가능
  • SELECT * FROM Customers order by Country desc;

고객 번호로 정렬

  • select * from Customers order by CustomerID asc;
  • select * from Customers order by CustomerID desc;

국적으로 오름차순 정렬 하되, 값이 같아서 국적같아 정렬이 안되는 경우에는 고객 번호로 내림차순 정렬

select * from Customers order by Country asc, CustomerID desc;

이렇게 정렬 한다해서 칼럼만 나오는게 아니라 그 칼럼의 행도 다나옴

논리연산( 1 = TRUE, 0 = FALSE )

  • not 논리값 뒤집기 : select not FALSE;
  • and -> 두개의 논리값이 모두 참일 때 참으로 귀결. 그 외에는 거짓. 여러 조건을 동시 만족
  • or -> 두개의 논리값이 모두 거짓일 때 거짓으로 귀결. 그 외에는 참. 여러 조건 중 하나라도 만족
  • 논리연산 and, or 우선순위 = and > or , or먼저하고싶으면 ()

별명 붙이기

  • select 컬럼 or 값 as 별명 from 테이블

between, in

  • between -> 사이값 표현 ex ) select 5 BETWEEN 1 AND 10;
  • in -> 여러 값을 포함시킬때

주문(Orders) 테이블에서 CustomerID 컬럼값과 EmployeeID 컬럼값을 더하기

  • SELECT CustomerID, EmployeeID, CustomerID + EmployeeID as newID FROM Orders;

국적이 Mexico, Spain, France 인 고객만 조회

  • select * from Customers where country = 'Mexico' or country = 'Spain' or country = 'France';

in을 사용하면 좀 더 편하게 특정 값이 포함된 결과를 확인할 수 있다.

  • select * from Customers where country in ('Mexico', 'Spain', 'France');

테이블의 특정 컬럼을 뽑아서 연산할 수 있다. 이때 해당 컬럼의 모든 행이 연산 대상이 된다. 원래 Products 테이블 값이 바뀌지 않는다. update 안하면 안바뀜

  • select Price + 10 from Products; : 테이블의 특정 컬럼에 연산을 하면 기본적으로 모든 행에 적용. 적용된 결과만 나온다.

0개의 댓글