1  2  3  4  5    
http://www.action-scripter.com/blog/trackback/379
기존 폴더에 보안설정이 된 상태라 새로 설치한 후 접근에 제한되는 것으로 생각됩니다. 아이디와 비밀번호가 같아도 재설치하면 다른 계정으로 인식합니다.

다음 방법으로 해당 폴더의 소유권을 현재의 계정으로 이전시키세요.

[시작] > [실행] > [제어판] > [폴더옵션] 을 선택합니다.
(또는 윈도탐색기에서 [도구]>[폴더옵션])

[보기]탭에서 "모든 사용자에게 동일한 폴더 공유 권한 지정" 옵션을
해제하고, [확인]을 누릅니다.

접근 불가 폴더에서 마우스 오른버튼 클릭하여 [속성]을 선택합니다.

[보안]탭 > [고급] > [추가] > [고급] > [지금찾기]를 눌러서,
자신의 현재 계정을 선택한 후 [확인] > [확인]을 누릅니다.

권한항목 창에서 적용대상은 '이 폴더 및 하위폴더, 파일'을 선택하고,
모든권한에 '허용'에 체크한 후 [확인]을 누릅니다.

[소유자] 탭으로 가서 '소유자를 다음으로 변경'에서 자신의 계정을 선택하고
'하위 컨테이너와 개체의 소유자 바꾸기'를 선택하고 [확인] > [확인]을 누릅니다.

------------------------------------------------------------------------

ps. 아흑. 정말 중요한 정보입니다. 크크..
    오늘 실수록 땡굴이 사용자 계정을 날려버렸는데.. 하하..
    이런 방법으로 기존에 엑세스 거부되는 사용자 계정
    폴더를 제어할 수 있네요..
2004/05/19 14:27 2004/05/19 14:27
http://www.action-scripter.com/blog/trackback/335
원본사이트: http://www.devshed.com/Server_Side/MySQL/Intro/
* Beginning MySQL Tutorial
* By W.J. Gilmore
* April 03, 1999
| | 번역 : 원주희(haremoon@won.hongik.ac.kr)
| | 번역일자 : 1999년 9월26일
=======================================================================================================

The Database

데이타베이스는 이제 모든 사람들의 생활에서 없어서는 안될 매우 중요한 부분이 되어졌다.
데이타베이스가 없다면 우리가 하고 있는 많은 일들은 매우 지루하고, 불편한 일들이 될 것이다. 은행과 대학, 도서관은 이러한 데이타베이스 시스템에 크게 의존하고 있는 기관의 예이며, 인터넷의 서치엔진, 온라인 쇼핑몰또한 데이타베이스를 이용하여 구축되어지고 있다.

데이타베이스는 하나의 컴퓨터가 데이타베이스 서버와 개방적인 상호 관계를 할 수 있도록 도와주는 도구이자 인터페이스의 역할을 한다.

T.c.X. DataKonsultAB에 의해 개발된 MySQL 서버는 현재 시장에서 급속하게 성장하고 있는 SQL(Structured Query Language) 데이타베이스 서버 중의 하나이다. MySQL은 http://www.mysql.com에서 다운로드 받을 수 있으며, 다른 데이타베이스 서버에서는 보기 드문 배열된 옵션과 유용한 특성을 가진 데이타베이스 프로그램을 제공한다. 무엇보다도 MySQL의 가장 큰 장점은 개인적으로나 상업적으로 그것을 이용하기 바라는 모든 사람들 에게 무료로 제공되는 공개용 데이타베이스라는 것이다. MySQL을 사용하여 명확한 어플리케이션을 개발하고 싶다면 MySQL's licensing ection(http://www.mysql.com/Manual_chapter/manual_Licensing_and_Support.html)을 참고하기 바란다.

MySQL 서버는 다음의 내용을 포함하여 헤아릴 수 없이 많은 능력 가지고 있다.

· 동시 사용자의 수가 무제한적인 처리 능력
· 50,000,000+ record를 처리할 수 있는 용량
· 매우 빠른 명령 수행 능력(아마 시장에 나온 데이타베이스 중에 가장 빠를지도 모른다)
· 쉽고 능률적인 사용자 특권 시스템

그러나 어쩌면 그 수많은 능력 중에서도 가장 흥미로운 사실은 그것이 무료라는 것이다.
T.c.X 는 일반 대중에게 공개용 데이타베이스인 MySQL을 무료로 제공하고 있다.

