"DB 명령어"의 두 판 사이의 차이
잔글 |
잔글 |
||
1번째 줄: | 1번째 줄: | ||
− | '''DB 명령어'''는 [[DBMS]]를 활용할 때 사용하는 [[명령어]]이다. 데이터 베이스중 가장 널리 사용되고 있는 것은 [[오라클]]에서 제작한 오라클 데이터베이스이며 현재 [[유닉스]] 환경에서 가장 널리 사용되고 있는 [[RDBMS]]이다. 그 밖에 [[마이에스큐엘]], [[엠에스에스큐엘]], [[포스트그레스큐엘]], [[몽고디비]], [[ | + | '''DB 명령어'''는 [[DBMS]]를 활용할 때 사용하는 [[명령어]]이다. 데이터 베이스중 가장 널리 사용되고 있는 것은 [[오라클]]에서 제작한 오라클 데이터베이스이며 현재 [[유닉스]] 환경에서 가장 널리 사용되고 있는 [[RDBMS]]이다. 그 밖에 [[마이에스큐엘]], [[엠에스에스큐엘]], [[포스트그레스큐엘]], [[몽고디비]], [[디비투]], [[SQLite]], [[MariaDB]] 등이 있다. |
==SQL== | ==SQL== |
2020년 9월 9일 (수) 16:39 판
DB 명령어는 DBMS를 활용할 때 사용하는 명령어이다. 데이터 베이스중 가장 널리 사용되고 있는 것은 오라클에서 제작한 오라클 데이터베이스이며 현재 유닉스 환경에서 가장 널리 사용되고 있는 RDBMS이다. 그 밖에 마이에스큐엘, 엠에스에스큐엘, 포스트그레스큐엘, 몽고디비, 디비투, SQLite, MariaDB 등이 있다.
목차
SQL
SQL의 종류에는 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL) 가 있다.[1]
데이터 정의어
- CREATE : 테이블 생성
- DROP : 테이블 삭제
- ALTER : 테이블 수정
- TRUNCATE : 테이블에 있는 모든 데이터 삭제
데이터 조작어
- SELECT : 데이터 조회
- INSERT : 데이터 입력
- UPDATE : 데이터 수정
- DELETE : 데이터 삭제
데이터 제어어
- GRANT : 권한 생성
- REVOKE : 권한 삭제
오라클
SQL 명령 줄은 오라클 데이터베이스XE에 액세스 하기위한 명령 줄 도구다. SQL, PL/SQL, SQL *Plus의 명령과 문을 입력하고 실행할 수 있다.
계정관련
- 계정확인
SHOW USER;
- 모든 계정 확인
SELECT * FROM all_users;
- SYS 계정으로 들어가기
SYS as sysdba
- 계정 생성
CREATE USER testuser IDENTIFIED BY "testpwd"
- 다른 계정으로 넘어가기
conn testuser/testuser;
- 계정 비밀번호 변경
ALTER USER testuser IDENTIFIED BY "chagepwd";
- 계정 삭제[2]
DROP USER testuser;
권한관련
- 접속 권한 주기
GRANT CONNECT, RESOURCE TO testuser;
- 사용자에게 권한 주기
GRANT DELETE, INSERT, SELECT, UPDATE ON testdb TO testuser;
- DBA 권한주기
GRANT DBA TO testuser;
- 권한 취소[2]
REVOKE CONNECT, RESOURCE FROM testuser;
테이블관련
- 모든 테이블 보기
SELECT * FROM TAB;
- 테이블 구조 확인하기
DESC testtable;
- 테이블 생성
CREATE TABLE testtable ( test_id NUMBER NOT NULL);
- 코멘트 추가
COMMENT ON TABLE testtable IS 'This table is test table'; COMMENT ON COLUMN testtable.testfield IS 'This column is test column of testtable';
- 테이블 변경
컬럼 추가
ALTER TABLE testtable ADD(testcolumn VARCHAR2(10));
컬럼 타입 변경
ALTER TABLE testtable MODIFY(testcolumn VARCHAR2(10));
컬럼 삭제
ALTER TABLE testtable DROP(testcolumn);
- 테이블 삭제[2]
DROP TABLE testtable;
값 입출력
- 레코드 삽입
INSERT INTO testtable(test_id, test_name, test_date) VALUES(100, 'test', sysdate);
- 레코드 수정
UPDATE testtable SET test_name = 'test001' WHERE test_id = '001';
- 레코드 확인
SELECT * FROM testtable;
- 레코드 삭제[2]
DELETE FROM testtable WHERE test_name = 'test001';
기타 유용한 커맨드
- DB명 확인
SELECT NAME, DE_UNIQUE_NAME FROM v$database;
- SID 확인[2]
SELECT INSTANCE FROM v$thread;
MySQL
MySQL의 기본 명령어와 SQL문이다.
- 데이터베이스 접속
mysql -u 사용자명 -p dbname
설치 직후에는 root 사용자에 비밀번호가 없으므로 다음과 같이 접속하여 MySQL을 관리할 수 있다.
mysql -u root mysql
외부 서버에서 접속이 불가하면 MySQL 설정에서 bind-address 항목을 살펴본다.
mysql --protocol=tcp -h 'hostname' -P 3306 -u [username] -p [database-name]
- 비밀번호변경
MySQL을 설치한 직후에는 root 계정에 암호가 지정되어 있지 않기 때문에 다음 세가지 방법으로 비밀번호를 변경 할 수 있다.
mysqladmin -u root password 새비밀번호
UPDATE user SET password=password('새비밀번호') WHERE user='root'; FLUSH PRIVILEGES;
SET PASSWORD FOR root=password('새비밀번호');
root 비밀번호가 설정된 상태에서는 mysql이나 mysqladmin 명령을 실행할 때 -p 옵션을 붙여주고 기존 비밀번호를 입력해야만 한다.
- 사용자 확인
use mysql; select User,Host from user; SHOW GRANTS FOR 'username'@'%'
- 사용자 추가/권한
CREATE USER username@localhost IDENTIFIED BY 'userpassword' GRANT SELECT,INSERT,UPDATE,DELETE ON dbname.* TO 'username'@'localhost'; GRANT ALL PRIVILEGES ON dbname.* TO username@localhost IDENTIFIED BY 'password';
- 불필요한 사용자 삭제
DLETE FROM USER WHERE USER='username'; FLUSH PRIVILEGES;
- 데이터베이스 생성/보기
CREATE DATABASE dbname; CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; SHOW DATABASES; USE dbname; DROP DATABASE [IF EXISTS] dbname;
- 테이블 생성/보기
CREATE TABLE tablename ( column_name1 INT PRIMARY KEY AUTO_INCREMENT, column_name2 VARCHAR(15) NOT NULL, column_name3 INT ) ENGINE=INNODB;
- 테이블 목록 보기
SHOW TABLES;
- 테이블 구조 보기
EXPLAIN tablename; DESCRIBE tablename;
- 테이블 이름 변경
RENAME TABLE tablename1 TO tablename2[, tablename3 TO tablename4];
- 테이블 삭제
DROP TABLE [IF EXISTS] tablename;
- 현재 상태 보기
STATUS
- 테이블 데이터 추가
INSERT INTO tablename VALUES(값1, 값2, ...); INSERT INTO tablename (col1, col2, ...) VALUES(값1, 값2, ...);
- 테이블 확인
SELECT col1, col2, ... FROM tablename;
컬럼명을 *로 할 시 모든 컬럼을 의미한다. 그리고 AS를 통해 컬럼의 이름을 바꿔서 출력이 가능하며 DESC를 활용해 내림차순 혹은 ASC를 활용해 오름차순으로 결과를 출력할 수 있다.
SELECT * FROM tablename ORDER BY col1 DESC; SELECT col1, korean + math english AS '총점' FROM tablename ORDER BY '총점' ASC;
결과중 숫자를 제한해 얻고싶은 개수만 가져오게 할 수도 있다.
SELECT * FROM grade LIMIT 10;
- 테이블 수정
UPDATE tablename SET col1=새값 WEHER 조건
- 테이블 삭제
DELETE FROM tablename WEHRE 조건
각주
- ↑ 돼민이, 〈(Oracle) SQL의 종류 (DDL, DML, DCL)〉, 《티스토리》, 2016-11-13
- ↑ 2.0 2.1 2.2 2.3 2.4 대충고양이짤, 〈(Oracle) 오라클 명령어 간단 정리〉, 《티스토리》, 2013-11-12
참고자료
- 대충고양이짤, 〈(Oracle) 오라클 명령어 간단 정리〉, 《티스토리》, 2013-11-12
- 돼민이, 〈(Oracle) SQL의 종류 (DDL, DML, DCL)〉, 《티스토리》, 2016-11-13
같이보기