검수요청.png검수요청.png

"DB 명령어"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글
잔글
1번째 줄: 1번째 줄:
'''DB 명령어'''는 [[DBMS]]를 활용할 때 사용하는 [[명령어]]이다. 데이터 베이스중 가장 널리 사용되고 있는 것은 [[오라클]]에서 제작한 오라클 데이터베이스이며 현재 [[유닉스]] 환경에서 가장 널리 사용되고 있는 [[RDBMS]]이다. 그 밖에 [[마이에스큐엘]], [[엠에스에스큐엘]], [[포스트그레스큐엘]], [[몽고디비]], [[DB2]], [[SQLite]], [[MariaDB]] 등이 있다.
+
'''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;
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 조건

각주

  1. 돼민이, 〈(Oracle) SQL의 종류 (DDL, DML, DCL)〉, 《티스토리》, 2016-11-13
  2. 2.0 2.1 2.2 2.3 2.4 대충고양이짤, 〈(Oracle) 오라클 명령어 간단 정리〉, 《티스토리》, 2013-11-12

참고자료

같이보기


  검수요청.png검수요청.png 이 DB 명령어 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.