누가 MySQL 서버를 사용하는가?(So Who's Using MySQL?)

MySQL 데이타베이스 서버는 다음과 같은 기관들에서 막대한 대중성을 얻어가며 사용되어지고 있다.
· Silicon Graphics (http://www.sgi.com)
· Siemens (http://www.siemens.com)
만약 위의 글이 설득력 있기에 충분하지 않다면 더 많은 MySQL 사용자 목록을 MySQL User's List (http://www.mysql.com/users.html)에서 찾아 보기 바란다.

이 글은 MySQL 서버의 필수 조작과 기본적인 명령을 수행하기 위한 서버의 셋업, 적절하게 연결하는 방법을 포함하여 MySQL 서버의 기본적인 운용을 배우는 것을 도울 것이다.

만약 이미 MySQL에 대해서 기본적인 이해를 하고 있다면 이장을 뛰어 넘고 다음 장으로 가도 상관없다. 그러나 이 글에 쓰여진 명령어들은 좀 더 수준 높은 명령???를 위한 기초로서, MySQL 언어에 있는 가장 중요한 명령어 중의 하나라는 점을 기억하기 바란다.

● Part 1: 미리살펴보기(At First Glance)
=======================================================================================================
MySQL은 일반적으로 telnet을 통해 들어간다. (괜찮은 Telnet 프로그램인 Easyterm은 http://www.arachnoid.com에서 구할 수 있다.) 한번이라도 웹서버에 telnet으로 접속한적이 있다면 MySQL 서버에 접근하는 두 번째 명령어를 준비하기 바란다.

연결하기 위한 절차는 다음과 같습니다.

1. telnet 접속하기 : ISP에서 제공된 username(ID)과 password가 필요하다.
--------------------------------------------------------------------------
login: haremoon
Password: ********
Last login: Sat May 22 12:52:01 from 203.249.84.223

Sun Microsystems Inc. SunOS 5.6 Generic August 1997

You have new mail.
[haremoon@won /user/center/haremoon]#
--------------------------------------------------------------------------

2. MySQL 연결하기 - MySQL 사용을 위해서는 명확하게 주어진 username과 password가 필요
하다. 이 정보는 ISP제공자에게 요청하면 제공된다.

--------------------------------------------------------------------------
[haremoon@won /user/center/haremoon]# mysql -u root -p mysql
--------------------------------------------------------------------------
Syntax : mysql -h hostname -u username -p password database
실행파일 | 호스트 | db유저 | 패스워드 |사용할 데이타베이스이름

또는

mysql -h hostname -u username -password=password database

-p 옵션에 의해 패스워드를 입력하는 프롬프트가 나오면 패스워드를 입력한다.
Enter password:

만약 MySQL이 올바르게 설치되었고 실행되었다면 다음과 같은 화면을 볼 수 있을 것이다.
--------------------------------------------------------------------------
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 267 to server version: 3.22.16a-gamma
Type 'help' for help.

mysql>
--------------------------------------------------------------------------

데이타베이스에 이미 연결되어 있다면 MySQL 언어의 여러 가지 명령어를 실행시켜도 좋다.
그러나 그렇지 않으면 먼저 데이타베이스에 연결하기 위해 다음의 명령을 수행합니다.

--------------------------------------------------------------------------
mysql> use study --> 사용할 데이타베이스
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql>
--------------------------------------------------------------------------
여러분은 지금 데이타베이스에 연결 되어있다. 한가지 주목할 점은 MySQL에서 대부분의 모든
명령어는 세미클론 (;)에 의해 수행된다는 것이다.

우선 커맨드 라인에서 help, h 또는 ? 라고 입력하면 간단한 명령어 도움말을 볼 수 있다.

--------------------------------------------------------------------------
mysql> help

MySQL commands:
help (h) Display this text
? (h) Synonym for `help'
clear (c) Clear command
connect (r) Reconnect to the server. Optional arguments are db and host
edit (e) Edit command with $EDITOR
exit () Exit mysql. Same as quit
go (g) Send command to mysql server
ego (G) Send command to mysql server; Display result verically
print (p) print current command
quit (q) Quit mysql
rehash (#) Rebuild completion hash
status (s) Get status information from the server
use (u) Use another database. Takes database name as argument

Connection id: 268 (Can be used with mysqladmin kill)
mysql>
--------------------------------------------------------------------------
이 명령들은 지금 당장 필요 없을지도 모른다. 그러나 그 명령어들의 의미를 정확히 알기 위해서 한번씩 테스트해 보는 것이 좋을 것이다. status, use, print, connect, clear, 그리고 quit와 같은 명령어들은 매우 유용하게 사용될 것이다.

여러분은 지금 서버에 연결해서 데이타베이스를 선택하고 기본적인 명령어를 수행하는 방법에 대해 기본적으로 이해해야 한다. 다음 장에서는 데이타베이스를 조작하기 위해 필요한 개념과 기술을 다룰 것이다.


● Part 2: 데이타베이스와 테이블(Datatypes and Tables)
=======================================================================================================
데이타베이스는 좀 더 복잡한 데이타 구조의 계층에 지나지 않는다. MySQL에서는 정보의 묶음(또는 레코드)을 테이블이라 부른다.

이러한 레코드들은 데이타 타입이라고 알려진, 사용자에 의해 조작될 수 있는 아주 작은 크기의 개체들로 구성된다. 이러한 데이타타입들은 하나 또는 그 이상이 모여 레코드를 구성하며, 데이타베이스의 부분을 이루는 테이블은 레코드의 집합으로 구성된다. 우리는 다음과 같이 데이타베이스의 계층을 생각 할 수 있다.

------------------------------------
Database < Table < Record < Datatype
------------------------------------

데이타 타입은 사용자가 어떠한 프로젝트를 수행하기 위해 가장 적합한 테이블을 만들때 여러 가지의 형식과 크기로 나타낼 수 있다. 적절한 데이타 타입을 선택하고 결정하는 것은 데이타베이스의 실행에 큰 영향을 주므로 이 개념에 대해 자세히 이해해야 한다.

2.1 MySQL 데이타 타입

MySQL은 경험이 없는 사용자라 할 지라도 한번씩은 많은 종류의 데이타 타입들을 접해본 적이 있을 것이며, 또 쉽게 사용할 수 있다. 가장 일반적으로 사용되는 데이타 타입은 다음과 같다.

⊙ CHAR (M)

CHAR 데이타 타입은 고정된 길이의 문자열을 나타내는데 사용된다.
하나의 CHAR 문자열은 1-255 자 범위의 문자를 저장할 수 있다.

------------------------------------
ex.
car_model CHAR(10);
------------------------------------

⊙ VARCHAR (M)

VARCHAR 데이타 타입은 가변적인 길이의 문자열을 저장하므로 CHAR 보다는 좀더 융통성 있는 데이타 타입이다.
VARCHAR 문자열은 1-255 자 범위의 문자를 저장할 수 있다.
(CHAR 는 포함된 데이타의 크기에는 관계없이 이미 지정된 가변적인 전체의 길이를 저장하는 반면에 VARCHAR 는 오직 들어가는 데이타의 양만을 저장하므로 데이타베이스 파일의 크기를 줄 일수 있다.)

------------------------------------
ex.
car_model VARCHAR(10);
------------------------------------

⊙ INT (M) [Unsigned]

INT 데이타타입은 -2147483648 에서 2147483647 사이의 정수를 저장한다.
"unsigned" 옵션과 함께 0부터 4294967295 범위의 정수를 나타낼 수도 있다.

-----------------------------------------------------------
ex.
light_years INT;
Valid integer: '-24567'. Invalid integer: '3000000000'.
-----------------------------------------------------------
ex.
light_years INT unsigned;
Valid integer: '3000000000'. Invalid integer: '-24567'.
-----------------------------------------------------------

⊙ FLOAT [(M,D)]

FLOAT는 다소 정확한 숫자의 표시가 필요할 때 사용되어지며, 작은 양의 소수점 숫자를 나타낸다.

------------------------------------
ex.
rainfall FLOAT (4,2);
------------------------------------
이것은 소수점 값이 될 수 있는 일년간 평균강수량을 나타낼 수 있다. 좀 더 명확하게 말하면 FLOAT (4,2) 는 4개의 저장할 수 있는 최대 자리 수와 2개의 소수점 이하의 자리 수를 가리킨다.

42.35 은 올바른 값이다.
324.45 은 틀린 값이다. 324.5로 해야 맞다.
2.2 은 올바른 값이다.
34.542 은 틀린 값이다. 34.54로 해야 맞다.

주의) FLOAT 는 어림잡은 수이기 때문에 MySQL 내에 포함 된 정수의 값이 아닌 데이타 타입으로 돈의 값을 나타낼 때에는 DECIMAL을 사용하는 것이 더 현명한 방법이다. 더욱 자세한 설명을 원하면 매뉴얼을 참고하기 바란다.

⊙ DATE

날짜와 관련된 정보를 저장한다. 디폴트 형식은 'YYYY-MM-DD' 이며, '0000-00-00' 에서 '9999-12-31'까지의 범위를 갖는다. MySQL은 이 기사에서는 다루어지기 너무 방대한 막강한 날짜형식의 조절과 조작 명령어를 제공한다. MySQL 매뉴얼에 이 기능에 대해서 자세하게 다루어져 있으므로 참고하기 바란다.
------------------------------------
ex.
the_date DATE;
------------------------------------

⊙ TEXT / BLOB

text 와 blob 데이타 타입은 255 - 65535 자의 문자열을 저장할 때 사용된다. 이것은 여러분이 읽은 기사와 같은 것을 저장하기에 유용하다. 그러나 VARCHAR 와 CHAR처럼 딱 잘라 비교할 수는 없다. 단지 BLOB 와 TEXT 사이에 차이점이 있다면 BLOB은 변하기 쉬운 경우에 비유할 수 있고, TEXT는 영향을 받지 않는 무감각한 경우에 비유할 수 있다.

⊙ SET

지정된 값으로부터 어떤 주어진 값을 선택하는, 정해진 문자열의 데이타 타입으로 그것은 하나의 값이 될 수도 있고 여러개의 값을 가질 수도 있다. 64개의 값까지 지정할 수 있다.
-------------------------------------------
ex.
transport SET ("truck", "wagon") NOT NULL;
-------------------------------------------

위의 예로부터 수송기관(transport)은 다음의 값들을 가질 수 있다.

------------------------------------
""
"truck"
"wagon"
"truck","wagon"
------------------------------------

⊙ ENUM

SET 데이타 타입과 비슷한 특징을 갖는 정해진 문자열의 데이타 타입이지만 선택할 수 있는 값이 하나로만 정해져 있다는 점이 다르다. 한 공간의 바이트만을 가지므로 테이블내의 시간과 공간을 절약할 수 있다.

-------------------------------------------
ex.
transport ENUM ("truck", "wagon") NOT NULL;
-------------------------------------------
위의 예로부터 수송기관(transport)은 다음의 값들을 가질 수 있다.

------------------------------------
NULL
"truck"
"wagon"
"truck"
------------------------------------

2.2 레코드

데이타들은 관련된 것들끼리 묶여서 디스크에 저장되는데 이러한 데이타의 묶음을 레코드라고 한다. 레코드는 데이타저장의 기본단위이며, 하나의 레코드는 서로 다른 형태의 값(데이타타입)을 가질 수있다. 아래에 나열된 이름, 주소, 전화번호는 각각 세개의 부분으로 구성된 레코드로 저장할 수 있으며 이러한 레코드는 데이타가 저장되는 기본단위로서 하나의 테이블을 구성한다.

이름 | 주소 | 전화번호
--------|-------|---------
원주희 | 한국 | 007-0000
홍길동 | 북한 | 008-0909

2.3 테이블(The Bigger Picture: Tables)

우리는 데이타베이스 상에서 어떠한 명령어들을 수행하기 전에, 먼저 데이타가 저장될 수 있는 테이블을 만들어야 한다. 이것은 다음과 같은 방법으로 만들어진다.

------------------------------------
mysql> CREATE TABLE test (
> name VARCHAR (15),
> email VARCHAR (25),
> phone_number INT,
> ID INT NOT NULL AUTO_INCREMENT,
> PRIMARY KEY (ID));
------------------------------------
테이블이 성공적으로 만들어지면 다음과 같은 화면이 출력될 것이다.

------------------------------------
Query OK, 0 rows affected (0.10 sec)
mysql>
------------------------------------

여러분의 데이타베이스에 첫 번째 테이블이 생성되었다.
주의(1) : 서로 다른 두 개의 테이블은 같은 이름을 가질 수 없다.
주의(2) : 각각의 데이타공간은 종종 컬럼(column)이라는 개체의 속성으로 나타낸다.

컬럼(Column)의 특징 :
------------------------------------
하나의 이름이 숫자로만 구성될 수 없다.
하나의 이름은 숫자로 시작할 수 있다.
하나의 이름은 64자까지 가능하다.
------------------------------------

2.3.1 테이블의 다른 옵션들

나중에 다른 특징들과 성능이 데이타 타입에 추가될지라도 다음의 옵션들은 계속 존재할 것이다.

기본 키(Primary Key) :
=====================
다른 속성들로부터 하나의 레코드를 유일하게 식별하는데 사용되어지며, 두 개의 레코드는 똑같은 기본 키를 가질 수 없다. 이것은 두개의 레코드가 중복되어지는 실수를 없애려고 할 때 아주 적합하게 사용된다.

Auto_Increment :
================
이 함수(function)를 가진 컬럼(column)은 레코드에 삽입될 때 자동적으로 한 개씩 값이 (previous + 1) 증가한다. data가 'NULL'값 일 때도 컬럼(column)에 자동적으로 한 개씩 값이 증가하여 삽입된다.

NOT NULL :
==========
NULL값(값이 없는)을 절대로 허용하지 않는 컬럼(column)을 의미한다.

------------------------------------
ex.
soc_sec_number INT PRIMARY KEY;
------------------------------------
두 개의 soc_sec_number 레코드는 같은 값을 가질 수 없다.

------------------------------------
ex.
ID_NUMBER INT AUTO_INCREMENT;
------------------------------------
1 에서 시작한 ID_NUMBER 값은 다음 값이 입력될 때마다 자동적으로 1씩 증가한다.

2.3.2 테이블과 관련된 명령어들

우리는 다음과 같이 테이블에 관련된 많은 유용한 명령어들을 실행할 수 있다.

⊙ Show Tables
==============
------------------------------------
mysql> show tables;
------------------------------------
결과 : 데이타베이스에 현재 존재하고 있는 모든 테이블들을 나열한다.

⊙ Show Columns
===============
------------------------------------
mysql> show columns from test;
------------------------------------
결과 : 지정된 테이블과 관련된 컬럼과 컬럼의 정보를 보여줄 것입니다.

테스트용 테이블을 생성한 후에 위의 명령어들을 한번씩 실행해보기 바란다.
복잡 다양한 데이타베이스의 이해에 매우 도움이 될 것이다.

여러분은 이제 MySQL 서버의 가장 중요한 개념인, 테이블을 생성하는 기본적인 과정을 이해 했다. 또한 테이블은 서로다른 형태의 데이타타입으로 이루어진 레코드가 모여 구성된다는 것도 알았다. 다음 장에서는 데이타베이스를 조작하는 방법에 대해 설명할 것이다.


● Part 3: 데이타베이스 다루기(Manipulating the Database)
=======================================================================================================
데이타베이스는 다음의 4가지의 방법으로 조작할 수 있다. : addition, deletion, modification, 과 search : 이에 대해서는 다음 장에서 자세히 설명할 것이다. 많은 컴퓨터 언어들처럼 SQL 역시 조금은 특별한 명령어 구문을 가지고 있다. 괄호(()), 콤마(,), 또는 세미클론(;)의 위치가 조금만 잘못되어도 에러가 발생하므로 주의해서 입력해야 한다.

3.1 레코드 입력하기(Insertion of records)

전에 설명한 test라는 테이블 만드는 방법을 다시 한번 살펴보자.

------------------------------------
mysql> CREATE TABLE test (
> name VARCHAR (15),
> email VARCHAR (25),
> phone_number INT,
> ID INT NOT NULL AUTO_INCREMENT,
> PRIMARY KEY (ID));
------------------------------------

이미 만들어진 테이블에 데이타를 입력하기 위해서는 INSERT 문을 사용한다.

------------------------------------
mysql> INSERT INTO test VALUES
mysql> ('Bugs Bunny', 'carrots@devshed.com',
mysql> 5554321, NULL);
------------------------------------
성공적으로 입력이 되면 다음과 같은 메시지가 나온다.
---------------------------------------------------
Result, assuming the command was correctly entered:

Query OK, 1 row affected (0.02 sec)
mysql>
---------------------------------------------------

· VARCHAR 데이타타입은 단일인용문으로 둘러싸여 있다. 모든 문자열 타입의 데이타타입은(char, varchar, text, blob 등)단일 인용문으로 둘러싸여야 하며 그렇지 않으면 에러가 발생한다.
· phone number와 같은 INT 타입의 데이타타입은 단일인용문이 필요하지 않다.
· NULL은 아직정해지지않은 값으로 값이 없을 수도 있지만 NOT NULL은 반드시 값을 입력 해야한다. AUTO_INCREMENT와 사용된 레코드는 값이 NULL이면 1을 할당하고, 값이 있으면 이전값에 +1씩 자동적으로 부여한다.

한가지 주의해야 할점은 데이타를 입력할때 반드시 레코드의 갯수만큼의 데이타를 입력해야한다. 위의 예에서는 4개의 값을 입력해야 하는데 한개의 값만 입력할 경우 다음과 같은 에러가 발생한다.
--------------------------------------------------
Ex.
mysql> insert into test values('doggy');
ERROR 1058: Column count doesn't match value count
mysql>
--------------------------------------------------

MySQL의 가장 큰 장점중의 하나는 데이타타입을 자유롭게 변경할 수 있다는 것이다.

3.2 테이블정보 검색하기(Selection)

데이타를 검색하기 위해 SELECT문을 사용한다.
------------------------------------
mysql> SELECT * FROM test
mysql> WHERE (name = "Bugs Bunny");
------------------------------------
결과:
+------------+--------------------+--------------+----+
| name | email | phone_number | ID |
+------------+--------------------+--------------+----+
| Bugs Bunny | carrot@devshed.com | 5554321 | 1 |
+------------+--------------------+--------------+----+

같은 이름이지만 서로 다른 email와 phone number를 가진 데이타를 입력해보자.

+------------+---------------------+--------------+----+
| name | email | phone_number | ID |
+------------+---------------------+--------------+----+
| Bugs Bunny | carrot@devshed.com | 5554321 | 1 |
| Bugs Bunny | pepper@devshed.com | 5554331 | 2 |
| Bugs Bunny | celery@devshed.com | 5554351 | 4 |
| Bugs Bunny | lettuce@devshed.com | 5554341 | 3 |
+------------+---------------------+--------------+----+

3.3 삭제하기(Deletion)

테이블에 있는 한개 이상의 레코드를 삭제하기 위해 사용한다.
DELETE문으로 수행된다.
------------------------------------
mysql> DELETE FROM test
mysql> WHERE (name = "Bugs Bunny");
------------------------------------
결과 : 이름이 Bugs Bunny인 레코드를 도두 삭제하???로 테이블에는 데이타가 하나도 없다.

------------------------------------
mysql> DELETE FROM test
mysql> WHERE (phone_number = 5554321);
------------------------------------
결과 : phone_number 가 5554321인 레코드를 삭제한다.
+------------+---------------------+--------------+----+
| name | email | phone_number | ID |
+------------+---------------------+--------------+----+
| Bugs Bunny | pepper@devshed.com | 5554331 | 2 |
| Bugs Bunny | celery@devshed.com | 5554351 | 4 |
| Bugs Bunny | lettuce@devshed.com | 5554341 | 3 |
+------------+---------------------+--------------+----+

3.4 데이타 변경하기(Modification)

테이블에 이미 입력된 자료를 변경하기 위해 사용되며 UPDATE 문을 사용한다.
------------------------------------------
mysql> UPDATE test SET name = 'Daffy Duck'
mysql> WHERE name = "Bugs Bunny";
------------------------------------------

+------------+---------------------+--------------+----+
| name | email | phone_number | ID |
+------------+---------------------+--------------+----+
| Daffy Duck | pepper@devshed.com | 5554331 | 2 |
| Daffy Duck | celery@devshed.com | 5554351 | 4 |
| Daffy Duck | lettuce@devshed.com | 5554341 | 3 |
+------------+---------------------+--------------+----+

● Part 4: 고급 MySQL명령어(Advanced MySQL Commands)
=======================================================================================================
우리는 이제 MySQL에 대해 기본적인 개념과 명령어들에 대해 배웠다. 이번장에서는 좀더 진보된 명령어에 대해 배워보기로 하겠다.

4.1 논리 연산자(Logical Operations)

MySQL은 모든 기본적인 논리연산자를 지원한다.

⊙ AND (&&)
------------------------------------
mysql> SELECT * FROM test WHERE
mysql> (name = "Bugs Bunny") AND
mysql> (phone_number = 5554321);
------------------------------------
결과 : 이름이 "Bugs Bunny"이고 전화번호가 '5554321'인 레코드가 출력될것이다.

⊙ OR ( || )
------------------------------------
mysql> SELECT * FROM test WHERE
mysql> (name = "Bugs Bunny") OR
mysql> (phone_number = 5554321);
------------------------------------
결과 : 이름이 "Bugs Bunny"이거나 전화번호가 '5554321'인 레코드가 모두 출력된다.

⊙ NOT ( ! )
------------------------------------
mysql> SELECT * FROM test WHERE
mysql> (name != "Bugs Bunny");
------------------------------------
결과 : 이름이 "Bugs Bunny"이 아닌 레코드만 출력된다.

⊙ Order By
------------------------------------
mysql> SELECT * FROM test WHERE
mysql> (name = "Bugs Bunny") ORDER BY
mysql> phone_number;
------------------------------------
결과 : 이름이 "Bugs Bunny"인 모든 레코드가 phone_number를 기준으로 정렬될것이다.

4.2 Search functions

MySQL 은 일반문자뿐만아니라 특수문자를 포함해 데이타를 검색할 수 있다. 찾고자하는 값을 정확히 모를때 Like연산자를 사용해 문자형태가 같은 열을 검색한다.

------------------------------------
mysql> SELECT * FROM test WHERE
mysql> (name LIKE "%gs Bunny");
------------------------------------
결과 :
· "gs Bunny"를 포함하는 모든 레코드가 출력될 것이다.
("Bugs Bunny", "ags Bunny", "gs Bunny", 와 "234rtgs Bunny"등과 같은 이름)

· "LIKE"가 equals sign(=)대신 사용된것에 주목하자. "LIKE"는 정확한 값을 모르는 데이타를 검색할때 사용된다.

· '%'는 임의의 문자(0개~임의의 개수)를 의미하며, '_'는 한문자를 의미한다.

------------------------------------
mysql> SELECT * FROM test WHERE
mysql> (name LIKE "Bugs Bunny%");
------------------------------------
결과 : "Bugs Bunny"를 포함하는 문자가 출력될 것이다.
("Bugs Bunnys", "Bugs Bunnyyyy453", "Bugs Bunnytrtr"등과 같은 이름,
그러나 "gs Bunny"는 아니다.)

4.3 주어진 조건에 맞는 특정한 열만 검색하기(Focused Search Results)
------------------------------------
mysql> SELECT name FROM test WHERE
mysql> (name = "Bugs Bunny");
------------------------------------
결과 :
+------------+
| name |
+------------+
| Bugs Bunny |
+------------+

4.4 테이블 변경하기(Alter table)

MySQL의 가장 중요한 기능중의 하나가 이미 만들어진 테이블을 변경하는 것입니다.
ALTER 문을 사용하며 다음과 같은 것을 수행할 수 있습니다.
· 새로운 열 추가하기
· 열의 속성 바꾸기
· 열 삭제하기
· 테이블 이름 바꾸기

Example: 테이블 이름 변경하기(Rename the table)
--------------------------------------------
mysql> ALTER table test RENAME mytest;
--------------------------------------------

Example: 새로운 열 추가하기(Add a column)
--------------------------------------------
mysql> ALTER table mytest ADD birthday DATE;
--------------------------------------------

Example: 열의 속성변경하기(Modify a column)
--------------------------------------------
mysql> ALTER table mytest CHANGE
mysql> name newname VARCHAR (25);
--------------------------------------------

Example: 열 삭제하기(Delete a column)
--------------------------------------------
mysql> ALTER table mytest DROP newname;
--------------------------------------------

이제 아래에 주어진 테이블을 만들어 보고 테이블을 변경해 보자.
--------------------------------------------
mysql> TABLE mytest (
> email VARCHAR (25),
> phone_number INT,
> ID INT AUTO_INCREMENT,
> birthday DATE );
--------------------------------------------
2004/05/07 11:05 2004/05/07 11:05

Comments List

  1. 땡굴이 2004/05/07 11:10 # M/D Reply Permalink

    플래시와 직접적으로 관계가 없다는 편견을 퍼리자..
    제대로 공부하기 위해서라도.. 관심을 가지고 공부해 보자.

  2. 진이얍 2004/08/16 02:26 # M/D Reply Permalink

    MySQL 응용 빼고 책 한권 다 기술되어 있네요. 몇가지 빼고요. 푸훗.. 중요한 것은
    Flash에서 action script로 direct하게 사용할 수 있나요?
    서점에 가서 Action script책을 보다가 외부file acess랑 서버구현 등 다양하게 기술되어
    있길래 당연하게 이부분이 있을거라 생각하고 구입했는데 없어요 ㅠ ㅁ ㅠ;;
    하물며 html or php or jsp에서 test.swf?var=value해서 flash에서 값을 request 처리할 때
    어떻게 하나도 나오지 않았어요. ㅡ ㅁ ㅠ;; 지금 여기저기 땡굴님 집 뒤지고 있어요.
    없으면 질문하던가 db 연동한 flash 소스나 받아서 볼까 해요.. ㅡ ㅁ ㅡ;; 아 멀고도 험하다.

  3. 땡굴이 2004/10/18 15:15 # M/D Reply Permalink

    mysql -unipon -p nipon 
    -u 다음에 붙혀써야 한다..

  4. 땡굴이 2004/10/18 22:37 # M/D Reply Permalink

    describe <테이블명>; // 테이블 구조를 살표볼때

  5. 땡굴이 2004/10/18 22:57 # M/D Reply Permalink

    DROP TABLE <테이불명>; // 테이블 삭제

  6. 땡굴이 2004/10/18 23:07 # M/D Reply Permalink

    ALTER TABLE <테이블명> MODIFY <컬럼명> VARCHAR(100); &nbsp
    // 선택된 테이블의 컬럼 TPYE을 변경&nbsp
    &nbsp
    ALTER TABLE <테이블명> ADD <컬럼명> VARCHAR(100); &nbsp
    // 선택된 테이블의 새로운 컬럼을 추가

  7. 땡굴이 2004/10/18 23:09 # M/D Reply Permalink

    ALTER TABLE <테이블명> change <변경전 컬럼명> <변경후 컬럼명> <자료형>;&nbsp
    ex) ALTER TABLE memo change email user VARCHAR(12);&nbsp
    // 선택된 테이블의 컬럼 변경

  8. 땡굴이 2004/10/18 23:12 # M/D Reply Permalink

    ALTER TABLE <테이블명> DROP <삭제할 컬럼명>;&nbsp
    ex) ALTER TABLE memo DROP exit;&nbsp
    // 테이블의 특정 컬럼 삭제하기

  9. 땡굴이 2004/10/18 23:17 # M/D Reply Permalink

    INSERT INTO <테이블명> (컬럼1, 컬럼2, ..., 컬럼N) VALUES (데이터1, 데이터2, ..., 데이터N);&nbsp
    ex) INSERT INTO memo (no, id, pass) VALUES (&#039;1&#039;, &#039;sunggyu&#039;, &#039;1234pass&#039;);&nbsp
    // 테이블에 데이터 추가하기

  10. 땡굴이 2004/10/18 23:20 # M/D Reply Permalink

    SELECT * FROM <테이블명>&nbsp
    // 테이블 안에 있는 데이터를 볼 때

  11. 땡굴이 2004/10/18 23:35 # M/D Reply Permalink

    SELECT 컬럼1, 컬럼2, ..., 컬럼N FROM <테이블명>&nbsp
    // 테이블 안에 있는 원하는 항목의 데이터를 볼 때

  12. 땡굴이 2004/10/18 23:40 # M/D Reply Permalink

    SELECT <컬럼명> FROM <테이블명> WHERE <조건>;&nbsp
    ex) SELECT * FROM memo WHERE sex=&#039;M&#039;;&nbsp
    // 특정 조건을 만족하는 목록 표시하기

  13. 땡굴이 2004/10/18 23:41 # M/D Reply Permalink

    SELECT <컬럼명> FROM <테이블명> WHERE <조건> AND <조건>;&nbsp
    // 조건을 추가할 수도 있다.

  14. 땡굴이 2004/10/18 23:46 # M/D Reply Permalink

    SELECT <컬럼명> FROM <테이블명> ORDER BY <컬럼명> [ASS/DESC]&nbsp
    ex) SELECT id, total FROM memo ORDER BY total DESC;&nbsp
    // 데이터를 순서대로 가져오기 (기본 오름차순 - ASS : 오름차순 / DESC : 내림차순)

  15. 땡굴이 2004/10/18 23:47 # M/D Reply Permalink

    SELECT * FROM memo LIMIT 4;&nbsp
    // 테이블에서 원하는 수 만큼의 데이터를 가져올 때

  16. 땡굴이 2004/10/18 23:48 # M/D Reply Permalink

    SELECT * FROM memo LIMIT 4;&nbsp
    // 테이블에서 원하는 수 만큼의 데이터를 가져올 때 (1번 ~ 4번까지)&nbsp
    &nbsp
    SELECT * FROM memo LIMIT 8,12;&nbsp
    // 테이블에서 원하는 수 만큼의 데이터를 가져올 때 (8번 ~ 12번까지)

  17. 땡굴이 2004/10/18 23:54 # M/D Reply Permalink

    SELECT name, (kor&nbspeng&nbspmath)/3 FROM memo;&nbsp
    // 계산식을 통해 자료 가져오기 (해당 name의 각 과목 총 합에서 3을 나누어 평균값을 보여준다.)&nbsp
    &nbsp
    SELECT * FROM memo WHERE kor >= &#039;80&#039; AND kor <= &#039;90&#039;;&nbsp
    // 국어 점수가 80점 이상이고, 90점 이하인 사람을 표시할 때&nbsp
    &nbsp
    SELECT MAX(kor), MIN(kor), AVG(kor), SUM(kor), STD(kor) FROM memo;&nbsp
    // 국어 점수의 최대, 최소, 평균, 합, 표준편자를 표시할 때

  18. 땡굴이 2004/10/18 23:58 # M/D Reply Permalink

    SELECT COUNT(*) FROM <테이블명>&nbsp
    // 데이터 개수 알아내기 (전체 데이터 개수를 반환하는 쿼리)&nbsp
    &nbsp
    SELECT COUNT(*) FROM memo WHERE sex = &#039;F&#039;;&nbsp
    // memo 테이블에서 성별(sex)이 여자(F)인 데이터의 개수

  19. 땡굴이 2004/10/19 00:00 # M/D Reply Permalink

    SELECT * FROM memo WHERE name LIKE &#039;강%&#039;;&nbsp
    // 검색을 통해 데이터 가져오기&nbsp
    // (memo 테이블에서 이름(name)이 &#039;강&#039;으로 시작하는 사람을 모두 표시하라)

  20. 땡굴이 2004/10/19 00:06 # M/D Reply Permalink

    SELECT name, YEAR(birthday), MONTH(birthday), DAYOFMONTH(birthday), DAYOFWEEK(birthday) FROM memo;&nbsp
    // memo 테이블에 저장된 birthday 값을 연, 월, 일, 요일로 반환하는 쿼리

  21. 땡굴이 2004/10/19 00:09 # M/D Reply Permalink

    UPDATE <테이블명> SET <컬럼1>=<값1>,<컬럼2>=<값2>, ..., <컬럼n>=<값n> WHERE 조건;&nbsp
    // 데이터 수정하기&nbsp
    &nbsp
    UPDATE memo set kor=&#039;90&#039; WHERE id=&#039;nipon&#039;;&nbsp
    // memo 테이블에 id가 nipon인 사람의 국어점수(kor)를 90으로 수정

  22. 땡굴이 2004/10/19 00:17 # M/D Reply Permalink

    UPDATE <테이블명> SET <컬럼1>=<값1>,<컬럼2>=<값2>, ..., <컬럼n>=<값n> WHERE 조건;&nbsp
    // 데이터 수정하기&nbsp
    &nbsp
    UPDATE memo SET kor=&#039;90&#039; WHERE id=&#039;nipon&#039;;&nbsp
    // memo 테이블에 id가 nipon인 사람의 국어점수(kor)를 90으로 수정 &nbsp
    &nbsp
    UPDATE memo SET kor=kor-10 WHERE eng < &#039;70&#039;;&nbsp
    // memo 테이블에 영어점수가 70점 미만인 사람들의 국어 점수를 10점씩 차감&nbsp
    &nbsp
    UPDATE 쿼리를 사용할 때 WHERE 옵션을 생략하면 모든 데이터가 변경되기 때문에 사용전에 조건을 꼼꼼히 살펴서 꼭 WHERE 옵션을 이용하도록 하자&nbsp

  23. 땡굴이 2004/10/19 00:18 # M/D Reply Permalink

    DELETE FROM <테이블명> WHERE 조건;&nbsp
    // 테이터 삭제하기&nbsp
    &nbsp
    ex) DELETE FROM memo WHERE id = &#039;1&#039;;&nbsp
    // memo 테이블에 id가 1인 데이터를 삭제

  24. 땡굴이 2004/10/19 00:19 # M/D Reply Permalink

    DELETE FROM <테이블명> WHERE 조건;&nbsp
    // 테이터 삭제하기&nbsp
    &nbsp
    ex) DELETE FROM memo WHERE id = &#039;1&#039;;&nbsp
    // memo 테이블에 id가 1인 데이터를 삭제&nbsp
    &nbsp
    ex) DELETE FROM memo WHERE kor > &#039;90&#039;;&nbsp
    // memo 테이블에 국어점수가 90점 이상인 데이터를 삭제

  25. Photo&Music{dead 2004/10/22 10:37 # M/D Reply Permalink

    Photo&Music{deadhorse11}에서 퍼감
    DB관련내용이 참보기 쉽게 되어있다

  26. 땡굴이 2005/08/23 11:57 # M/D Reply Permalink

    update 테이블명 set 필드명=REPLACE(필드명,&#039;찾는문자&#039;,&#039;바꿀문자&#039;);&nbsp
    조건 있으면 뒤에 where절 넣으세요.&nbsp
    &nbsp
    UPDATE SCHOOL SET AREA = REPLACE(AREA,&#039;충북&#039;,&#039;충청북도&#039;) WHERE AREA LIKE &#039;%충북%&#039;&nbsp
    출처 : PHPSCHOOL

http://www.action-scripter.com/blog/trackback/384
영국의 모바일 업체..

- http://www.three.co.uk
현재 차세대 모바일폰 즉 비디오 모바일폰을가지고 치열한 영국모바일시장에 뛰어든...3(회사명임)

- http://www.vodaphone.co.uk
영국내에서 3대 모바일 업체로 자리을 잡고 있으며 영국내 축구클럽 맨체스터 유나이티드의 광고스폰서 (vodaphone)

- http://www.orange.co.uk
3??? 모바일 업체 브랜드로서 오렌지색감이 물씬나는 업체 (개인적으로 좋아하는 업체 내가 가지고있는 모바일 폰이기도함)

- http://www.o2.co.uk
3대 모바일 업체중 하나 vodaphone과 함께 유명 축구클럽 아스날의 광고 스폰서

- http://www.virgin.com/uk/
virgin이라는 유럽에서 최대 규모을 가진 업체다. 그 명성만큼 전유럽 걸쳐 엄청난 규모을 가지고 있다.

- http://www.t-mobile.co.uk
t-mobile업체 아직 자세한 정보을 접수 못했으므로 묵묵무답....^^;;;

이상 영국내 모바일 업체 사이트입니다.
2004/05/03 14:23 2004/05/03 14:23
http://www.action-scripter.com/blog/trackback/388
1. 우리나라에서 픽셀을 취미로하거나 직업으로하는사람들의 개인홈

http://www.enzzu.com/
http://www.wowzzo.com
http://maxcder.com/
http://www.chocoboy.com/
http://damyo.co.ly/
http://www.enzzu.com/
http://www.kiwizine.com/
http://www.misuya.com/
http://bibi1004.com/
http://www.502.pe.kr/
http://5deng.net/newhome/home2.htm
http://www.toonzoo.co.kr/
http://palalala.com/saycharac.htm
http://www.karimto.pe.kr/index.html?¢er=gallery_center.html&down=gallery_down_dot.html
http://vivakn.com/


2. 픽셀관련 추천사이트

http://www.electriconland.com/
http://www.kare.com/
http://www.mrwong.de/index1.htm
http://www.pixelmuseum.com/
http://www.lovepixel.idv.tw/
http://www.gawzu.idv.tw/
http://pixel.nascimpact.com/pixel.php
http://www.horae.dti.ne.jp/~phi/pfg/pfg.html
http://www.shakagraphics.com/
http://bitmapmania.m78.com/
http://www.eboy.com/
http://www.pixture.com/
http://ewit.hypermart.net/khorborg/index.html
http://www.sam.hi-ho.ne.jp/bongo/
http://www.quickhoney.com/indexday.html
http://www.habbohotel.com/habbo/en/

■ 원문 : 즐겨찾기_장지연 님의 글 (2003.10.10)
2004/05/03 14:21 2004/05/03 14:21
http://www.action-scripter.com/blog/trackback/395


Bang & Oolufsen의 Beo player를 설치하는 순간 매력적인 인터페이스에 바로 빨려들어갈 것이다.
감각적인 화면 과 Detail한 구성이 너무나도 환상적인 MP3 Player....
■ 다운로드 : ftp://ftp.beoplayer.com/beoplayer300.exe
2004/05/03 14:18 2004/05/03 14:18

Comments List

  1. roni 2005/02/12 23:45 # M/D Reply Permalink

    설치 해 보았는데 정말 멋지네요~ 단순하면서도 세련된 인터페이스와 부드러운 인터페이스 움직임등~ ^^ <!-- <homepage>http://play-cube.net</homepage> -->

  2. 땡굴이 2005/02/13 23:18 # M/D Reply Permalink

    그렇죠.. 정말 멋진 인테페이스라고 생각됩니다.

http://www.action-scripter.com/blog/trackback/397
아무리 좋은 웹사이트도 시간이 지나면 곧 잊어버리기 마련이다.
이제는 웹 사이트과 아이디어를 만들어내는 곳들에 주목해보자
10개의 웹사이트들 자체가 best of best 는 아니지만 이들이 만들어내는 작품의 대부분은 최고이다.

운이 좋으면 작품의 대한 자세한 설명과 case study 등의 유용한 정보를 얻을수있고 이미 리뉴얼된 웹사이트들 부터 디자인 시안, 시디롬,광고물 영상등의 아이디어 넘치는 자료들도 만날수 있다.

1. http://www.rga.com
맨하튼의 위치한 25년 전통의 인터렉티브 미디어에이젼시로 다양한 경험을 가지고 있는 글로벌 에이젼시 업계의 지존,, 최근 오픈한 nikelab도 여기작품
http://www.nike.com
http://running.nike.com/nikerunning
http://www.nike.com/nikebasketball
http://www.nike.com/nikepresto
http://www.nike.com/nikegoddess
http://www.nike.com/nikelab
http://www.aveda.com

2. http://www.summitprojects.com
95년 설립 여러 스타일을 구사하는 미국의 미디어 에이젼시
http://www.smartwool.com
http://nikegolf.nike.com/nikegolf

3. http://www.elixirstudio.com
http://www.blastradius.com
CANNES CYBER LIONS FINALIST
Nike - weather를 기억하고있다면
캐나다의 blastradius 와 디자이너 Arnaud Mercier의 개인 프로젝트 사이트

4. http://www.kurtnoble.com
emi sony universal 등의 클라이언트를 가지고 있고 다양한 스타일을 구사하며 특히 뮤직분야에 큰 두각을 나타내고 있는 샌프란시스코의 디자인 그룹
http://www.marines.com  
http://www.nowthatsmusic.com
http://www.lennykravitz.com

5. http://www.secondstory.com
스토리 텔링으로는 세계최고다 보는데 아마 일주일은 걸릴듯

6. http://www.wddg.com
포트폴리오를 꼼꼼히 잘 살펴본다면 만만치 않은곳임을 실감하게 된다.

7. http://www.firstbornmultimedia.com
imaginative interactive agency 를 표방하고 있는 firstborn. 1997년에 뉴욕에서 설립하였으며 비교적 짧은 기간안에 큰 성장을 거두고 있다.. 패션과 의류를 중심으로한 인터렉티브한 프로젝트들이 인상적임

8.http://www.peelinteractive.com
2000년에 설립한 시에틀의 인터렉티브 미디어 회사로 세련되고 효과적인 스토리 텔링이 돋보인다.
http://www.newyorkphilharmonic.com/kostelanetz
http://www.peelinteractive.com/ongoodgrounds/html/launch1.htm
http://www.altrec.com/features/ontheamericantrail

9. http://www.landor.com
세계적 디자인 컨설팅 전문회사로 CI,BI분야에서 대단한 위치의 landor 구경하는것만으로도 도움이 된다. 우리나라에서는 국민은행 KB Star, LG Ci 칼텍스 디지털 TV의 통합브랜드 X canvas등이 여기 작품

10. http://www.brandchannel.com
멋진 디자인이 아니고 영어라 조금 거부감이 느껴지지만 브랜드와 관련된 컨탠츠로는 최고 Brandchannel.com에서 발표한 2002년 브랜드 인지도 조사
http://www.brandchannel.com/2002_Boty/global_2002.html

■ 원문 : 싸이월드 "즐겨찾기 - 김성훈"
2004/05/03 14:16 2004/05/03 14:16

Comments List

  1. 낭망백수 2004/11/11 16:10 # M/D Reply Permalink

    퍼감미다요오~~ 꾸벅

http://www.action-scripter.com/blog/trackback/320
이건 액션스크립트는 아니지만 자주 사용되고 또, 자주 잊어 버렸던 자바스크립트입니다.
호호호.. 부모창을 닫는 방법 이제 잊지 말아야지..^^

<script language="javascript">
<!--
function winclose(){
    window.open("주소","이름","width=300, height=200"); // 새창 열기
    self.opener = self; // 부모창 지정
    window.close();  // 부모창 닫기
}
//-->
</script>
2004/05/02 13:18 2004/05/02 13:18
   1  2  3  4  5    
  믹시