반응형 SQL14 mysql 스키마 & 계정 & 테이블 생성방법 localhost & 포트 확인방법 로그인시 첫 진입화면 주석 종류 -- 주석 ## 주석 데이터 스키마 생성 구문 create database spring default character set utf8; 계정 생성 구문 #계정 생성 구문 - create user '아이디' identified by '비밀번호'; create user 'spring' identified by 'spring'; 권한 부여 구문 ## grant all privileges on 스키마.* to '계정명'; grant all privileges on spring.* to 'spring'; 새로운 계정으로 로그인 SQL 구문 형식 ##오라클 -> MYSQL ## varchar2 -> varchar ## number(10) -> i.. SQL 2023. 2. 3. MYSQL 설치 https://www.mysql.com/ MySQL Over 2000 ISVs, OEMs, and VARs rely on MySQL as their products' embedded database to make their applications, hardware and appliances more competitive, bring them to market faster, and lower their cost of goods sold. Learn More » www.mysql.com MySQL 홈페이지에서 ->DownLoads ->MySQL Community (GPL) Downloads » ->MySQL Installer for Windows 여러가지 버전중 my SQL Installer for Wind.. SQL 2023. 2. 3. 47일차 22.11.25 --plsql(프로그래밍 SQL) /* 오라클에서 제공되는 프로그래밍 기능 일반적인 프로그래밍과는 차이가 있지만, 오라클 내부에서 아주 적절한 방식을 적용 쿼리문의 집합으로 어떠한 동작을 일괄처리하기 위한 용도로 사용 절차형 sql(plsql)은 코드 부분만 선택하여 F5로 컴파일하여 실행 */ --출력을 허용함 set serveroutput on; declare vi_num number; --변수 선언 begin vi_num := 100; --대입 dbms_output.put_line('vi_num: ' || vi_num); -- 출력 end; /* --연산자 일반 SQL문의 모든 연산자의 사용이 가능하고 특별하게 **는 제곱을 의미 */ declare a number := 2**2*3**2; -- 4.. SQL 2022. 11. 29. 44일차 22.11.22 SQL - JAVA JDBC연동 insert문 package naver.srlee3637.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class JDBCInsert { public static void main(String[] args) { //insert String url = "jdbc:oracle:thin:@localhost:1521:xe"; // 주소 String uid = "hr"; // 계정 String upw = "hr"; // 비밀번호 String sql = "insert into auth v.. SQL 2022. 11. 29. 43일차 22.11.21 논리적모델링 - 테이블 정규화 정규화 (Normalization) 정제되지 않은 데이터를 관계형 데이터베이스 어울리게 만들어주는 방법 정규화는 1 정규화 ~ 5 정규화 까지 있지만 , 실무에서는 대체로 1~3 정규화까지의 과정을 거침 보통은 3 정규화까지 함 시험에 순서가 나오니 도부이결다조라고 외우면됨 제1 정규화 (First Nomal Form) - 도메인이 원자값, 하나의 칸에는 하나의 값만 들어가야함 제2 정규화 (Second Nomal Form) -부분적 함수 종속 제거 A컬럼이 PK에 종속되고 B컬럼이 A에 종속되면 PK > A > B인데 이런 케이스는 나눠줘야함 제3 정규화 Thired Nomal Form) -이행적 함수 종속 제거 A와 B 컬럼이 PK에 종속되면 테이블을 나눠줘야함 BCNF.. SQL 2022. 11. 21. 42일차 22.11.18 *롤(Role) - 사용자에 대해 부여될 수 있는 권한 집합 -connect : 접속 권한 -resource : table, sequence view 생성 권한 --계정 생성 create user com01 identified by COM01; --권한 부여 grant create session, create table, create sequence, create view to COM01; --테이블 스페이스 alter user COM01 default tablespace users quota unlimited on users; -- 계정삭제 -- drop -------------------------------------------------------------------------------- --.. SQL 2022. 11. 18. 41일차 22.11.17 Index index = 원하는 컬럼을 빠르게 찾을 수 있게 만들어진 데이터 구조 인덱스는 primary key 혹은 unique 제한규칙에 의해 자동적으로 생성되기도 함 인덱스는 고유인덱스와 비고유인덱스로 나뉨 UNIQUE INDEX = 고유인덱스는 중복이 안되는 컬럼에 고유인덱스를 정의함 BITMAP INDEX = 중복이 되는 값을 소지한 컬럼은 비고유인덱스로 정의 -------------------------------------------------------------------------------- --INDEX --INDEX는 PRIMARY KEY, NIQUE 제약 조건에서 자동으로 샛어되고, 조회르 빠르게 해주는 HINT역할을 합니다. --INDEX종류로는 고유, 비고유 인덱스가 있다. .. SQL 2022. 11. 17. 40일차 22.11.16 **제약조건 - 컬럼에 대한 조건 - 테이블의 삭제도 방지할 수 있음 *primary key -> 중복 허용 안됨 -> null값이 들어가지 않음 -> 가장 강한 제약 조건 *foreign key -> 중복허용 -> null값 허용 -> pk에 없는 값은 들어갈 수 없음 *not null -> null값을 허용하지 않음을 지정 -> primary key는 기본적으로 not null *unique key -> 데이터가 중복으로 들어갈 수 없음을 지정 -> ex) 주민번호 -> null값 허용 ---> not null + unique key = primary key의 성질 *check -> 특정 컬럼에 값이 들어갈 때 지정된 값만 들어갈 수 있게 지정 -> check() 로 조건 정의 *제약조건 정의 - 제.. SQL 2022. 11. 16. 39일차 22.11.15 **DML(Data Manipulation Language) - Insert - Update - Delete - Merge - CTAS - 데이터를 추가(insert), 수정(update), 삭제(delete)하는 문장 실행 - 진짜의 원본 데이터가 실행되게 하려면 트랜젝션이 필요(commit, rollback...) * Insert - 새로운 행 추가 *update - 특정 행을 명시해야한다 - 조건절은 무족건 넣어줘야한다 *delete - 조건절은 무족건 넣어줘야한다 - 웬만하면 키(pk)로 지운다 *merge -데이터 존재 여부를 체크하고 데이터가 있으면 update, 데이터가 없으면 insert -when matched then -> 매치되는 데이터가 있을 때 -> update -when not .. SQL 2022. 11. 15. 38일차 22.11.14 ********************************* 인라인 뷰 ********************************* - 조회한 select문을 다시 조회하는 것 - 서브쿼리를 하나의 테이블, 또는 뷰처럼 사용 -> 테이블 위치에 서브쿼리가 들어가는 것 - rownum -> order을 거치면서 순서가 섞이기 때문에 안쪽에서 서브쿼리로 먼저 원하는 조건대로 정렬한 뒤 뽑아냄 - rownum은 항상 첫번째 행부터 조회해야한다, 안그럼 값이 안나옴 -> 중간 값을 빼고 싶으면 3중 쿼리 사용해야함 **DML(Data Manipulation Language) - 데이터를 추가(insert), 수정(update), 삭제(delete)하는 문장 실행 - 진짜의 원본 데이터가 실행되게 하려면 트랜젝션.. SQL 2022. 11. 15. 37일차 22.11.11 **조인 feat.yeop - 중복되는 컬럼이 있다면 꼭 어떤 테이블의 컬럼인지 지칭해줘야 한다 -> 테이블.컬럼명 ex) info.auth_id * join~on 절을 반복적으로 사용하면 3개 이상의 테이블에서도 조인을 수행할 수 있따 *****self join***** - 하나의 테이블에 동일한 테이블을 붙임 ex) employee 테이블에 employee 테이블 붙이기 - 그러나 내 테이블에 연결될 키를 가지고 있어야 함 select * from info; select * from auth; --inner join select * from info i inner join auth a on i.auth_id = a.auth_id; --left outer join select * from info i .. SQL 2022. 11. 11. 36일차 22.11.10 그룹함수 여러 행을 하나의 결과 값으로 뽑아주는 함수 AVG : 평균 SUM : 합계 MIN : 최솟값 MAX : 최댓값 COUNT(expr) : 행의 개수 NULL 제외 COUNT(*) : 행의 개수 NULL 포함 COUNT(*)를 제외한 나머지 함수들은 NULL값을 무시하고 계산 (1) count(컬럼) - 행의 개수를 세는데 null 값이 아닌 행의 개수 출력 ex) count(commission_pct) -> 상여금 컬럼의 null 값 제외 (2) count(*) - 전체 행의 개수 출력 ※주의!! 그룹함수는 일반 컬럼과 동시에 출력이 불가능하다※ **Group by 절 - where절 다음, order절 이전에 위치 - 여러 행 데이터에서 특정 그룹별로 묶어서 사용할 때 사용된다 ex) 부서별로.. SQL 2022. 11. 10. 이전 1 2 다음 반응형