본문 바로가기

Spring/Model1 _2(MVC)

0822 JSP - mySQL 설치 ~

728x90
반응형

시간이 정말 빠르다 벌써 개발수업들은지도 한달 째..!

 

 

개발 시장에서 점유율이 가장 높은 DB => Oracle, 최근에 mySQL 도 많이 씀 ((둘이 거의 원탑))

 

오라클 (유료) - - 금융, 증권사에서 씀! 공기업 / 함부로 뭔가를 바꿀수 없다. 

mysQL(무료) - - 근데 카뱅은 mySQL씀. 부족한 부분을 기술로 채움 / 입지가 커지고 있다.    

MariaDB - -  mySQL의 완전 무료판 

 

 

 

p.372

설치 1) 

MySQL Installer 8.0.30 다운로드

mySQL 8버전을 공부했습니다. 라고 하라고 함

직전 버전은 5버전 , 5버전, 8버전이 상용화되고 있음 

 

 

설치 2)

 

 

 

 

mySQL 실행 

ADD -> MySQL SERver 8.0.30 버전 클릭 -> next -> Execute -> next -> next 

 

 

 

실행창에서 환경변수 어쩌구 들어갈 것 

 

path 더블클릭 

 

경로 잘 확인 해서 확인, 확인 확인

환경변수 넣어 준 것! 

 

 

 

cmd 창 껐다가 다시 켜야 설정 적용됨

 

 

설치 완료 된 것.

mysql -u root -p 입력  => password 입력하라고 나옴. 1234 넣어줌 

 

mySQL 설치완료!

이제부터, 개발자 sql 쿼리 구문을 알아야함. ((찾아보지않고도 이건 알아야함..))

 

 

[mySQL 접속]1) MySQL Client 프로그램 실행 2) CMD 명령어      mysql -u [아이디]  -h [서버주소] -p [DB명]

 

> mysql -u root -p> 1234 

 

DB서버의 상태> status 


DB 명령어

 

[DB 목록 조회] :

show databases ;

[DB 생성] :

create databases [DB명] ;

[DB 삭제] :

drop databases [DB명] ;

[DB 사용선택] :

use [DB명] ;

 

> create database test ;

> use test ;

> status ; 

 

>create database jspdb ;


[테이블 생성, 조회, 입력, 삭제]

[테이블 조회] :

show  tables ;

 

[테이블 생성] : 

create table [테이블명] (
    필드명1 데이터타입 제약조건,
    필드명2 데이터타입 제약조건,
    필드명3 데이터타입 제약조건,
    필드명4 데이터타입 제약조건,
    필드명5 데이터타입 제약조건,
    필드명6 데이터타입 제약조건
 );

=> 오라클(문자) VARCHAR2 ,  MySQL   VARCHAR

     오라클(숫자) NUMBER     ,  MySQL   INT 

 

[테이블 삭제] :

drop table [테이블명];

 

[테이블 정보(구조)] :

desc [테이블명];

 

> use jspdb ;

> show tables ;

 

 

ex) 테이블명 : test, 필드 : 정수형 - idx

>show tables;

>desc test;

 

 

ex) 테이블명 : test2 , 
      필드 : 정수형 - idx, 실수형(double) - d_num

 

 

ex) 테이블명 : test3 
      필드명    :  정수형 - idx,
                        실수형(double) - d_num,
                        문자형(10글자) - name,
                        문자형(14글자) - jumin 

 


[데이터 입력] :

insert into [테이블명] (컬럼명1,컬럼명2...) values (데이터값1, 데이터값2, .....);

=> 컬럼명을 생략시, 테이블의 모든 컬럼을 순서대로 입력

 

[데이터 조회] : 

SELECT [컬럼명1,...or * ] from [테이블명] (where 조건문);

=> 컬럼명 명시 하는 경우 컬럼의 값만 조회,

     *  명시하는 경우 모든 데이터를 조회 

 

[데이터 삭제] : 

delete from [테이블명] (where 조건문) ;

ex) test 테이블 idx 데이터 1, 2 입력 -> 조회 

> insert into test (idx) values (1) ;

