Just Do It

DML

by 핫도구
반응형

1) concatenation(연결)

SQL구문에서는 문자열간 + 연산이 허용되지 않음

그래서 concatenation을 사용한다.

concat('문자열', '문자열', .... , '문자열')을 사용해 문자열을 연결 할 수 있다.

간단하게 student table에서 ~~는 ~~살 입니다.를 나타내보면

SELECT concat(name, '는 ', age,'살 입니다.') FROM student;

 

2) 산술 연산자

bonus라는 column을 만들어 point + (age * teamno)를 해서 만들어 보면

가장 먼저 column을 만들고 데이터를 넣으면 된다.

ALTER TABLE student ADD bonus float(7,3);

UPDATE student SET bonus = floor(point + (age * teamno));

floor를 사용하지 않으면 소수점이 너무 길어지는 경우가 발생하기 때문에 사용하였고 위와 같은 결과를 보인다.

 

그리고 25살 이상, 30살 이하의 학생을 뽑는 경우 and 연산자와 between연산자를 활용할 수 있다.

between 은 column_name between a and b와 같이 사용하여 a 이상 b 이하를 표현한다.

SELECT * FROM student WHERE age >= 25 AND age <= 30;
SELECT * FROM student WHERE age BETWEEN 25 AND 30;

 

30살초과와 25살 미만의 student table에서 출력하기

SELECT * FROM student WHERE age < 25 OR age > 30;

 

부정을 표한하기 위해 not, <>, !=와 같은 표현을 활용하여 age가 30살이 아닌 그룹을 출력해보자

SELECT * FROM student WHERE age != 30;
SELECT * FROM student WHERE NOT age = 30;
SELECT * FROM student WHERE age <> 30;

 

또한 문자열에 대해 활용하기 위해 info에 null인 경우만 추출해보자

이전에 info에 null 값을 추가해주고 결과를 추출해보면 

UPDATE student SET info = NULL WHERE studentno = 10;

SELECT * FROM student WHERE info = NULL;
SELECT * FROM student WHERE info != NULL;

이와 같은 결과는 아무 것도 추출하지 못한다.

 그래서 is 와 is not 을 활용해본다.

SELECT * FROM student WHERE info IS NULL;
SELECT * FROM student WHERE info IS NOT NULL;

각각의 결과가 추출된다.

 

 

3) in

in(, , ,)을 사용하면 많이 사용하지 않고 간단하게 사용할 수 있다.

student table에서 teamno가 1,4,5인 사람들만 추출해보면

SELECT * FROM student WHERE teamno in(1,4,5);

 

 

4) like : 퍼지검색

 % : 임의의 문자열(없음 포함)

_ : 임의의 한글자, 한글도 한글자로 인정

이를 통해 이름에 2번째 글자가 원인 사람을 검색해보면

SELECT * FROM student WHERE name LIKE '_갈%';

 

또한 info에서 '이'가 포함되어 있으면 출력해보면

SELECT * FROM student WHERE info LIKE '%이%';

 

성이 '김', '이', '황'인 학생 출력

SELECT * FROM student WHERE name LIKE '김%' OR name LIKE '이%' OR name LIKE '황%';

 

student에서 age 27 ~ 33 인 학생 중 info에 '다'가 포함된 학생 출력하면

SELECT * FROM student WHERE (age BETWEEN 27 AND 33) AND (info LIKE '%다%');

로 출력할 수 있다.

반응형

'Mysql > Basic' 카테고리의 다른 글

간단한 수식정리  (0) 2024.08.05
find_in_set & limit & distinct  (0) 2024.08.05
View & index  (0) 2024.08.05
subquery & groupfunction  (0) 2024.08.05
join  (0) 2024.08.05

블로그의 정보

AquaMan

핫도구

활동하기