시퀀스 조회
select * from user_sequences;

시퀀스 값조회
select seq_bbs_no.currval from dual;

시퀀스 생성
create sequence seq_테이블 이름-필드이름
 increment by n   <== 증가값 (default 1)
 start with n   <== 시작값 (default 1)
 maxvalue n | nomaxvalue  <== 최고값 (nomaxvalue default 10*E27)
 minvalue n | nominvalue  <== 최소값 (nominvalue default 1)
 cycle | nocycle   <== 최소,최고값이후 값의 생성유무 (default nocycle)
 cache | nocache   <== 메모리에 유지할 값의 수 (default 20)

시퀀스 삭제
drop sequence seq_bbs_no;


<<<<<<<<<<<  Sequence >>>>>>>>>>>

1. 자동으로  Unique number 생성
2. 공유가능한 Object
3. 일반적으로 Primary key값을 생성키 위해 사용

[ Syntax ]
create sequence seq_테이블 이름-필드이름
 increment by n   <== 증가값 (default 1)
 start with n   <== 시작값 (default 1)
 maxvalue n | nomaxvalue  <== 최고값 (nomaxvalue default 10*E27)
 minvalue n | nominvalue  <== 최소값 (nominvalue default 1)
 cycle | nocycle   <== 최소,최고값이후 값의 생성유무 (default nocycle)
 cache | nocache   <== 메모리에 유지할 값의 수 (default 20)

 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<<<<<<     실     습 1 ::  sequence default생성     >>>>>>
1. sequence test용 table생성
create table seq_test01(
 no number primary key,
 remark varchar2(10)
);


2. default로 sequence 생성
create sequence seq_seq_test01_no;


3.seq_test01 table에 값 insert후 확인하기
insert into seq_test01(no,remark)
values(seq_seq_test01_no.NEXTVAL,'연습1');

//=> table에서 확인
select no,remark from seq_test01;

//=> 반복 실행하면
insert into seq_test01(no,remark)
values(seq_seq_test01_no.NEXTVAL,'연습2');

select no,remark from seq_test01;


4. 다른 방법으로 sequnce 확인하기

//==> 현재의 sequence value 확인
select seq_seq_test01_no.CURRVAL from dual;

//==> 다음의 sequence value 확인
select seq_seq_test01_no.NEXTVAL from dual;

//==>확인하면
insert into seq_test01(no,remark)
values(seq_seq_test01_no.NEXTVAL,'연습1');

select * from seq_test01;


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<<<<<<     실     습  2 :: sequence의 삭제 및 변경   >>>>>>

[Syntax]
drop sequence sequence_name;

drop sequence seq_seq_test01_no;


생성
ALTER TABLE 테이블명 ADD CONSTRAINT 테이블_PK PRIMARY KEY(컬럼명)

삭제
ALTER TABLE 테이블명 DROP PRIMARY KEY
$lsnrctl start : 리스너 시작
$lsnrctl stop : 리스너 종료
$lsnrctl status : 리스너 상태 확인
 

오라클 emctl 시작(오라클 엔터프라이즈 매니저)
$emctl start dbconsole 
사용자 확인
SQL> SELECT * FROM all_users;

유저생성
SQL> SELECT USER 홍길동 IDENTIFIED BY 1234;

유저 권한주기
SQL> GRANT connect, resource, dba TO 홍길동;

생성한 유저로 접속
SQL> CONN 홍길동/ 1234;

사용자 삭제
SQL>CONN system/ password
SQL>DROP USER 홍길동;

-column size 변경
ex) column 컬럼이름  format a10

-set linesize 1000

-set pagesize 1000

tomcat 설치후 포트를 8080으로 셋팅하였다..
톰켓을 구동하니까 이미 사용하고 있는 포트라구 변경하라 한다;;;

곰곰히 생각해보니까 오라클에서 웹으로 DB관리하는 프로그램이
8080포트를 사용하고 있었다...;;;

오라클 포트를 변경하는 명령어는 아래와 같다

SQL>EXEC DBMS_XDB.SETHTTPPORT(원하는포트번호);