> insert into test values (2) ;

> select * from test ; 

 

=> 테이블 삭제 해보기 

> drop table test ;

 

ex) test 3 테이블 

1,  1.11,  'kim', '900101-1234123' 

2,  2.22,  'jung', '900101-2222222' 

3,  3.33,  'jo'

4,  4.44,  '900101-4444444' 

데이터 입력하기

 

> insert into test3 (idx, d_num,name,jumin) values (1, 1.11, 'kim', '900101-1234123');

> insert into test3 values (2, 2.22, 'jung', '900101-2222222'); =>  중복된 내용이라, 필드값을 생략함 

> insert into test3 (idx, d_num, name) values (3, 3.33, 'jo');

> insert into test3 (idx, d_num, jumin) values (4, 4.44, '900101-4444444');

> insert into test3 values (4, 4.44, ' ' , '900101-4444444');

 2가지 방법 있음!

 

 

 > select * from test3 ; 

> delect from test3 ;


제약조건 

테이블 : test4 

필드명 : idx (int) PK (Primary Key) 

              name (VARCHAR(10))

   

* Primary Key  :  항상 데이터 값이 있어야한다! 

 

ex) test4 테이블에 

     1. 'kim' 정보 입력

 

> insert into test4 values (1, 'kim');

> select * from test4; 

 

 

 

ex) 1, 'lee' 정보 입력 

에러 남!

 

> insert into test4 values (1, 'Lee');

=> PK 값은 항상 고유한 값이어야 한다. (중복 불가능) 

=> UNIQUE 제약조건 

 

 

ex) 2 정보입력

     'Lee' 정보 입력

 

 

> insert into test4 values (2);

> insert into test4 (idx) values (2);

> insert into test4 (name) values ('Lee');

=> PK 값은 항상 존재해야 한다.

     (NULL 값은 불가능) => NOT NULL 제약 조건

 

* PK = Unique + Not NULL 

 

ex) 테이블 : itwill_member

       필드    : idx PK AI (자동증가)

                     name VARCHAR(20)

                     gender VARCHAR(2) 

                     age INT 

                     jumin VARCHAR(14)

create table itwill_member(
	idx INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20),
    gender VARCHAR(2),
    age INT,
    jumin VARCHAR(14)
);

 

mysql> desc itwill_member;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| idx    | int         | NO   | PRI | NULL    | auto_increment |
| name   | varchar(20) | YES  |     | NULL    |                |
| gender | varchar(2)  | YES  |     | NULL    |                |
| age    | int         | YES  |     | NULL    |                |
| jumin  | varchar(14) | YES  |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

mysql> insert into itwill_member values();
Query OK, 1 row affected (0.04 sec)

mysql> select * from itwill_member;
+-----+------+--------+------+-------+
| idx | name | gender | age  | jumin |
+-----+------+--------+------+-------+
|   1 | NULL | NULL   | NULL | NULL  |
+-----+------+--------+------+-------+
1 row in set (0.00 sec)

PK 라는 제약조건을 걸어놨기 떄문에, () null 값을 넣어도 자동으로 1이 증가된다 

mysql> select * from itwill_member;
+-----+------+--------+------+-------+
| idx | name | gender | age  | jumin |
+-----+------+--------+------+-------+
|   1 | NULL | NULL   | NULL | NULL  |
+-----+------+--------+------+-------+
1 row in set (0.00 sec)

mysql> insert into itwill_member values();
Query OK, 1 row affected (0.03 sec)

mysql> select * from itwill_member;
+-----+------+--------+------+-------+
| idx | name | gender | age  | jumin |
+-----+------+--------+------+-------+
|   1 | NULL | NULL   | NULL | NULL  |
|   2 | NULL | NULL   | NULL | NULL  |
+-----+------+--------+------+-------+
2 rows in set (0.00 sec)

2로 증가함. 

 

데이터를  싹 지우고 다시 만들어도 데이터 3부터 다시 시작함 

1번으로 다시 돌리는 방법은? 

auto_increment 를 다시 초기화하는방법? 검색해보기. 

mysql> delete from itwill_member;

 

