mysql -u root -h meta //meta sql에 접속.

mysql -p mysql //접속


create database korea;  //테이블 생성


use korea;   //korea DB로 접속


create table stdtbl(          //stdtbl 테이블 생성

    -> stdid int not null primary key,

    -> name char(15) not null,

    -> age int(10) not null,

    -> height varchar(10),

    -> sex char(5),

    -> addr varchar(25));


desc stdtbl;     //내림차순으로 테이블 확인



create table haktbl (
    -> num int not null auto_increment primary key,
    -> haknum int not null,
    -> name char(15),
    -> class1 char(15),
    -> group1 varchar(25),
    -> etc char(15));



alter table stdtbl rename stdtbl7;  //테이블명 변경


[속성 변경]
modify
alter table stdtbl modify name char(15);  



 alter table stdtbl modify name varchar(15) not null; 


alter table stdtbl change name name7 char(15) not null; 
//테이블명과 속성 값 까지 변경

alter table stdtbl drop primary key; //기본키삭제


alter table stdtbl modify stdid int not null  primary key; 
//기본키 생성



alter table stdtbl drop addr;  //addr 필드 삭제


alter table stdtbl add addr varchar(25);


alter table stdtbl add weight int not null after name7;
//name7 다음에 weight필드 추가


alter table stdtbl add num int first; //맨 처음에 num 필드 추가


alter table stdtbl modify num int not null;  //not null로 변경



[테이블 복사]
create table stdtbl2(select * from stdtbl);  //stdtbl 테이블 복사




[데이터 삽입]
insert into stdtbl values(001,001,'pyw',60,21,'183','M','Seoul');


select * from stdtbl;



insert into haktbl values(null,001,'pyw','computer','blackcat','hi'); 


//auto_increment을 준 필드에 null을 입력하면 자동으로 1씩 증가한다.




[데이터 업데이트]




update haktbl  set haknum=3 where name7='pjs';  
//pjs의 haknum을 3으로 변경



[구매 테이블]

1. 테이블 생성


 create table buytbl(          

    -> num int not null auto_increment primary key,

    -> userId int not null,

    -> name char(15) not null,

    -> sex char(10) not null,

    -> product varchar(20) not null,

    -> price int not null,

    -> number1 int not null,

    -> addr varchar(25));


2. flush privileges;  //즉시적용

3. desc buytbl;      //테이블 생성 확인


4. 데이터 삽입
insert into buytbl values(null,001,'pyw','M','coumputer',1000000,2,'Seoul');

5. flush privileges;  //즉시적용


6. 분류 번호 추가 

alter table buytbl add group1 char(15) after number1;


7. 그룹1 값을 업데이트로 넣어주기.

update buytbl set group1='elec' where num=1;




8. 계속 데이터 삽입





[필드명 별칭부여]

필드명 as "별칭"

select name as "아이디",product as "상품명",price as "가격" from buytbl;





[order by]  

필드명 desc  //내림차순 

필드명 asc //오름차순

limit 3 // order by로 조건 건 검색 중 3개만 검색


select * from buytbl order by group1 asc limit 3;

 //group1을 오름차순으로 정렬하여 3개만 검색


select * from buytbl where price >= 60000 and price <= 100000;

//60000<=price <=100000원 사이의 값 검색


select * from buytbl where price >= 6000 and price <=50000 order by num desc;
//6000~50000원 사이의 값을 num을 기준으로 내림차순으로 출력


select * from buytbl where price between 7000 and 900000;

//7천원과 900000원 사이 값 출력


[최댓값과 최소값]

 select name,max(price),min(price) from buytbl;  //제일 비싼 값과 제일 싼값 



[비슷한 글자 검색]

select * from buytbl where name like 'p__';  
//p로시작하구 뒤에 2글자



select * from buytbl where name like 'p%';
//p로 시작하는 글자

[sum 집계함수]

select * from buytbl;




select userid,group1, sum(price) from buytbl group by group1 order by sum(price) asc;
//group1의 속하는 price을 합친 값을 검색



select userid,group1, sum(price*number1) from buytbl group by group1 order by sum(price) asc;

//group1의 속하는 price*number1 값을 검색



elect userid,group1, sum(price*number1) from buytbl group by group1 with rollup;

//합계 표시 rollup





[union]

- 1개 이상의 테이블을 가져올 때 사용.

- 테이블을 합칠 때 사용.

- 컬럼 수가 같아야한다.

- 데이터 타입이 같아야한다.

- 주로 컬럼 개수를 알아낼 때 사용.

- union all //중복되는 것도 출력



select user,first_name,last_name from tusers

union  

select first_name,user,last_name from users;



[개수 알아낼 때 사용]


- 오류가 나지 않을 때 까지 null을 통해 유추.


select * from tusers

union  

select null,null,null,null,null,null ; 

//굳이 null이아니라 1,2,3,4,5,6 이런식도 가능





[ 개수 출력]


select count(first_name) from tusers;         //first_name의 총 개수

select count(*) from tusers;         //전체 행의 개수







[mysql 접근통제]

vi /etc/my.cnf            //mysql 환경설정파일


bind-address=192.168.232.210 //192.168.232.210 만 허용






[mysqlshow]

mysqlshow --host=192.168.232.131  //db에 접속하지 않고 db정보를 볼 수 도 있다.

mysqlshow --host=192.168.232.131 dvwa 

mysqlshow --host=192.168.232.131 --count dvwa 










'Web Security' 카테고리의 다른 글

dvwa 모의 해킹  (0) 2019.04.08
sql injection  (0) 2019.04.04
CSRF(Cross Site Request Forgery)  (0) 2019.04.02
brute force 공격  (0) 2019.04.02
crunch [사전파일생성]  (0) 2019.04.02

+ Recent posts