Program/PHP(162)
-
[PHP] MySQL 서로 다른 필드의 값을 합쳐서 출력하기 CONCAT
129_PHP MySQL 서로 다른 필드의 값을 합쳐서 출력하기 CONCAT [요약] 테이블에서 출력한 결과물을 문자열과 합쳐서 출력하는 옵션 CONCAT에 대해 알아보자. 테이블의 서로 다른 필드에 있는 값을 합쳐서 출력할 수도 있당. 이 기능을 구현하려면 CONCAT 이라는 기능을 사용한다. 필드값 뿐만 아니라 일반 문자열을 합쳐서 출력할 수 있다. [CONCAT 사용 방법] SELECT CONCAT(합칠 문자열 또는 필드, 합칠 문자열 또는 필드) FROM 테이블명 다음은 CONCAT를 이용하여 '[누구'의 이메일 주소는 [무엇] 입니다.'라는 문구를 출력하는 쿼리문이다. SELECT CONCAT(name, '의 이메일 주소는', email, '입니다.') FROM myMember; 다음은 위의 쿼..
2022.10.09 -
[PHP] MySQL 특정 필드에 중복값 넣지 않기 UNIQUE
128_PHP MySQL 특정 필드에 중복값 넣지 않기 UNIQUE [요약] 테이블의 필드에 같은 값이 입력되지 않게 하는 옵션 UNIQUE 에 대해 알아보자 테이블의 대표 필드에 promary key를 적용하면 해당 필드에는 같은 값이 들어가지 않는다. primary key 처럼 플드에 같은 값이 들어가지 않게 하는 기능에는 UNIQUE가 있다. primary key는 단 한 번만 사용할 수 있고, 사요할 경우 필드는 해당 테이블의 기준이 되는 필드가 되지만, UNIQUE는 같은 값이 들어가지 않게만 하는 기능을 갖고 있다. 예를 들어, 이메일 주소는 한 사람이 하나씩 갖고 있는 고유한 값이다. 따라서 같은 이메일 주소가 들어가지 않도록 테이블을 설계할 필요가 있다. 다음은 myMember 테이블에 U..
2022.10.09 -
[PHP] MySQL 서브쿼리 사용하기
127_PHP MySQL 서브쿼리 사용하기 [요약] 쿼리문 안의 쿼리문의 서브쿼리 사용에 대해 알아보자. schoolRecord 테이블에서 영어 점수가 가장 높은 사람의 레코드를 출력하려면 어떻게 해야할까? 아마도 조건문에 english = max(english)를 입력할 수 있을 것이다. 하니만 이러한 쿼리문은 에러가 발생한다. max(english)의 값을 알기 위해서는 전체의 영어 점수를 파악해야 하고, 그 중 가장 높을 값을 구해야 하기 때문이다. 그리고 집계함수는 필드를 입력하는 부분에서 사용할 수 있다. SELECT * FROM schoolRecord WHERE english = max(english); 위와 같은 쿼리문은 에러가 발생한다. 이런 경우 서브쿼리를 사용해야 한다. 서브쿼리는 쿼리..
2022.10.08 -
[PHP] MySQL 2개 이상의 테이블 묶어 사용하기 UNION
126_PHP MySQL 2개 이상의 테이블 묶어 사용하기 UNION [요약] 2개 이상의 테이블을 하나의 테이블인 것처럼 사용하는 명령문 UNION 등에 대해 알아보자. 2개 이상의 테이블을 사용할 때 JOIN을 사용했다. JOIN은 일치하는 특정 필드를 기준으로 테이블과 테이블을 연결했다. UNION은 사용하려는 테이블들을 하나의 테이블인 것처럼 사용하게 해주는 기능을 제공한다. 이해하기 쉽게 테이블을 2개 생성하자. 하나의 테이블은 2021년에 탈퇴한 회원의 이름과 이메일 정보를 담고 있으며, 또 하나의 테이블은 2022년에 탈퇴한 회원의 이름과 이메일 정보를 담고 있다. 어떤 회원은 2021년도에 탈퇴했고, 2022년에 가입후 또 탈퇴를 해서 2021년도 테이블과 2022년도 테이블에도 존재한다...
2022.10.08 -
[PHP] MySQL 그룹별 집계 GROUP BY
125_PHP MySQL 그룹별 집계 GROUP BY [요약] 그룹별로 집계함수를 사용하는 명령문 GROUP BY에 대해 알아보자. 그룹별 집계는 특정 집단의 수치를 집계함수를 이용하여 값을 표시하는 것이다. 예를 들어, schoolRecord 테이블에서 반별로 학생들이 영어 평균값을 구할 때에는 GROUP BY를 사용한다. [GROUP BY 사용 방법] SELECT 필드명 FROM 테이블명 GROUP BY 필드명 다음은 반별로 학생들의 영어 점수 평균값을 구하는 쿼리문이다. SELECT class, avg(english) FROM schoolRecord GROUP BY class; 다음은 위의 쿼리문을 사용한 예제이다. 현재 class 필드의 값에 NULL 인 레코드도 있으므로 이를 원래의 값으로 변경..
2022.10.08 -
[PHP] MySQL 집계함수 sum, avg, max, min
124_PHP MySQL 집계함수 [요약] 최대값, 최소값 등을 확인하는 집계함수 명령문 max, min 등에 대해 알아보자. 집계함수는 레코드의 수, 값들의 합계, 평균, 최대값, 최소값을 구하는 함수이다. 집계함수를 학습하기 위해 학생들의 과목별 성적의 합계, 평균값 등을 구해보자. 성적 데이터가 없기 때문에 만들어야 한다. 학생들의 명단은 myMember 테이블을 사용하며, 성적 데이터를 저장할 테이블을 새로 생성한다. [테이블 정보] 테이블 이름 : schoolRecord 필등 : 학생번호 myMemberID 와 값이 일치하게 만듬 클래스(소속 반) 영어 점수 수학 점수 과학 점수 일본어 점수 코딩 점수 schoolRecord 테이블 생성 쿼리문은 다음은 같습니다. CREATE TABLE scho..
2022.10.07 -
[PHP] MySQL 2개 이상의 테이블 사용하기 JOIN
123_PHP MySQL 2개 이상의 테이블 사용하기 JOIN [요약] 연관있는 2개 이상의 테이블 레코드 정보를 불러오는 명령문 JOIN 에 대해 알아보자. 하나의 웹 서비스를 운영하려면 여러 테이블을 사용하게 된다. 포털사이트를 이용하기 위해 가입하는 회원 정보를 담는 테이블, 가입한 카페에 대한 테이블, 게시물을 담는 테이블, 게시물의 댓글을 담는 테이블, 구매한 상품 정보를 담는 테이블, 로그인 기록을 담는 테이블, 공지사항을 담는 테이블, 검색어를 담는 테이블 등 수많은 테이블이 존재한다. 따라서 2개 이상의 테이블을 다루는 방법에 대해 알아야 한다. 현재는 테이터베이스에 myMember 테이블만 있으므로 어떠한 상품의 리뷰 정보를 담는 테이블을 생성해보자. [테이블 정보] 테이블 이름 : pr..
2022.10.06 -
[PHP] MySQL 다수의 조건 사용하기 OR, AND
122_PHP MySQL 다수의 조건 사용하기 OR, AND [요약] WHERE문에서 여러 레코드에 대한 조건을 지정하는 명령문 AND, OR, IN 에 대해 알아보자. WHERE문을 사용하여 회원번호가 1번, 2번, 3번인 회원 데이터를 불러온다면 다음과 같은 쿼리문을 사용한다. WHERE myMemberID = 1 OR myMemberID = 2 OR myMemberID = 3; 또는 >=, =1 AND myMemberID 실행결과 초보자를 위한 PHP 200제 김태영 지음 | 정보문화사
2022.10.06 -
[PHP] MySQL 테이블 초기화하기 TRUNCATE
121_PHP MySQL 테이블 초기화하기 TRUNCATE [요약] 테이블을 초기화하는 명령어 TRUNCATE 에 대해 알아보자. 테이블을 초기화하려면 TRUNCATE문을 사용한다. 테이블의 모든 데이터가 삭제되므로 주의하여 사용해야 한다. DELETE문을 사용하여 레코드를 삭제하는 것과 다른 점은 DELETE문은 레코드를 지우는 기능만 하므로 사용한 primary key를 다시 배정받을 수 없지만, TRUNCATE문은 테이블을 처음 만든 상태로 만든다. 좀 더 쉽게 말하면 현재 myMember 테이블을 DELETE문으로 레코드를 삭제하여 데이터를 새로 입력할 경우 myMemberID가 9부터 시작하지만, TRUNCATE문을 사용하여 레코드를 삭제하면 myMemberID를 1부터 사용 가능하게된다. [테..
2022.10.05 -
[PHP] MySQL 데이터 삭제하기 DELETE
120_PHP MySQL 데이터 삭제하기 DELETE [요약] 레코드를 삭제하는 명령문 DELETE 에 대해 알아보자. 레코드 삭제에 대해 알아보자. 레코드를 삭제하려면 DELETE문을 사용해야 한다. 운영중인 서비스의 회원이 탈퇴한 경우 해당하는 고객의 정보는 지워져야 한다. 이러한 경우 DELETE 문을 사용하여 레코드를 삭제할 수 있다. [레코드 삭제 방법] DELETE FROM 테이블명 조건 다음은 8번 회원의 레코드를 삭제하는 예제이다. DELETE FROM myMember WHERE myMemberID = 8; 다음은 위의 쿼리문을 활용하여 회원번호 8번의 레코드를 삭제하는 예제이다. [예제: 123_delete.php ]
2022.10.05