mysql에서 sysdate()와 now()는 현재 날짜와 시간을 리턴해 주는 함수입니다. 예를 들어서 도서관 데이터 베이스가 있다고 합시다. 어떠한 사람이 어떤 책을 빌려갔는지, 언제 빌려갔는지 등을 테이블에 저장할 거에요. 보통, 30일 정도 지나면 연체인데요. 이 때, 현재 시간이, 빌린 날로부터 30일 이상 경과되었다면 연체로 처리하면 될 거에요. 그럴 때, 보통 두 함수를 써요. 현재 시간과 날짜를 알아와야 할 때. 물론, 여기서 데이터를 더 잘 조작해야 겠지만요. 이 두 함수는 하는 일은 같지만, 차이가 있는데요. 이 부분에 대해서, 알아보도록 하겠습니다. 먼저 sysdate() 부터 봅시다. 다음 쿼리를 작성해 봅시다. sysdate() 함수 사이에, sleep 함수를 호출했는데요. 대충 1..
코딩 검색 결과
파이썬을 공부할 때도 얕은 복사, 깊은 복사에 대한 이야기는 상당히 많이 나옵니다. 톡이나 메일로 받은 질문 중에서 높은 빈도로 있었던 것 중 하나였습니다. 얕은 복사는 주솟값을 복사합니다. 즉, 사본이 바뀐다면 원본도 바뀝니다. 깊은 복사는 내용물을 복사합니다. 그렇기 때문에, 사본을 복사해도 원본이 바뀌지 않습니다. 간단한 예제 프로그램을 보면서 이해해 봅시다. 프로그램 1을 봅시다. 저는 Monster 객체 2개를 생성했습니다. 하나는 hp가 3700이고 데미지가 270인 몬스터를 생성했습니다. 그리고 다른 하나 b에는 a를 집어 넣었는데요. 이 때 어떤 일이 일어나는지 봅시다. a는 새로 생성된 객체를 가리킬 겁니다. 그런데 b에다가 a의 값을 넣었어요. 그러면 b도 같은 객체를 가리킬 겁니다. ..
사원 이름 name과 월급 salary로 구성되어 있는 db 테이블이 있다고 생각해 봅시다. 아직 직급 필드는 없다고 생각해 봅시다. 월급 협상이 안 된 신입 직원 분들도 있다고 해 봅시다. 그럴 일이 있을지는 잘 모르겠지만요. 그러면 salary가 null값인 레코드가 있다는 것입니다. 일단 레코드 5개만 추가해 봅시다. 데이터 베이스 이름은 worker입니다. 필드가 2개입니다. 하나는 worker_name, 다른 하나는 salary입니다. worker_name은 반드시 5자가 아니기 때문에, 가변 길이를 이용하였습니다. 그리고 월급은 정수형으로 표현할 수 있기 때문에, int로 설정하였습니다. 그리고 다음과 같이 데이터를 넣습니다. salary 필드에 not null 조건이 붙어 있지 않은 걸로 보..
SQL에서 널값, null은 무엇을 의미할까요? 알 수 없는 값을 의미합니다. 그렇기 때문에, 널 값 처리는 조심을 해야 하는데요. 몇 가지 쿼리의 결과가 어떻게 나오는지 보도록 합시다. MYSQL 5.7로 실행을 하였습니다. 먼저, null과 null은 다를까요? 알 수 없는 값과, 알 수 없는 값이 다른지 판단을 할 수 없어요. 그렇기 때문에, NULL이 떴어요. 반대로, null과 null이 같다고 할 수 있을까요? 그러면 이 쿼리의 출력 값은 어떻게 될까요? 제 환경에서는 NULL이 출력됩니다. 알 수 없는 값과 알 수 없는 값을 비교하면 같을 수도 있고, 다를 수도 있기 때문입니다. 상태가 정의되지 않습니다. 제 mysql에서는 null이 출력됩니다. 실제로, 널인지 아닌지는 is null, i..
단축평가는, 계산을 하는 도중에 이미 결과값이 확정된 경우에, 나머지 계산 과정을 생략하는 것입니다. 예를 들어서 A or B or C라는 수식이 있다고 해 봅시다. 만약에 A가 참이라면 어떨까요? B나 C가 참이던 거짓이던 A or B or C는 참이 될 겁니다. 즉, B나 C는 볼 필요가 없다는 겁니다. 예제를 통해서 이해해 봅시다. 먼저, a, b, c의 값은 각각 0, 0, 0입니다. 논리 연산자는 좌측에서 우측으로 들어가는데요. ((b++
최근댓글