DB 63

[MySQL] join 사용

: 여러개의 테이블을 묶어 하나의 테이블로 만들어 사용하는 것 ⭐ 원하는 데이터가 다른 테이블에 흩어져 있을 경우 join을 사용 예) A를 받은 학생의 명단 (학번, 이름) attend의 at_score와 student의 std_name, std_num이 필요 join의 종류 : 내부 조인(inner join) / 외부 조인(outer join) / 상호 조인(cross join) inner join (그냥써도 inner로 간주) select 열 목록 from 기준 테이블명(관계 테이블=가운데 있는 테이블) (inner) join 참조테이블명 on 조인조건(fk) where 조건 group by having order by desc / asc ; 기준 테이블 = 보통 묶어주는 중심 테이블 inner은 ..

[MySQL] ERD 수강관리프로그램 3.업데이트 (update, if, case)

1. attend 테이블의 수강년도(at_year) 을 2023으로 변경 mysql> update attend set at_year = 2023; Query OK, 16 rows affected (0.00 sec) Rows matched: 16 Changed: 16 Warnings: 0 mysql> select * from attend; +--------+------------+-------------+---------+---------+--------+----------+-----------+-------+---------------+----------+ | at_num | at_std_num | at_co_code | at_year | at_term | at_mid | at_final | at_att..

[MySQL] ERD 수강관리프로그램 2. 내부 데이터 삽입

1. student 테이블 데이터 삽입 insert into student values (), (), () ; mysql> insert into student values -> ('2019160123','정봉준','컴퓨터공학과',2,64), -> ('2019456001','강길동','디자인',3,60), -> ('2020123001','강나래','화학공학',1,21), -> ('2020123020','박철수','화학공학',1,20), -> ('2020160001','강철수','컴퓨터공학',1,20), -> ('2020160002','나영희','컴퓨터공학',1,19); Query OK, 6 rows affected (0.01 sec) Rec..

[MySQL] ERD 수강관리 프로그램 1. 생성 (속성)

✔ table생성 mysql> create database school; Query OK, 1 row affected (0.01 sec) mysql> use school; Database changed mysql> create table student( -> std_num varchar(10), -> std_name varchar(20) not null, -> std_major varchar(20), -> std_term int, -> std_point int, -> primary key(std_num)); Query OK, 0 rows affected (0.01 sec) mysql> desc student; +-----------+-------------+------+-----+---------+---..

[MySQL] SQL 내장함수 : 문자열 함수

SQL 문자열 함수 Concat(문자1, 문자2..) : 문자열 연결 2023 03 27 같은 날짜 연결시에 사용 mysql> select concat("ad",'cd'); +-------------------+ | concat("ad",'cd') | +-------------------+ | adcd | +-------------------+ 1 row in set (0.00 sec) length(문자) : 문자의 길이 영어의 경우 length사용 한글의 경우 lengrh사용시 *2로 출력 -> char_length로 사용 mysql> select length('가나다'); +------------------+ | length('가나다') | +------------------+ | 6 | +-----..

[MySQL] SQL 내장함수 : 날짜함수

SQL 날짜함수 Adddate / subdate : 날짜를 기준으로 ~후, ~전의 날짜 adddate(날짜, interval 7 day) : 택배에서 많이 사용 adddate(날짜, interval 1 month) adddate(날짜, interval 2 year) interval 뒤쪽의 값 = year, month, day, hour, minute, second curdate() : 오늘 날짜 / curtime() : 오늘 시간 mysql> select curdate(); +------------+ | curdate() | +------------+ | 2023-03-27 | +------------+ 1 row in set (0.00 sec) mysql> select curtime(); +------..

[MySQL] SQL 내장함수 : 숫자함수

SQL 숫자함수 산술연산 (+ - * / ) mysql> select 3+9; +-----+ | 3+9 | +-----+ | 12 | +-----+ 1 row in set (0.00 sec) Mod(값1, 값2) : 값1을 값2로 나눈 나머지 mysql> select mod(10,3); +-----------+ | mod(10,3) | +-----------+ | 1 | +-----------+ 1 row in set (0.00 sec) Round(값, 자리수) : 소수점 자르기 round(값, -1) : 올림 mysql> select round(123.5,0); +----------------+ | round(123.5,0) | +----------------+ | 124 | +-------------..

[MySQL] 트랜잭션 (transaction) 생성

: 하나의 작업을 하기위한 명령어 묶음 단위 하나의 트랜잭션에서 실행하는 모든 명령어가 모두 완료되어야 = 전체가 완료되는 형태 만약, 하나라도 작업이 취소된다면 모두 취소 (성공-성공-실패-성공 = 실패) 명령을 모두 받아보고 나중에 결정하는 개념 임시 실행한다는 개념 (결과를 임시 저장=미리해보기) update, delete 에서 테스트 확인용으로 사용! 트랜잭션 transaction 생성 Start transaction 명령어 1; 명령어 2; ... commit ; / rollback ; - commit : 작업 반영 - rollback : 작업 취소 DB에서 JAVA로 받아 조건을 달아서 사용 JAVA에서 if ( ... == commit )으로 사용 commit 그대로 실행 사용시 mysql>..

[MySQL] 타 테이블의 값을 현재 테이블에 삽입하기

타 테이블을 검색 -> 원하는 값만 가져와 삽입 위치에 맞게 작성하고, 가져올 값도 해당 위치에 적기 valuse 대신 select ~ from 가져올테이블명으로 삽입 예) product 테이블의 name, price을 가져와 삽입 insert into buy (customer, product_name, price, amount) select '다래', name, price, 3 from product where num = 3; -- select를 이용하여 원하는 위치에 타 테이블의 값 삽입 insert into buy(customer, product_name, price, amount) select '다래', name, price, 3 from product where num = 3; mysql> se..

[MySQL] 연산자 Operator

연산자 : 특정 작업을 하기 위한 기호 또는 문자 사용 : 앞에 select를 넣고 연산! (잘 사용하지는 않음) null을 포함한 계산은 null로 처리됨! (값이 생기지 X) ex) 나이가 증가하는 경우 사용 mysql> select 3+5; +-----+ | 3+5 | +-----+ | 8 | +-----+ 1 row in set (0.00 sec) 연산자 종류 비교연산자 (관계연산자) : 주어진 좌우 값을 비교하는 연산자 크다 > = 크거나 같다 < = 작거나 같다 = 같다 같지 않다 논리연산자 and 그리고 or 또는 not 아니면 우선순위 결정 ( ) 기타 연산자 if not exists(존재하지 않는다면) / if exists(존재한다면) is null (null인 경우) / is not n..