MySQL 27

MySQL_UNIQUE/CHECK/DEFAULT

■ UNIQUE 제약 조건 :  ' 중복되지 않는 유일한 값' 을 입력해야 하는 조건PRIMARY KEY와 거의 비슷하며 차이점은 NULL 값을 허용한다(* PRIMARY KEY는 꼭 NOT NULL)NULL은 여러개가 입력되어도 상관없다회원 테이블의 예를 든다면 주로 Email주소를 UNIQUE로 설정하는 경우가 많다■ CHECK 제약 조건 : 입력되는 데이터를 점검하는 기능.KEY 열에 마이너스 값이 들어올 수 없게 한다던지, 출생년도가 1900년 이후이고 현재 시점 이전이어야 한다던지 등의 조건을 지정한다예)CREATE TABLE usertbl     (userID CHAR(8) PRIMARY KEY,      name VARCHAR(10) ,      birthYear INT CHECK (birt..

MySQL 2024.09.12

MySQL_FOREIGN KEY

외래키 (FOREIGN KEY) 제약 조건 : 두 테이블 사이의 관계를 선언함으로써 데이터의 무결성을 보장해 주는 역할외개 키 관계를 설정하면 하나의 테이블이 다른 테이블에 의존하게 됨  -제약 조건 : 데이터의 무결성을 지키기 위한 제한된 조건을 의미특정 데이터를 입력할 때 무조건적으로 입력되는 것이 아닌, 어떠한 조건을 만족했을 때에 입력되도록 제약할 수 있음특정데이터를 입력할 때 무조건 적으로 입력되는 것이 아니라 어떠한 조건을 만족했을 때 입력될 수 있도록 하는 것이다 위 사진에서는 usertbl에 jyp가 없어서 buytbl에 jyp 거 들어가서 오류외래키 때문 MySQL은 데이터의 무결성을 위해서 다음의 6가지 제약 조건을 제공한다1. PRIMARY KEY 프라이머리키를 적용하는 열은 무조건 ..

MySQL 2024.09.12

My_SQL_ UNION/ UNION ALL/ NOT IN/ IN

- UNION : 두 쿼리의 결과를 행으로 합치는 것형식 :SELECT 문장1        UNION [ALL]SELECT 문장2  SELECT 문장1과 SELECT 문장2의 결과 열의 개수가 같아야하고, 데이터 형식도 각 열 단위로 같거나 서로 호환되는 데이터 형식이어야 한다. 당연히 문장1의 결과는 INT 인데, 문장2의 결과는 CHAR라면 오류 발생또한 열 이름은 문장1의 열 이름을 따름UNION만 사용하면 중복된 열은 제거되고 데이터가 정렬되어 나오며, UNION ALL을 사용하면 중복된 열까지 모두 출력 정의: 두 쿼리의 결과를 합치는 것활용논리적으로 다른 의미의 결과를 합치는 것은 의미가 없음, 더 나아가 때로는 에러 발생대용량 테이블을 서로 분리했다가 조회 후 다시 합칠 때 유용ex) 평소에..

MySQL 2024.09.12

MySQL_CROSS JOIN

CROSS JOIN(상호 조인) :한 쪽 테이블의 모든 행들과 다른 쪽 테이블의 모든 행을 조인 시키는 기능즉, CROSS JOIN의 결과 개수는 두 테이블 개수를 곱한개수가 됨CROSS JOIN에는 ON구문을 사용할 수 없음CROSS JOIN의 용도는 테스트로 사용할 많은 용량의 데이터를 생성할 때 주로 사용 예) employees DB에서 약 30만 건이 있는 employees 테이블과 약 44만 건이 있는 titels를 CROSS JOIN시키면 약 1300억 건의 데이터를 생성할 수 있음.진짜로 데이터를 생성하면 시스템이 다운되거나 디스크 용량이 모두 꽉 찰 수 있으므로COUNT(*)함수로 개수만 카운트 하면 된다USE employees;SELECT count(*) AS '데이터개수' FROM em..

MySQL 2024.09.12

MySQL_OUTER JOIN

OUTER JOIN( 외부 조인) :조인의 조건에 만족되지 않는 행까지도 포함시키는 것, 자주 사용되지 않지만 가끔 유용하게 사용되는 방식 형식 : SELECT FROM       OUTER JOIN                            ON [WHERE 검색조건]; 외부 조인(Outer Join)의 종류:LEFT OUTER JOIN: 왼쪽 테이블의 모든 행을 포함하고, 오른쪽 테이블에 일치하는 데이터가 없을 경우 NULL을 반환합니다.RIGHT OUTER JOIN: 오른쪽 테이블의 모든 행을 포함하고, 왼쪽 테이블에 일치하는 데이터가 없을 경우 NULL을 반환합니다.FULL OUTER JOIN: 두 테이블 모두에서 일치하는 데이터는 반환하고, 일치하지 않는 데이터는 NULL로 표시됩니다.예..

