1. MySQL
- 데이터를 쉽고 편리하게 다룰 수 있도록 하기 위해서 등장한 것
(데이터베이스 메니지먼트 시스템(DBMS) Oracle, SQL Server, MySQL, DB2
ex) 데이터베이스: 책장 / 데이터메니먼트시스템 : 책장관리자
2. SQL
- 데이터를 보다 쉽게 검색하고 추가, 삭제, 수정 같은 조작을 할 수 있도록 고안된 컴퓨터 언어
- 관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준
- DML (Data Manipulation Language): 데이터를 조작하기 위해 사용
INSERT, UPDATE, DELETE, SELECT 등
SELECT
SELECT * FROM 테이블명;
select 필드명 from 테이블명;
employee 테이블에서 직원의 사번(empno), 이름(name), 직업(job)을 출력하시오.
select empno as 사번, name as 이름, job as 직업 from employee;
employee 테이블에서 사번과 부서번호를 하나의 칼럼으로 출력하시오
SELECT concat( empno, '-', deptno) AS '사번-부서번호' FROM employee;
사원 테이블의 모든 부서번호 출력하시오. (사원 수 만큼 출력된다.)
select deptno from employee;
사원 테이블의 부서번호를 중복되지 않게 출력하시오.
select distinct deptno from employee;
employee 테이블에서 직원의 사번(empno), 이름(name), 직업(job)을 출력하시오.
단, 이름을 기준으로 오름차순 정렬합니다.
select empno, name, job from employee order by name;
select empno as 사번, name as 이름, job as 직업 from employee order by 이름;
select empno, name, job from employee order by name desc;
employee 테이블에서 고용일(hiredate)이 1981년 이전의 사원이름과 고용일을 출력하시오.
select name, hiredate from employee where hiredate < '1981-01-01';
select name, deptno from employee where deptno = 30;
select name, deptno from employee where deptno in (10, 30);(또는)
select name, job from employee where name like '%A%';(% 는 0에서부터 여러 개의 문자열을 나타냄)
INSERT
INSERT INTO 테이블명(필드1, 필드2, 필드3, 필드4, … ) VALUES ( 필드1의 값, 필드2의 값, 필드3의 값, 필드4의 값, … )
UPDATE
UPDATE 테이블명 SET 필드1=필드1의값, 필드2=필드2의값, 필드3=필드3의값, … WHERE 조건식
DELETE
DELETE FROM 테이블명 WHERE 조건식
- DDL (Data Definition Language): 데이터베이스의 스키마(데이터 집합)를 정의하거나 조작하기 위해 사용
CREATE, DROP, ALTER 등
CREATE
create table 테이블명( 필드명1 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT],
필드명2 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT],
필드명3 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], ...........
PRIMARY KEY(필드명) );
테이블 수정
alter table 테이블명 add 필드명 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT];
alter table 테이블명 change 필드명 새필드명 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT];
alter table 테이블명 rename 변경이름;
테이블 삭제
alter table 테이블명 drop 필드명;
- DCL (Data Control Language) : 데이터를 제어하는 언어, 권한을 관리하고, 테이터의 보안, 무결성 등을 정의
GRANT, REVOKE 등
create database DB이름;
데이터베이스 사용자 생성과 권한 주기
- db이름 뒤의 * 는 모든 권한을 의미
- @’%’는 어떤 클라이언트에서든 접근 가능하다는 의미이고, @’localhost’는 해당 컴퓨터에서만 접근 가능하다는 의미
- flush privileges는 DBMS에게 적용을 하라는 의미
grant all privileges on db이름.* to 계정이름@'%' identified by '암호’;
grant all privileges on db이름.* to 계정이름@'localhost' identified by '암호’;
flush privileges;
데이터베이스 접속
mysql –h호스트명 –uDB계정명 –p 데이터베이스이름
(mysql –h127.0.0.1 –uconnectuser –p connectdb [enter])
연결끊기
QUIT
exit
입력 도중 취소
\c
show databases;
use mydb;
show tables;
desc 테이블명;
Maven?
프로젝트를 빌드하는 방법에 대하여 가이드하는 것도 쉬운 일이 아님 so
Maven에 설정한 대로 모든 개발자가 일관된 방식으로 빌드를 수행
다양한 플러그인을 제공해줘서, 굉장히 많은 일들을 자동화
설정 파일에 몇 줄 적어줌으로써 직접 다운로드 받거나 하는 것을 하지 않아도 라이브러리를 사용
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>kr.or.connect</groupId>
<artifactId>examples</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>mysample</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
- project : pom.xml 파일의 최상위 루트 엘리먼트(Root Element)입니다.
- modelVersion : POM model의 버전입니다.
- groupId : 프로젝트를 생성하는 조직의 고유 아이디를 결정합니다. 일반적으로 도메인 이름을 거꾸로 적습니다.
- artifactId : 해당 프로젝트에 의하여 생성되는 artifact의 고유 아이디를 결정합니다. Maven을 이용하여 pom.xml을 빌드할 경우 다음과 같은 규칙으로 artifact가 생성됩니다. artifactid-version.packaging. 위 예의 경우 빌드할 경우 examples-1.0-SNAPSHOT.jar 파일이 생성됩니다.
- packaging : 해당 프로젝트를 어떤 형태로 packaging 할 것인지 결정합니다. jar, war, ear 등이 해당됩니다.
- version : 프로젝트의 현재 버전. 추후 살펴보겠지만 프로젝트가 개발 중일 때는 SNAPSHOT을 접미사로 사용합니다. Maven의 버전 관리 기능은 라이브러리 관리를 편하게 합니다.
- name : 프로젝트의 이름입니다.
- url : 프로젝트 사이트가 있다면 사이트 URL을 등록하는 것이 가능합니다.
JDBC
자바 프로그램 내에서 SQL문을 실행하기 위한 자바 API(응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻)
import java.sql.*;
Class.forName( "com.mysql.jdbc.Driver" ); //드라이버 로드
String dburl = "jdbc:mysql://localhost/dbName";
Connection con = DriverManager.getConnection ( dburl, ID, PWD ); // /커넥션 연결
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select no from user" );
stmt.execute(“query”); //any SQL
stmt.executeQuery(“query”); //SELECT
stmt.executeUpdate(“query”); //INSERT, UPDATE, DELETE
닫기
rs.close();
stmt.close();
con.close();
':: IT > 백엔드' 카테고리의 다른 글
상태정보(쿠키와 세션) (0) | 2020.04.02 |
---|---|
백엔드 정의, HTTP, 브라우저, WAS, Servlet,JSP (0) | 2020.03.30 |
[Spring] (0) | 2020.03.29 |
scope(스코프) (0) | 2020.03.28 |