**************************************************************************************************
******************************* PORT 번호 변경하기 *****************************************
1. SQL Plus 실행 : sqlplus /nolog
2. Database 접속 : CONNECT SYSTEM/설치할 때 입력한 패스워드
3. Port 변경 명령 수행 : EXEC DBMS_XDB.SETHTTPPORT(5000);
4. SQL Plus 종료 : exit
**************************************************************************************************


**************************************************************************************************
**************************************************************************************************
SELECT * FROM V$NLS_PARAMETERS where parameter='NLS_CHARACTERSET';
**************************************************************************************************
**************************************************************************************************

 

**************************************************************************************************
**************************************************************************************************
필요시 : scott_create.sql 실행
**************************************************************************************************
**************************************************************************************************


명령어 요약

mysql 실행 = mysql -u root -p Enter

데이터베이스 생성= create database ju;

기본 데이터베이스 보기 = show databases;
사용할 데이터 베이스 선택 = use db01

디비안의 테이블 만들기 = create table 테이블명 ( 칼럼1 데이터형,칼럼2 데이터형);

디비안의 테이블 보기 = show tables;

테이블 안의 항목보기 = show columns from tb01; or desc tb01;

테이블 안에 데이터 넣기 = insert into 테이블명 (칼럼1,칼럼2) values (칼럼1값,'칼럼2값');

테이블 안에 모든레코드 보기 = select * from tb01;

필드 추가하기 = alter table 테이블명 add column 필드명 데이터형;
레코드 추가하기 = mysql> insert into tb01 (number,name,address,wdate,wtime) values
-> (2,'second','another','1999-10-23','10:30:00');
입력된데이터업데이트 = update 테이블명 set 필드명='new add' where 조건

한번에 여러필드 값 수정 = update tb01 set wdate=19991022, wtime=062218 where number=1;
레코드 지우기 = delete from tb01 where number=2;

테이블 지우기 = drop table tb01;

종료 = quit


1. 윈도우용 mysql 실행하기

cmd 입력한 후 도스모드에서 mysql -u root -p Enter를 쳐본다.

패스를 설정했기 때문에 도스모드 아무곳에서나 해도 상관없다.

그리고 비밀번호를 입력하면

mysql > 이 나오고 정상실행..

2.MySQL 서버 구조 살펴보기 ★★★

MySQL < Database < Table < Record < Datatype

MySQL 서버안에 여러 데이터 베이스가 있고 , 디비안에 테이블 들이 있으며,
테이블안에는 레코드(가로줄) 가 있고 , 그안에는 데이터형(정수형,문자형,날짜형)
으로 구성된다.

테이블을 만들기 위해서는 반드시 디비를 선택하거나 , 디비를 만들어야 한다.

데이터 값이 저장 되는 것은 테이블 이며 , 테이블을 생성하기 위해서는 반드시 먼저
디비를 만들어야 한다.

2. MYSQL 데이터베이스 만들기

자료를 담기위해선 상자곽이 필요하다.

데이터 베이스 생성

mysql > create database ju;




3.MySQL 서버의 기본 데이터 베이스 보기


mysql> show databases;
+-------------+
| Database |
+-------------+
| mysql |
| test |

| ju |
+-------------+
3 rows in set (0.06 sec)



4.사용할 데이터베이스 를 선택
mysql> use db01
Database changed



5.디비 안의 테이블을 만들어라.


mysql> create table tb01 (number integer,name char(10));
Query OK, 0 rows affected (0.00 sec)

create table 테이블명 ( 칼럼1 데이터형,칼럼2 데이터형);

SQL 문장의 마지막은 ; 를 붙여서 명령을 실행하라고 시킨다.
; 를 안넣어도 실행하는 명령 도 있기는 하다. 예> use 명령, quit 명령


6. db01 디비 안에 있는 테이블 보기


mysql> show tables;


+----------------------+
| Tables in database01 |
+----------------------+
| tb01 |
+----------------------+




7.테이블 안의 항목을 보자.

mysql> show columns from tb01;