> ('kim', 'M', 20,900101-1231231;);

> ('Lee', 'W',16,900101-2222222;);

> ('Kang', 'W', 29,900101-4444444;);

> ('Jung', 'M', 33,900101-3333333;);

> ('Yun', 'M', 31,900101-1111111;);

 

mysql> insert into itwill_member (name, gender, age, jumin) values ('Lee','W',15,'900101-2222222');
Query OK, 1 row affected (0.03 sec)

mysql> insert into itwill_member (name, gender, age, jumin) values ('jung','M',21,'900101-1111111');
Query OK, 1 row affected (0.03 sec)

mysql> insert into itwill_member (name, gender, age, jumin) values ('min','w',31,'900101-3333333');
Query OK, 1 row affected (0.03 sec)

mysql> insert into itwill_member (name, gender, age, jumin) values ('park','m',36,'900101-4444444');
Query OK, 1 row affected (0.03 sec)

mysql> select * from itwill_member;
+-----+------+--------+------+----------------+
| idx | name | gender | age  | jumin          |
+-----+------+--------+------+----------------+
|   3 | kim  | M      |   20 | 900101-1231231 |
|   4 | Lee  | W      |   15 | 900101-2222222 |
|   5 | jung | M      |   21 | 900101-1111111 |
|   6 | min  | w      |   31 | 900101-3333333 |
|   7 | park | m      |   36 | 900101-4444444 |
+-----+------+--------+------+----------------+
5 rows in set (0.00 sec)

[WHERE 조건절]

itwill_member 테이블

 

회사명_테이블명

프로젝트명_테이블명

tbl_테이블명

 

 

ex) idx 값이 3 이상인 사람의 정보 모두 조회 

mysql> select * from itwill_member where idx>=3;
+-----+------+--------+------+----------------+
| idx | name | gender | age  | jumin          |
+-----+------+--------+------+----------------+
|   3 | kim  | M      |   20 | 900101-1231231 |
|   4 | Lee  | W      |   15 | 900101-2222222 |
|   5 | jung | M      |   21 | 900101-1111111 |
|   6 | min  | w      |   31 | 900101-3333333 |
|   7 | park | m      |   36 | 900101-4444444 |
+-----+------+--------+------+----------------+
5 rows in set (0.00 sec)

 

ex) 테이블 컬럼명 name 해당하는 정보가 'jung' 의 정보만 조회 

mysql> select * from itwill_member where name = 'jung';
+-----+------+--------+------+----------------+
| idx | name | gender | age  | jumin          |
+-----+------+--------+------+----------------+
|   5 | jung | M      |   21 | 900101-1111111 |
+-----+------+--------+------+----------------+
1 row in set (0.00 sec)

 

ex) 이름이 kim이면서 나이가 15살 이상인 사람의 정보를 조회 (and &&)

mysql> select * from itwill_member where name ='kim' && age >= 15;
+-----+------+--------+------+----------------+
| idx | name | gender | age  | jumin          |
+-----+------+--------+------+----------------+
|   3 | kim  | M      |   20 | 900101-1231231 |
+-----+------+--------+------+----------------+
1 row in set, 1 warning (0.00 sec)

and 도 되지만, &&도 된다

sQL 구문에서는 기본적인 연산구문은 사용할 수 있다! 

 

 

ex) 나이가 20살 이상 이거나 성별이 여성인 사람의 정보를 조회 (or ||)

mysql> select * from itwill_member where age >= 20 || gender = 'w';
+-----+------+--------+------+----------------+
| idx | name | gender | age  | jumin          |
+-----+------+--------+------+----------------+
|   3 | kim  | M      |   20 | 900101-1231231 |
|   4 | Lee  | W      |   15 | 900101-2222222 |
|   5 | jung | M      |   21 | 900101-1111111 |
|   6 | min  | w      |   31 | 900101-3333333 |
|   7 | park | m      |   36 | 900101-4444444 |
+-----+------+--------+------+----------------+
5 rows in set, 1 warning (0.00 sec)

 

ex) 테이블의 정보 중 이름, 주민번호만 조회

