ALTER TABLE xyz_tbl -> add address varchar(20) after city;
: xyz_tbl 테이블에 address varchar(20)을 추가하는데, city 열 뒤에 추가가하라는 의미
행: delete from 테이블명 조건
조건절에 열명in(,): ()로 묶인 것을 동시에 삭제 할 수 있음
열: alter table 테이블명
drop 열명
mysqldump:
limit: 오라클에서의 rownum > 행의 숫자를 보여줌, 자동으로 지정되는 값
바이너리 백업
: -u(백업할 곳의 사용자) -p(해당 사용자의 패스워드)
: mysqljotcopy:
mysqljotcopy -u=() -p=() DB명
TXT 백업
: mysqldump -u() -p() DB명 > 파일 저장된 곳
: table의 내용을 지울 수 있음
레코드를 삭제할 때 사용하게 됨
select, insert, create, drop, refrences, alter, creat view
사용자명을 변경 한 후 기존 사용자에 대해서 변화를 줄 경우 아래와 같이 user table에 사용자가 없음을 확인 할 수 있음
service mysql stop
MYI 파일에 대한 확인을 할 수 있음
:MySQL 데이터베이스 저장엔진
오류가 발생하면 오류를 수정할 수 있음
권한 허용, 외부에서 접속할 수 있도록 허용해줌
error 발생 시
bind-address:
어떤 주소의 요청을 허용할 것 인지 설정,
0.0.0.0/0 설정하면 모든 트래픽에 대해서 요청을 허용, 원격 커넥션이 이루어짐
127.0.0.1 바인딩하는것과 인스턴스의 IP 바인딩 하는 것 차이
: NIC에는 하나의 MAC주소와 IP주소가 할당, 소켓 생성 시 LOCALHOST 요청
소켓 파일(파일 디스크립터, Local IP, Local port, remote ip, remote port 등)
127.0.0.1을 할당하면 127.0.0.1을 통해 생성된 소켓 파일을 통해서 온 요청만 서버에 허용하는 의미이기에, private-ip 요청을 보내도 커넥션 되지 않음
CONCAT(): 둘 이상의 문자열 or 둘 이상의 컬럼 값을 순서대로 합쳐서 반환
반환되는 값에 null 포함되면, 반한되는 값도 null 반환
CONCAT_WS():둘 이상의 문자열 둘 이상의 컬럼 값을 반복되는 구분자를 넣고 순서대로 합쳐주는 반환해주는 함수 > 둘 이상의 문자열이 있는 경우에 문자열 사이에 설정 구분자가 필요
양쪽에 중복되는 값을 JOIN
5.7 Version에서는 sql_mode 항목이 생겼으며 그 옵션 안에 only_full_group_by 내용이 존재함에 따라 error가 발생됨
A.group by 진행하니 only_full_group 이라는 error 발생
B.select @@ sql_mode 확인하여 보니 only_full_group인 것이 확인됨
C. 일시적으로 현재 SESSION에서 SQL_MODE에서 only_full_group을 제외하여 mode 설정
SET SESSION sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
D. 현재 세션의 mode를 확인해보면 only_full_group mode가 제외됨을 확인 할 수 있음
E. A에서 시도한 group by를 시도해보면 group by 로 생성이 가능함
테이블 설정 시 default로 설정할 수 있음
alter table ()
atler (열 명) set default 문
: alter가 2번 들어가는 것이 특이함
데이터 쿼리를 빠르게 수행시키는데 쿼리할 데이터가 전체의 10% 넘지 않을 때만 효과가 있고, 넘으면 인덱싱하느라 시간 소요가 커, 효율에 좋지 않음
person2 table에 lname을 index로 idx_lname 생성
두 개의 항목에 걸 수 있음ta
삭제 역시 alter table > drop index >
서브쿼리를 이용해서 특정 조건에 해당되는 뷰 테이블을 생성, 여러 테이블에서 필요한 항목들을 JOIN해서 미리 뷰 테이블 작성하여 바로 VIEW로 만들어진 테이블에서 쿼리를 수행하게 해서 편리
create view () as select from () where (조건)
where 절 이후 select 문은 서브쿼리 -> 서브쿼리로 조건에 맞는 것을 추려서
prodname, price를 갖은 view를 생성
create view () as () select from ()
where price > (서브쿼리 조건)
create or repalce view ()
as select from as
inner join on
show full tables where table_type LIKE 'view';
where in (,)
between A and B
=> GUI로 처리하는 도구 phpMyAdmin 와 My SQL WorkBench 도구
phpMyAdmin 사용
A. 도구 사용 시 APM(Apache+PHP+MySQL) 필요, windows APMsetup.exe 도구 사용하듯이
XAMPP라는 도구를 사용해서 한번에 실행
DB 설계 도구 ER-WIN, 튜닝
nano -c /opt/lampp/phpmyadmin/config.inc.php
$i = 0;
i]['password'] = ''; << i]['password'] = 'rootoor'; 이렇게바꿔줌
(위에꺼 두 칸 밑에 있는 servers에서)
//i]['host'] = 'localhost'; << 주석 지우고 localhost를 ip로 바꿔줌. i]['host'] = '192.168.100.129';
또 두 칸 밑에 있는 true를
i]['AllowNoPassword'] = true; << i]['AllowNoPassword'] = false; 로 바꿈E. nopassword를 false로 해줘야 패스워드를 사용한다는 뜻이 된다.