+---------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| number | int(11) | YES | | NULL | |
| name | char(10) | YES | | NULL | |
+---------+----------+------+-----+---------+-------+


아래 명령도 같은 작동을 한다.

mysql> desc tb01;



8 . tb01 테이블 안에 데이터 를 넣어라.

mysql> insert into tb01 (number,name) values (1,'suhoi');
Query OK, 1 row affected (0.00 sec)


insert into 테이블명 (칼럼1,칼럼2) values (칼럼1의값,'칼럼2의값');

숫자는 ' ' 를 사용하지 않고 , 문자열은 반드시 ' ' 안에 넣어야 한다.




9. tb01 테이블 안에 모든 레코드를 보자

mysql> select * from tb01;


+---------+---------+
| number | name |
+---------+---------+
| 1 | suhoi |
+---------+---------+



★필드 추가하기


10.테이블 안에 필드 추가하기

tb01 테이블 안에 address 필드 를 추가해보자.

mysql> alter table tb01 add column address char(20);

Query OK, 1 row affected (0.04 sec)
Records: 1 Duplicates: 0 Warnings: 0

alter table 테이블명 add column 필드명 데이터형;


11. 1번에 두개의 필드를 추가하자

mysql> alter table tb01 add column wdate date,add column wtime time;

Query OK, 1 row affected (0.04 sec)
Records: 1 Duplicates: 0 Warnings: 0

wdate date 란것은 wdate 는 날짜 데이터 형이고
wtime time 란것은 wtime 는 시간 데이터 형이라는 뜻이다.


잘 추가 되었는지 확인해보자

mysql> select * from tb01;
+---------+---------+---------+---------+---------+
| number | name | address | wdate | wtime |
+---------+---------+---------+---------+---------+
| 1 | first | NULL | NULL | NULL |
+---------+---------+---------+---------+---------+




12. 다중입력

MySQL 은 한 라인에 모든 것을 넣을 수도 있지만 여러줄에 넣을 수도 있다.
여러줄에 넣을 려면 ; 를 마지막 줄에만 넣어야 한다. 예제를 바로 보면서 이해하라.
아래 두개의 다른폼은 같은 동작을 취한다.


한 라인 입력
mysql> create table table33 (number integer,name char(30));

다중 입력 1
mysql> create table table33
-> (number
-> integer,
-> name
-> char(30));

다중입력 2
mysql> create table table33
-> (number integer,
-> name char(30));

다중입력 1과 다중입력 2는 같은 동작을 취하며 ,아래는 잘못 만든 예 이다.
mysql> create table table33
-> (field01 inte
-> ger,
-> field02
-> char(30));