mysql> select name, jumin from itwill_member;
+------+----------------+
| name | jumin          |
+------+----------------+
| kim  | 900101-1231231 |
| Lee  | 900101-2222222 |
| jung | 900101-1111111 |
| min  | 900101-3333333 |
| park | 900101-4444444 |
+------+----------------+
5 rows in set (0.00 sec)

 

ex) 테이블 정보 중 이름, 주민번호만 조회 (이름 또는 주민번호가 null이 아닌 사람) 

mysql> select name, jumin from itwill_member where name != "NULL" ;
+------+----------------+
| name | jumin          |
+------+----------------+
| kim  | 900101-1231231 |
| Lee  | 900101-2222222 |
| jung | 900101-1111111 |
| min  | 900101-3333333 |
| park | 900101-4444444 |
+------+----------------+
5 rows in set (0.00 sec)

name 이라는 데이터가 문자이기 때문에, null 값에도 문자 처럼 " " 안에 적어줘야한다. 

mysql> select name, jumin from itwill_member where name != "null" || jumin != "null";
+------+----------------+
| name | jumin          |
+------+----------------+
| kim  | 900101-1231231 |
| Lee  | 900101-2222222 |
| jung | 900101-1111111 |
| min  | 900101-3333333 |
| park | 900101-4444444 |
+------+----------------+
5 rows in set, 1 warning (0.00 sec)

 

>show warnings;

mysql> show warnings;
+---------+------+-------------------------------------------------------------------------------------------------------+
| Level   | Code | Message                                                                                               |
+---------+------+-------------------------------------------------------------------------------------------------------+
| Warning | 1287 | '|| as a synonym for OR' is deprecated and will be removed in a future release. Please use OR instead |
+---------+------+-------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select name, jumin from itwill_member where name != "null" && jumin != "null";
+------+----------------+
| name | jumin          |
+------+----------------+
| kim  | 900101-1231231 |
| Lee  | 900101-2222222 |
| jung | 900101-1111111 |
| min  | 900101-3333333 |
| park | 900101-4444444 |
+------+----------------+
5 rows in set, 1 warning (0.00 sec)

>show errors;

 

 

 

ex) name - '이름', jumin - '주민번호'  컬럼명(필드명) 변경 

mysql> select name as '이름' , jumin as '주민번호' from itwill_member;
+------+----------------+
| 이름 | 주민번호       |
+------+----------------+
| kim  | 900101-1231231 |
| Lee  | 900101-2222222 |
| jung | 900101-1111111 |
| min  | 900101-3333333 |
| park | 900101-4444444 |
+------+----------------+
5 rows in set (0.00 sec)

[데이터 수정] : 

update [테이블명] set 컬럼명1 = 수정할 값 , 컬럼명2 = 수정할 값 2 ... where 조건절; where 절 안붙이면 모든 데이터가 수정됨! 

 

 

ex) idx 7번이면서, 이름이 Park 인 사람의 주민번호를 수정

'900101-5555555'

mysql> update itwill_member set jumin = '900101-5555555' where name = 'park' && idx = 7;
Query OK, 1 row affected, 1 warning (0.16 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> select * from itwill_member;
+-----+------+--------+------+----------------+
| idx | name | gender | age  | jumin          |
+-----+------+--------+------+----------------+
|   3 | kim  | M      |   20 | 900101-1231231 |
|   4 | Lee  | W      |   15 | 900101-2222222 |
|   5 | jung | M      |   21 | 900101-1111111 |
|   6 | min  | w      |   31 | 900101-3333333 |
|   7 | park | m      |   36 | 900101-5555555 |
+-----+------+--------+------+----------------+
5 rows in set (0.00 sec)

 

728x90
반응형

'Spring > Model1 _2(MVC)' 카테고리의 다른 글

0825 JSP - MySQL - DELETE ~ 객체, 자바빈  (0) 2022.08.25
0822 JSP - MySQL WorkBench, Connector/J  (0) 2022.08.22
0818 JSP - cookieForm => cookiePro ~ session  (0) 2022.08.18
[JSP] 8/9  (0) 2022.08.09
[JSP] 8/9  (0) 2022.08.09