MySQL 2024.09.12

MySQL_INNER JOIN

지금까지 우리는 대개 하나의 테이블을 다루는 작업을 위주로 수행했음이를 기반으로 지금부터는 두 개 이상의 테이블이 서로 관계되어 있는 상태를 고려해 볼 예정 ● JOIN (조인) : 두 개 이상의 테이블을서로 묶어서 하나의 결과 집합으로 만들어 내는 것 -데이터베이스의 테이블 : 중복과 공간 낭비를 피하고 데이터 무결성을 위해서 여러개의 테이블로 분리하여 저장함그리고 이 분리된 테이블들은 서로 관계를 맺고 있다. ◆ INNER JOIN (내부조인): 조인 중에서 가장 많이 사용됨. 일반적으로 JOIN이라고 얘기하는 것이 INNER JOIN을 지칭한다조인키에 해당하는 각 테이블의 열값을 비교해서 조건에 맞는 값을 검색 예) 구매테이블을 보면 물건을 구매한 사용자의 아이디와 물건 등의 정보만 나타남그런데 이..

MySQL 2024.09.11

MySQL_삭제 후 재설치

1. MySQL 서비스 중지먼저, MySQL이 실행 중인 경우 서비스를 중지해야 합니다.Windows 검색창에 services.msc를 입력하고 서비스 관리 창을 엽니다.MySQL 또는 MySQL 관련 서비스(MySQL80 등)를 찾아 중지합니다.또는 명령 프롬프트에서 다음 명령을 실행할 수 있습니다:powershell창에  net stop MySQL80 *(MySQL 서비스 이름에 따라 다를 수 있음)2. MySQL Installer를 사용하여 제거MySQL Installer는 MySQL 설치와 제거를 모두 관리합니다.MySQL Installer 실행:MySQL을 설치할 때 사용한 MySQL Installer를 다시 실행합니다. 만약 MySQL Installer가 없다면 MySQL 공식 웹사이트에서 다..

MySQL 2024.09.11

MySQL_Windows Powershell(관리자) DB용량 늘리기

MySQL 최대 파일 크기 및 허용된 파일의 경로 추가하기  1. Windows의 [시작] 버튼에서 마우스 오른쪽 버튼을 클릭하고 [Windows Powershell(관리자)] 선택 후 클릭    Powershell(관리자) 실행한 후 CMD 명령 입력 후 ENTER2. 다음 명령을 진행하기 (한 행씩 입력 후 ENTER) CD %PROGRAMDATA% CD MySQL CD "MySQL Server 8.0" DIR 3. 파워쉘에서 NOTEPAD my.ini 명령으로 파일을 열고 Ctrl+F 를 눌러서 max_all로 검색    max_allowed_packet 값을 1G 또는 1024M 로 변경한 후 저장 , 메모장 닫음4. 파워쉘에서 NOTEPAD my.ini 명령으로 파일을 열고   Ctrl+F 를 ..

MySQL 2024.09.11

MySQL_내장함수_시스템 정보 함수

** 시스템 정보 함수 : 시스템의 정보를 출력하는 함수를 제공 - USER(), DATABASE() : 현재 사용자 및 현재 선택된 데이터베이스를 구함예) SELECT CURRENT_USER(), DATABASE(); --결과 : 현재 사용자와 현재 선택된 데이터베이스 반환 - FOUND_ROWS() : 바로 앞의 SELECT 문에서 조회된 행의 개수르 구함예) USE sqldb;SELECT * FROM usertbl;SELECT FOUND_ROWS(); -- 고객 테이블의 10개 행을 조회했으므로 10이 반환 - ROW_COUNT() : 바로 앞의 INSERT, UPDATE, DELETE문에서 입력, 수정, 삭제된 행의 개수 반환  CREATE, DROP문은 0을 반환하고 SELECT문은 -1 반환예..

MySQL 2024.09.11

MySQL_내장함수_날짜 및 시간 함수

날짜 및 시간 함수 - ADDDATE(날짜, 차이), SUBDATE(날짜, 차이) : 날짜를 기준으로 차이를 더하거나 뺀 날짜를 구함예)1. SELECT ADDDATE('2025-01-01', INTERVAL 31 DAY),ADDDATE('2025-02-01', INTERVAL 1 MONTH); 2. SELECT SUBDATE('2025-01-01', INTERVAL 31 DAY) , SUBDATE('2025-01-01', INTERVAL 1 MONTH);  - ADDTIME (날짜/시간, 시간) , SUBTIME (날짜/시간, 시간) : 날짜/시간을 기준으로 시간을 더하거나 뺀 결과 예) 1. SELECT ADDTIME ('2025-01-01 23:59:59', '1:1:1'), ADDTIME ('15..

MySQL 2024.09.11