★ 쿼리도중에 명령이 틀렸을 경우 는 c 를 하면 된다.
mysql> create table table33
-> (number inte,
-> c
mysql>





13. 레코드 추가하기

mysql> insert into tb01 (number,name,address,wdate,wtime) values
-> (2,'second','another','1999-10-23','10:30:00');

Query OK, 1 row affected (0.00 sec)

문자형은 (char) 반드시 ' ' 안에 넣어야 한다.

표준 날짜형은 "yyyy-mm-dd" 이다.
표준 시간형은 "hh:mm:ss" 이다.
☆ 날짜형과 시간형도 ' ' 안에 넣어야 한다.
' ' 안에 넣지 않을 경우 yyyymmdd 이런식으로 붙여서 입력 해야 한다. hhmmss 도
마찬가지 이다.




14. 다른 데이터형 추가하기
화살표키 중 ↑를 누르면 전에 버퍼에 저장되어 있던 명령들이 나온다.
그것에서 데이터만 바꾸고 명령을 하면 다른 데이터가 추가 된다.
★ 98 은 되지 않으며, NT 와 2000 만 된다. 리눅스 도 당스 된다.


mysql> select * from tb01;
+---------+-----------+------------------+------------+----------+
| number | name | address | wdate | wtime |
+---------+-----------+------------------+------------+----------+
| 1 | suhoi | NULL | NULL | NULL |
| 2 | suhoi2 | address2 | 1999-10-23 | 10:30:00 |
+---------+-----------+------------------+------------+----------+


우리는 이제 다했다



15. 입력된 데이터 업데이트 하기

하나의 필드 값 수정하기

여기서도 역시 ' ' 를 붙여주어야 한다. 어느곳에? 문자열 에는 반드시 ' ' 를 넣어야
한다.

mysql> update tb01 set address='new add' where number=1;


Query OK, 1 row affected (0.00 sec)

update 테이블명 set 필드명='new add' where 조건
number=1 인 레코드의 address 를 new add 로 수정 하는 명령이다.
number=1 은 조건 이며 가로줄을 선택한다.


16. 한번에 여러 필드 값 수정하기

mysql> update tb01 set wdate=19991022, wtime=062218 where number=1;

Query OK, 1 row affected (0.00 sec)



아래 처럼 보이는가?

mysql> select * from tb01;
+---------+-----------+------------------+------------+----------+
| number | name | address | wdate | wtime |
+---------+-----------+------------------+------------+----------+
| 1 | suhoi | new add | 1999-10-22 | 06:22:18 |
| 2 | suhoi2 | address2 | 1999-10-23 | 10:30:00 |
+---------+-----------+------------------+------------+----------+


한번 으로 여러개의 필드값 수정하기

mysql> update tb01 set wtime=152901 where wdate>19990101;


Query OK, 3 rows affected (0.00 sec)

날짜가 19990101 이후 인것의 wtime 는 모두 수정하는 것이다.



mysql> select * from tb01;
+---------+-----------+------------------+------------+----------+
| number | name | address | wdate | wtime |
+---------+-----------+------------------+------------+----------+
| 1 | suhoi | new add | 1999-10-22 | 15:29:01 |
| 2 | suhoi2 | address2 | 1999-10-23 | 15:29:01 |
+---------+-----------+------------------+------------+----------+




17. 레코드 지우기

mysql> delete from tb01 where number=2;


Query OK, 1 row affected (0.01 sec)

delete from 테이블명 where 조건
number=2 인것의 레코드를 지우는 명령이다.레코드는 가로줄이다.


mysql> select * from tb01;
+---------+-----------+------------------+------------+----------+
| number | name | address | wdate | wtime |
+---------+-----------+------------------+------------+----------+
| 1 | suhoi | new add | 1999-10-22 | 15:29:01 |
+---------+-----------+------------------+------------+----------+



18. 테이블 지우기


mysql> drop table tb01;


Query OK, 0 row affected (0.01 sec)

mysql> show tables;


19. 종료하기
mysql> quit
Bye






★ PHP 에서의 MySQL 서버 연결
PHP 파일 안에서 mysql 서버를 연결 할려면 root 에 비번은 없게 주어야 한다.

mysql_connect('localhost','root','');
mysql_select_db("db01");

로 연결 하여 사용하며 나머지 부분은 모두 동일 하다.
root 사용자 가 db01 를 만들었으며 비밀번호는 아직 없다.


- insert

insert into goodsinfo (code, title, writer, price) values ('10001', '뇌를 자극하는 Java 프로그래밍', '김윤명', 27000);

- update

update goodsinof set writer:='토마스 코멘 외 3명', price:=33600 where code = '10005';

- delete

delete from goodsinfo where code = '10005';

테이블을 삭제하는 방법

drop table goodsinfo;


create table goodsinfo (code char(5), title varchar(50), writer varchar(20), price int(8));

반드시 있어야 하는 항목은 뒤 부분에 not null을 붙인다. 이렇게 하면 해당 항목이 누락된 채 데이터를 입력했을 때 즉시 에러가 발생하기 때문에 나중에 발생할 가능성이 있는 문제를 미연에 방지 할 수 있다.

create table goodsinfo(
    code   char(5) not null,
    title     varchar(50) not null,
    writer  varchar(20) not null,
    price   int(8) not null
);


데이터베이스 만드는 방법

mysqladmin -u root -p create newdb




데이터베이스 삭제하는 방법

mysqladmin -u root -p drop newdb

+ Recent posts