mySQL


SQL(Structured Query Language)

  • SQLは、データの取得、追加、削除、変更を容易にするためのコンピュータ言語です.
  • これは、
  • リレーショナル・データベースでデータを操作およびクエリーするための標準的な方法です.
  • データ管理言語(DML):データの処理に使用されます.
      INSERT、UPDATE、DELETE、SELECTなど.
  • データ定義言語(DDL):データベースアーキテクチャを定義または操作するために使用されます.
     CREATE、DROP、ALTERなど.
  • データ制御言語(DCL):管理権限、データのセキュリティと整合性の定義.
      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;

    データ型