본문 바로가기

Programming

SQL - 10 이번엔 SQL에서 쓰는 함수를 알아보자. 엑셀을 다뤄보신 분들이라면 엑셀의 그것과 똑같다. 단지 쓰는 형태가 다를뿐..SELECT 함수(칼럼이름) FROM 테이블이름; UPPER() -> 칼럼에 있는 문자를 대문자로LOWER() -> 칼럼에 있는 문자를 소문자로SQRT() -> 칼럼에 있는 숫자의 제곱근SUM() -> 칼럼에 있는 숫자들의 합AVG() -> 칼럼에 있는 숫자들의 평균 SQL에 쓰이는 수 많은 함수를 모두 다룰 순 없다. 그러니 그런 부분들은 검색을 활용해주길 바란다. 이 함수들을 WHERE뒤에 사용하여 활용할 수도 있다. AVG를 쓰기위해선 SELECT까지 전부 입력 해야 하는 것이 약간 불편한 점이다. 더보기
SQL - 09 WHERE에 대해 추가적인 것으로 검색을 할 수 있는 LIKE를 알아보자. LIKE는 WHERE뒤에 쓰여서 문장이 특정 단어로 시작하거나, 끝나거나, 포함되어 있는 경우를 찾아준다. 사용방법은 다음과 같다.SELECT * FROM 테이블이름 WHERE 칼럼이름 LIKE 패턴 패턴에는 다음과 같은 것들이 들어간다. 기호 설명 'A%' A로 시작 '%A' A로 끝 '%A%' A포함 다음으로 SELECT에 대한 추가적인 것이다. SELECT로 데이터를 불러올 때에 데이터들을 묶을 수 있다. 이것을 해주는 쿼리가 CONCAT인데 사용법은 다음과 같다.SELECT CONCAT(칼럼이름, '문자', 칼럼이름) FROM 테이블이름; 이렇게 하게 되면 칼럼 이름이 CONCAT(price, ', ', birth)가 되는.. 더보기
SQL - 08 오늘은 WHERE에 관한 쿼리문이다. WHERE은 다른 여러 프로그래밍 언어에서 IF와 같은 역할을 한다. 사용방법은 다음과 같다.SELECT * FROM 테이블이름 WHERE 조건; 조건에는 다음과 같은 것들이 들어간다.기호 설명 = 같다 != 같지않다 > 크다 = 크거나 같다 더보기
SQL - 07 전에 만들어 둔 데이터베이스를 가지고 이번엔 여러가지 데이터를 추출하는 방식에 대해 설명하고자 한다. 우선 원래 데이터베이스안에 데이터들이다. 이제 SELECT *에 대해서 설명하고자 한다. SELECT쿼리는 말 그대로 선택인데 뒤에 *은 전체를 의미한다. 즉 모든 칼럼들을 선택하는 것이다. *대신 특정 칼럼 이름만 넣으면 그 칼럼에 행당하는 데이터만 보여진다. 여러개를 보고 싶으면 여러개를 쉼표 기준으로 여러개를 쓰면 된다. 참고로 순서를 바꾸면 바뀐 순서대로 보여진다. 이제 DISTINCT에 대해 알아보자. DISTINCT는 사전적으론 '별개의', '뚜렷한'이라는 뜻인데, 여기선 여러개의 데이터중 중복되어 있는것을 하나로 만드는 것이다. 예를 들자면 1, 2, 2, 3, 3, 3, 3 ,4가 있을때,.. 더보기
[Python3] 버스 여행 버스정류장 N개가 있습니다. 정류장에는 1번부터 N번까지의 번호가 매겨져 있습니다.2차원 배열에서 A번 정류장에서 B번 정류장으로 가는 버스가 있다면 O, 없다면 X로 표시합니다.예를들어 3개의 버스정류장이 있을 때 X O X X X O O X X 와 같이 표시하면1번 정류장에서 2번정류장으로 갈 수 있음(첫 번째 줄의 O)2번 정류장에서 3번정류장으로 갈 수 있음(두 번째 줄의 O)3번 정류장에서 1번정류장으로 갈 수 있음(세 번째 줄의 O)이 표를 이용해서 버스를 계속 갈아타서라도 갈 수 있는 정류장을 모두 표시하는 2차원 배열을 리턴하세요.위의 표와 같이 1번에서 2번 정류장으로, 그리고 2번에서 3번 정류장으로 가는 버스가 있다면, 한 번 갈아타면 1번에서 3번 정류장으로 갈 수 있다는 뜻이 됩니.. 더보기
SQL - 06 데이터베이스와 테이블, 칼럼을 만들었으니 이제 본격적으로 데이터들을 넣을 차례이다. 데이터를 넣기 위해선 먼저 무슨 칼럼들이 있었는지 확인하자. id, name, price, birth가 있다. 이제 확인한 칼럼들을 기억해두고 데이터들을 입력하자. 쿼리문은 다음과 같다. INSERT INTO 테이블이름 (칼럼1, 칼럼2, ... , 칼럼n)VALUES (데이터1, 데이터2, ... , 데이터n); varchar과 date 의 데이터 형식은 반드시 작은따옴표 ' ' 로 묶어줘야 입력이 된다는 점을 기억하자. 그런데, 이 방식은 너무 복잡하지 않은가 언제 데이터를 입력할 때 칼럼이름을 입력하고 있을 건가. 위 방식은 특정 칼럼만 입력할 때(현재는 전체를 입력했으므로 전체다) 쓰이고 아래는 순서를 알 때 그냥.. 더보기
SQL - 05 이제 SQL 콘솔을 켠후 데이터베이스를 만들어보자. 데이터베이스를 만드는 명령어는 다음과 같다.CREATE DATABASE 이름; (간혹 명령어중에 세미콜론을 안붙여도 되는 명령어가 있는데 필자는 혼동을 막고자 다 붙이기로 했다) 'Fruit'이라는 데이터베이스를 만들었다. Query OK가 뜬다면 명령이 잘 실행되었다는 뜻이다. 정말 그런지 확인하기 위해 APMSETUP폴더에 들어가 보자. 폴더가 만들어졌다. 콘솔창에서도 현재 무슨 데이터베이스가 있는지 확인하는 명령어가 있다.SHOW DATABASES; 확인했다면, 이제 데이터베이스를 사용해야한다. 사무실안에서 작업을 할려면 일단 사무실에 들어가야 하는것과 같은 이치이다. (원격으로 하는것도 나의 명령들이 사무실 안에 들어가야하니...) 명령어는 다음.. 더보기
[Python3] 소수이면서 각각의 자리가 소수인 수 각 자리가 소수이면서 전체적으로 소수인 수를 구하라 말 그대로 소수이면서 각 자리 또한 소수인 수를 구하는 것이다.n = int(input()) num = list(range(1, n + 1)) prime = [] for i in range(1, n + 1): if(i == 1 or num[i - 1] == 0): continue prime.append(i) for j in range(i * 2 - 1, n, i): num[j] = 0 double_prime = [] for i in prime: check = True for k in list(str(i)): if(k not in ['2', '3', '5', '7']): check = False break if(check): double_prime.app.. 더보기
SQL - 04 먼저, 명령들을 입력할 무언가가 필요한데 난 그 무언가를 가장 기본적인 콘솔창으로 하기로 했다. APMSetup을 사용한다면, SQL콘솔창은 시작메뉴에 'MySQL Console(root)'요놈이 콘솔창이다. 만약 시작메뉴에 등록을 하지 않았다면, APM_Setup\Server\MySQL5\bin에 'mysql.exe'를 우클릭-바로가기 만들기를 한뒤에 바로가기를 우클릭-속성에 들어가 대상 끝에 '-uroot -p'를 추가한다. 바로가기를 실행하게 되면, 다짜고짜 비밀번호를 입력하라는 창이 뜨게된다. 여기서 당황하지 말고, apmsetup 이라고 입력하자. 입력후엔, 이제 자유로이(?) 명령을 입력해 데이터 베이스를 조작할 수 있다. 더보기
남은 숫자 99개의 값을 저장할수 있는 배열 k[0], k[1], k[2], ... , k[98] 이 있다.1부터 100까지의 값이 들어 있는 집합 {1, 2, 3, ..., 100}에서 무작위로 수를 꺼내어 배열에 저장했다.집합에 들어 있는 원소의 수는 100개인 반면, 배열은 값을 99개까지만 저장할 수 있으므로 집합 안에 하나의 숫자가 남았다.남은 것이 어느 수인지 확인할 수 있는 방법은? 조금 오래된 문제이긴 하다. 하나하나 모두 해보는 방법으로 배열안에 숫자를 모두 확인하는 방법이 있지만, 컴퓨터에게 그리 적절한 방법은 아닌 듯 하다. 그리 어렵지 않으니 조금만 생각하면 답을 찾을 수 있을 것이다. 우선, 1부터 100까지의 합은 (1+100)*50으로 5050이다.한편, 배열에 모두 저장되고 숫자가 한개.. 더보기