mySQL

csct3456·2022년 4월 4일
0

SQL(Structured Query Language)

  • SQL은 데이터를 보다 쉽게 검색하고 추가, 삭제, 수정 같은 조작을 할 수 있도록 고안된 컴퓨터 언어입니다.
  • 관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준 수단입니다.
  • DML (Data Manipulation Language): 데이터를 조작하기 위해 사용합니다.
      INSERT, UPDATE, DELETE, SELECT 등이 여기에 해당합니다.
  • DDL (Data Definition Language): 데이터베이스의 스키마를 정의하거나 조작하기 위해 사용합니다.
     CREATE, DROP, ALTER 등이 여기에 해당합니다.
  • DCL (Data Control Language) : 권한을 관리하고, 데이터의 보안, 무결성 등을 정의합니다.
      GRANT, REVOKE 등이 여기에 해당합니다.

DCL (Data Control Language)

// root로 접속해서 데이터베이스 생성 후 사용자 생성하면서 권한주기
mysql –u root  -p
create database DBNAME
grant all privileges on DBNAME.* to USERNAME@'%' identified by 'PASSWORD’;
flush privileges; // 설정 적용
// 일반 사용자 접속
mysql –h 127.0.0.1 –u USERNAME –p DBNAME
exit;
SELECT VERSION(), CURRENT_DATE;		// 대소문자 구분 안함
use DBNAME;		// DB 전환
// sql파일 db에 추가 후 테이블 구조 확인
mysql -u USERNAME -p DBNAME < FILE.sql
mysql -u USERNAME -p DBNAME
show tables;
desc bonus;

DML(Data Manipulation Language)

SELECT

select empno, job from employee;
select empno 사번, job 직무 from employee;
// select empno as 사번, job as 직무 from employee;
select distinct depno from employee;					// 중복행 제거
select empno, name from employee order by empno;		// 오름차순 정렬
select empno, name from employee order by empno desc;	// 내림차순 정렬
select empno, name from employee order by 2;			// 2번째 컬럼(name)으로 정렬
select concat(empno, '-', name) as '사번-이름' from employee;
select * from employee where empno = 7934;
select * from employee where job = 'MANAGER';
select * from employee where deptno in (10,30);			// 부서번호가 10 또는 30
// select * from employee where deptno = 10 or deptno = 30;
select * from employee where deptno = 10 and salary < 1500;
select name, job from employee where name like 'A%'; 	// 이름이 A로 시작하는 사람
select name, job from employee where name like '_A%'; 	// 이름의 두번째 글자가 A인 사람
select lower(name) from employee; 			// name을 소문자로 출력
select substring(name, 1, 2) from employee;	// 이름을 첫 두글자만 출력
select LPAD(name, 10, '*') from employee; 	// *****SMITH
select RPAD(name, 10, '*') from employee; 	// SMITH*****
select trim(name) from employee;
select cast(now() as date);
select count(comm) from employee;		// NULL을 제외하고 카운트
select deptno, avg(salary) from employee group by deptno;	// 부서별 급여 평균

INSERT, UPDATE, DELETE

insert into role (role_id, role_name) values (200, 'CEO');
insert into role values (200, 'CEO');
// 필드명 생략 시 description에 나타난 순서대로 모든 필드에 값 지정
update role set role_id = 104 where role_name = 'CEO';	// CEO의 id를 104로 변경
delete from role where role_id = 104;

DML (Data Manipulation Language)

테이블

// 테이블 생성 : 이름, 데이터 타입 필수
create schedule(   
           subjct		varchar(20) not null primary key,
           time  		varchar(30) not null,
           hours   		tinyint not null,
           professor	varchar(20),
           credit		tinyint default 3
           );

// 컬럼 추가
alter table schedule add exam_date varchar(10);

// 컬럼 삭제
alter table schedule drop exam_date;

// 컬럼 수정
alter table schedule change subjct subject varchar(50);
alter table schedule change hours hours tinyint null;

// 테이블 이름 변경
alter table schedule rename school_schedule;

// 테이블 삭제하기
drop table school_schedule;

데이터 타입

0개의 댓글