crud를 구현하실 때, update 문도 상당히 많이 쓰는 편입니다. 예를 들어 게시물 수정. 그렇게 내용이 길지는 않으니 천천히 보셔도 좋을 듯 싶습니다. 먼저 instructor 테이블을 보겠습니다. 전체 레코드의 모든 필드들을 조회하기 위해서 select * from instructor 쿼리를 입력하였습니다. 이것을 salary 내림차순으로 정렬하였습니다. 저는 이 중에서 2번째와 3번째의 salary 값에 집중해 보도록 하겠습니다. update 다음에 테이블 명이 오고, set 다음에 어떠한 필드를 어떤 값으로 업데이트 할 것인지가 옵니다. 이 예제는, 모든 교수들의 연봉을 10% 인상하는 쿼리입니다. 실행 후에, 다시 instructor 테이블을 보시면, 모든 교수의 연봉이 10% 인상된 것을..
코딩/Sql 검색 결과
오늘은 CRUD를 할 때 많이 써먹는 sql의 insert 문에 대해서 간단하게 알아보겠습니다. 보통, 저는 테이블에 레코드를 추가하는 것을 아래와 같이 작성합니다. 이제 예제를 보도록 하겠습니다. 저는 DBeaver에 mysql을 연동해서 실습을 해 보도록 하겠습니다. 먼저, 테이블 t의 정보를 보겠습니다. a라는 컬럼과 b라는 컬럼이 있습니다. 그리고, 저는 이 둘에 아무런 제약 조건을 걸어놓지 않았습니다. 이제 테이블 t(a,b)에 ('A','A')와 ('A',('B')를 추가하도록 하겠습니다. 그러면 위와 같이 작성하시면 됩니다. insert into t(a,b) values ('A','A'), ('A','B'); 이것은 a가 'A'이고 b가 'A'인 레코드와, a가 'A'이고, b가 'B'인 레..
테이블에서 PK가 걸린 컬럼이 있었습니다. 그 컬럼을 id라 하겠습니다. 수천개의 데이터를 insert를 해야 하는데, 해당 id값이 있는 데이터를 insert를 해야 하는 경우에, 오류가 발생합니다. 저는, 이러한 상황이 발생하는 데이터를 모두 뽑고 싶었습니다. 어떻게 하면 좋을까요? 제가 말한 문제를 해결하기 위해서, exists 구문을 사용하는 것을 고려해 볼 만 합니다. 이것은, 하위 질의의 결과가 빈 릴레이션을 반환하는 경우에 False를, 아니라면 True를 리턴합니다. 예제를 하나 들어보겠습니다. 먼저, t2에 있는 데이터들을 보겠습니다. 2개의 레코드가 있습니다. (1, 'cho')하고, (3,'gahui')가 있습니다. 먼저 exists 안에, select * from t2를 넣어보겠습니..
ip 주소를 sql에서 다루어야 할 일이 있습니다. 오늘은, ip address를 unsigned integer로 바꾸는 함수와 unsigned integer를 다시 ip addr로 바꾸는 함수를 알아보도록 하겠습니다. 당연하게도, ipv4인 경우이고요. ipv6인 경우는 따로 있습니다. inet_aton과 inet_ntoa는 크게 어렵지 않습니다. 단순하게 해석해 봅시다. a는 Address의 약자일 겁니다. 그리고 n은 Number일 거고요. 중간에 to는 AtoB할 때 그 to가 맞습니다. 즉, A에서 N으로 변환하는 함수가 aton이고, N에서 A로 변환하는 함수가 ntoa인 셈입니다. ipv4 시스템에서, 255.255.255.255까지 나올 수 있습니다. 이 값을 numeric address로..
이번 시간에는 결과를 합집합 하는 sql의 union 연산자에 대해 알아보겠습니다. select 1 As temp를 하면 어떤 값이 나올까요? 1이 나옵니다. 네. 저는 단지 1이라는 값을 선택할 뿐입니다. 그러면, select 2 As temp는 무엇을 의미하나요? 2라는 값을 선택합니다. 이 둘을 union 하면 무엇이 될까요? 아래 쿼리를 작성해 보겠습니다. union 앞 뒤로 괄호로 묶여져 있다는 것을 주목해 보겠습니다. A union B로 묶였다고 했을 때, A는 1을 선택하는 것이였고, B는 2를 선택하는 것이였습니다. 1이라는 결과와 2라는 결과를 union 하면 1과 2가 나올 겁니다. 결과값을 보겠습니다. 1과 2가 나오는군요. 그러면 이런 식으로 작성해도 될까요? union 앞에는 1을..
최근댓글