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
핫도구