분류 전체보기(122)
-
20220216_SQL 기초 6 (PRIMARY KEY를 가진 테이블 수정하기)
어떤 파일을 폴더에 넣을 때 폴더가 그 파일을 이미 가지고 있는 경우, 컴퓨터는 이를 인지하여 사용자에게 창을 하나 띄워준다. SQL에서도 같다. INSERT 시에 중복되는 데이터를 입력하려고 하면 시스템에서 이를 인지하여 ERROR 메세지가 뜨게 된다. (단, PRIMARY KEY가 걸려있는 컬럼일 경우!) INSERT IGNORE INTO memberTbl VALUES('HS', '허순', '부산'); 이 때 INSERT와 INTO 사이에 IGNORE를 넣어주어 테이블이 가진 PRIMARY KEY가 겹치면 건너뛰도록 설정해줄 수 있다. IGNORE 사용시 아래와 같이 쿼리가 먹긴 하는데.. 해당 쿼리문은 HS라는 PRIMARY KEY를 이미 가지고 있기 때문에 이 쿼리문은 warning으로 인지하면서..
2022.02.17 -
20220215_SQL 기초 5(SQL 구문의 분류, INSERT로 자료 넣는 3가지 방법, TRUNCATE로 로그 남기지 않고 빠르게 삭제)
SQL에서 쓰는 쿼리문들은 3가지 타입으로 분류된다. 1. 첫번째는 DML(Data Manipulation Language)이다. 데이터 조작 언어로, SELECT, INSERT, UPDATE, DELETE 구문이 DML에 속한다. 테이블의 데이터를 조회하거나 변경하기 위해서 사용하는 쿼리문이 dml이다. 2. 두번째는 DDL(Data Defination Language)이다. 데이터 정의 언어로 데이터베이스와 테이블 뷰와 인덱스를 생성하고 삭제하는 기능을 가지고 있다. CREATE, DROP, ALTER가 이에 속한다. 3. 세번째는 DCL(Data Control Language)이다. 데이터 제어 언어로 특정 계정에 대한 권한을 부여하거나 빼앗을 때 사용한다. GRNAT, REVOKE, DENY가 이..
2022.02.17 -
20220214_SQL 기초 4 (GROUP BY와 집계함수)
ORDER BY는 데이터를 오름차순, 내림차순으로 조회해주긴 하지만 컬럼명으로 데이터가 그룹핑되어 데이터가 뽑혀나오지는 않는다. 예를 들어 id와 구매 갯수 데이터가 구매 시점별로 적재되어있는 테이블에서 데이터를 조회한다면, 같은 id일지라도 각각 별도의 저장 공간에 데이터가 적재되어 아래의 [전]과 같은 모습을 볼 수 있다. 이는 ORDER BY를 사용하더라도 동일하며, id가 같은 데이터를 그룹핑해주고 싶다면 함수와 함께 GROUP BY라는 키워드를 별도로 사용한다. GROUP BY는 같은 데이터를 하나의 그룹으로 묶어준다. GROUP BY는 컬럼을 인자로 한 집계 함수와 함께 사용하며, 자주 쓰이는 집계 함수는 다음과 같다. AVG() 평균 MIN() 최소값 MAX() 최대값 COUNT() 결과의 ..
2022.02.17 -
20220214_SQL 기초 4 (ANY=SOME과 ALL, ORDER BY와 ASC/DESC, limit)
WHERE 절 안에서 ANY / SOME 구문을 사용하면 모든 데이터에 대해 OR 처리가 된다. 아래의 이중 쿼리에서 내부에 있는 중첩 쿼리의 결과값이 171, 160, 170가 출력된다면, ANY 키워드를 이용하여 OR 처리할 수 있다. SELECT height FROM userTbl WHERE height < ANY (SELECT height FROM userTbl WHERE addr='서울'); (height < 171) OR (height < 160) OR (height < 170) ANY는 OR로 연결된다는 특성상 범위가 가장 넓은 조건 하나로 통일되는데(조건 하나만 만족하면 되므로), 여기서는 height < 171가 가장 넓은 범위를 가지고 있으므로 ANY를 사용한 해당 쿼리문은 171보다 ..
2022.02.17 -
20220214_SQL 기초 4 (서브 쿼리와 alias)
JAVA의 중첩 반복문처럼, 쿼리문 또한 중첩해서 작성할 수 있다. 이전에 SELECT 문으로 작성하여 조회했던 자료의 범위 안에서 새롭게 데이터를 탐색하고 싶다면, 새로 작성하는 쿼리문에서는 WHERE 절에 이전에 작성해두었던 SELECT문을 집어넣어 중첩 형태로 작성한다. 1. 가입 일자가 2021년 이후인 사람 중 가장 먼저 가입한 사람의 가입일을 조회한다. SELECT min(reg_date) FROM userTbl WHERE reg_date > '2021-01-01'; 2. 가입 일자가 2021년 이후인 사람 중 가장 먼저 가입한 사람의 키를 조회한다. SELECT height FROM userTbl WHERE reg_date = (SELECT min(reg_date) FROM userTbl W..
2022.02.17 -
[Mysql] Mac의 CMD에서 Mysql 이용하기
cd /usr/local/mysql/bin cmd에서 Mysql 설치 경로로 이동 ./mysql -u 계정명 -p mysql 로그인 CREATE USER 계정명@'%' IDENTIFIED BY '비밀번호'; 새로운 계정 만들기 GRANT ALL on *.* TO 계정명@'%' WITH GRANT OPTION; 전체 권한 주는 명령어 GRANT SELECT, DELETE ON 스키마명.테이블명 TO 계정명@'%'; 일부 권한 주는 명령어 REVOKE SELECT ON 스키마명.테이블명 FROM 계정명@'%'; 일부 권한 뺏는 명령어 quit exit 로그아웃
2022.02.16