SlideShare a Scribd company logo
Laravel 로 배우는 서버사이드 #4
Database
ABCD, SNOWKIWI / 한성일
1. 데이터베이스 (Database)
데이터베이스 (Database)
인터넷사용자 서버
데이터베이스
처리된 HTML
보고 싶다.
데이터
여기
1
2
3
데이터베이스 (Database)
DBMS (Database Management System)
자료(DATA)를 저장하고 관리
데이터베이스 (Database)
웹서버에 전달 정보를 조회, 저장, 갱신, 삭제
웹서버 자체에 저장된 정보는 없음
엑셀처럼 데이터를 차곡차곡 저장
우리가 엑셀(DB)의폼을 만들어 주어야 함
데이터 베이스웹(애플리케이션) 서버
엑셀과의 비교
Database
Table
Column
Data
데이터베이스의 종류
다양한 데이터 베이스 서버들이 존재 우리가 사용할 데이터 베이스
2. 설정
포트변경
1
2
포트를 3306으로 수정 후
서버 재시작
mysql config 수정
my.cnf 파일 생성
[mysqld]
character-set-server = utf8
C:MAMPconfmysqlmy.ini
[mysqld]
character-set-server = utf8
/Applications/MAMP/conf
기본 문자셋을 utf8로 변경
MySQL 설정 확인
$ mysql -P 3306 -u root -proot
데이터베이스 생성 & 사용자 생성
mysql> SHOW DATABASES;
생성된 데이터베이스를 확인
mysql> CREATE DATABASE abcd_db
abcd_db 데이터베이스를 생성
mysql> CREATE USER 'abcd'@'localhost' IDENTIFIED BY ‘1234';
abcd@localhost 계정 생성 비밀번호는 1234
mysql> GRANT ALL PRIVILEGES ON abcd_db.* TO ‘abcd'@'localhost';
abcd 계정에 abcd_db 사용권한을 지정
mysql> FLUSH PRIVILEGES;
권한 적용
3. MySQL Workbench
워크벤치 다운로드
https://drive.google.com/folderview?
id=0B_dqOWjvHbO9dDRDQktwSnNqWnc&usp=sharing
http://www.mysql.com/products/workbench/
원래는 여기
우리는 여기에서
워크벤치 설정1
2
3
4
abcd_db
1
5
6
워크벤치 설정2
워크벤치 설정3
1
2
쿼리 실행
4. SQL (Structured Query Language)
SQL (Structured Query Language)
데이터베이스에 명령하기위해 정해진 구조적 언어
DML(Data Manipulation Language)
DDL(Data Definition Language)
DCL(Data Control Language)
SHOW, USE
SHOW DATABASES;
USE abcd_db;
데이터베이스 목록 출력
데이터베이스를 사용
데이터베이스를 선택하고 사용한다.
CREATE
CREATE TABLE abcd_user (
id int,
name VARCHAR(50),
title VARCHAR(50),
gender VARCHAR(10)
);
숫자형 id 컬럼
50자가 들어갈 수 있는 문자형 name 컬럼
50자가 들어갈 수 있는 문자형 title 컬럼
10자가 들어갈 수 있는 gender 컬럼
테이블을 생성
다음같은 테이블이 생성된다.
CREATE 1
SHOW TABLES;
테이블 리스트를 조회
더많은 데이터형
http://fendee.egloos.com/3961946
DROP
CREATE TABLE test_table (
id INT,
name VARCHAR(50)
);
SHOW TABLES;
DROP TABLE test_table;
SHOW TABLES;
test_table 을 삭제한다.
데이터베이스, 테이블.. 삭제
SHOW DATABASES;
CREATE DATABASE test_database;
SHOW DATABASES;
DROP DATABASE test_database;
SHOW DATABASES;
test_database 를 삭제한다.
INSERT
INSERT
INTO abcd_user (id, name, title, gender)
VALUES (1, 'jamie', '사장', ‘남자');
INSERT
INTO abcd_user (id, name, title, gender)
VALUES (2, 'jerry', '쥐', ‘남자');
INSERT
INTO abcd_user (id, name, title, gender)
VALUES (3, 'tom', '고양이', ‘여자');
SELECT * FROM abcd_user;
테이블에 데이터 입력
INSERT
INTO 테이블명 (컬럼명)
VALUES (저장데이터);
SELECT
SELECT * FROM abcd_user;
SELECT name, title FROM abcd_user;
SELECT * FROM abcd_user
WHERE name = ‘tom’;
SELECT * FROM abcd_user
WHERE id = ‘1’;
SELECT * FROM abcd_user
WHERE id = ‘1’ AND name = ‘tom’;
SELECT * FROM abcd_user
WHERE id = ‘1’ OR name = ‘tom’;
SELECT 컬럼명 FROM 테이블명
WHERE 조건명 = 조건;
데이터를 조회
* 은 전체 컬럼
UPDATE
UPDATE abcd_user
SET name='john'
WHERE id = 1;
UPDATE abcd_user
SET name=‘anna’, title=‘인턴’
WHERE id = 1;
UPDATE abcd_user
SET title=‘부장’
WHERE name=‘anna’;
UPDATE abcd_user
SET title=‘낙하산’;
UPDATE 테이블명
SET 컬럼명=변경값
WHERE 조건;
데이터를 변경
DELETE
DELETE
FROM abcd_user
WHERE id = 2;
DELETE
FROM abcd_user
WHERE name = 'john';
DELETE
FROM 테이블명
WHERE 조건;
데이터 삭제
5. 라라벨 데이터베이스
데이터베이스 설정 1
.env
DB_HOST=localhost
DB_DATABASE=abcd_db
DB_USERNAME=abcd
DB_PASSWORD=1234
DB_PORT=3306
DB_PORT 라인은 추가 해준다.!!
데이터베이스 설정 2
config/database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'abcd_db'),
'username' => env('DB_USERNAME', 'abcd'),
'password' => env('DB_PASSWORD', '1234'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'port' => 3306,
],
PORT 라인은 추가 해준다.!!
DB 실습용 Controller 생성
콘솔 홈 디렉토리로 이동1
cd ~/Documents/laravel-space/abcd
cd C:laravel-spaceabcd
php artisan make:controller DBController2
기본 1
app/Http/routes.php
Route::get('/db/basic', 'DBController@basicQuery');
1
기본 2
public function basicQuery() {
$users = DB::select('select * from abcd_user where id = ?', [1]);
echo $users[0]->name;
$users = DB::select('select * from abcd_user where id = :id', ['id' => 1]);
echo $users[0]->name;
DB::insert('insert into abcd_user (id, name, title, gender)
values (?, ?, ?, ?)', [4, '둘리', '주인공', '남']);
DB::update('update abcd_user set gender = '여자' where id = ?', ['4']);
}
use IlluminateSupportFacadesDB;
상단에 입력
DBController 사이에 다음 함수를 입력한다.
2
3
app/Http/Controllers/DBController.php
기본 3
http://localhost/db/basic4
6. 쿼리빌더
쿼리빌더 1
app/Http/routes.php1
Route::get('/db/query', 'DBController@queryBulider');
쿼리빌더 2
public function queryBulider() {
$users = DB::table('abcd_user')->get();
echo $users[0]->name;
echo '<br/>';
// 하나의 컬럼만 가져오기
$name = DB::table('abcd_user')->where('name', '둘리')->pluck('name');
echo $name;
echo '<br/>';
// 하나의 컬럼의 데이터
$roles = DB::table('abcd_user')->lists('title');
foreach ($roles as $role) {
echo $role;
echo '<br/>';
}
// 중복제거
$users = DB::table('abcd_user')->distinct()->get();
echo count($users);
echo '<br/>';
// 별명
$users = DB::table('abcd_user')->select('name as user_name')->get();
echo count($users[0]->user_name);
echo '<br/>';
2 app/Http/Controllers/DBController.php
쿼리빌더 3
// 조건
$users = DB::table('abcd_user')->where('id', '<', 2)->get();
foreach ($users as $user) {
echo $user->name;
echo '<br/>';
}
// or
$users = DB::table('abcd_user')
->where('id', '<', 2)
->orWhere('name', '둘')
->get();
foreach ($users as $user) {
echo $user->name;
echo '<br/>';
}
echo '<br/>';
// 1에서 5만큼 더 가져온다
$users = DB::table('abcd_user')->skip(1)->take(5)->get();
foreach ($users as $user) {
echo $user->name;
echo '<br/>';
}
}
테스트
http://localhost/db/query
수고하셨습니다. :)

More Related Content

PDF
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
PDF
회사에서 써보는 SQLAlchemy
PDF
처음배우는 자바스크립트, 제이쿼리 #1
PDF
[NEXT] Flask 로 Restful API 서버 만들기
PDF
MySQL 인덱스의 기초
PDF
처음배우는 자바스크립트, 제이쿼리 #3
PDF
파이썬 웹프로그래밍 1탄
ODP
Django와 flask
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
회사에서 써보는 SQLAlchemy
처음배우는 자바스크립트, 제이쿼리 #1
[NEXT] Flask 로 Restful API 서버 만들기
MySQL 인덱스의 기초
처음배우는 자바스크립트, 제이쿼리 #3
파이썬 웹프로그래밍 1탄
Django와 flask

What's hot (20)

PDF
파이썬 데이터베이스 연결 2탄
PDF
파이썬 데이터베이스 연결 1탄
PPTX
제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈
PDF
[PHPFest 2013] Real mysql
PDF
MySQL JOIN
PDF
파이썬 웹 프로그래밍 2탄
PDF
MySQL delete.update
PDF
처음배우는 자바스크립트, 제이쿼리 #4
PDF
Jstl_GETCHA_HANJUNG
PDF
안드로이드 개발자를 위한 스위프트
PPTX
Swt J Face 1/3
PDF
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
PPTX
Xe hack
PPT
자바야 놀자 PPT
PPTX
Apache solr소개 20120629
PDF
웹성능최적화 20130405
PPT
6.테이블만들기
PPTX
파이썬 언어 기초
PDF
Laravel 로 배우는 서버사이드 #3
PPTX
Angular2 router&http
파이썬 데이터베이스 연결 2탄
파이썬 데이터베이스 연결 1탄
제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈
[PHPFest 2013] Real mysql
MySQL JOIN
파이썬 웹 프로그래밍 2탄
MySQL delete.update
처음배우는 자바스크립트, 제이쿼리 #4
Jstl_GETCHA_HANJUNG
안드로이드 개발자를 위한 스위프트
Swt J Face 1/3
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
Xe hack
자바야 놀자 PPT
Apache solr소개 20120629
웹성능최적화 20130405
6.테이블만들기
파이썬 언어 기초
Laravel 로 배우는 서버사이드 #3
Angular2 router&http
Ad

Viewers also liked (10)

PDF
Laravel 로 배우는 서버사이드 #5
PDF
Laravel 로 배우는 서버사이드 #2
PDF
Laravel 로 배우는 서버사이드 #1
PDF
Ionic으로 모바일앱 만들기 #3
PDF
Ionic으로 모바일앱 만들기 #5
PDF
Web Framework (웹 프레임워크)
PDF
Ionic으로 모바일앱 만들기 #2
PDF
Python 으로 Slackbot 개발하기
PDF
Ionic으로 모바일앱 만들기 #1
PPTX
게임 기획 튜토리얼 (2015 개정판)
Laravel 로 배우는 서버사이드 #5
Laravel 로 배우는 서버사이드 #2
Laravel 로 배우는 서버사이드 #1
Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #5
Web Framework (웹 프레임워크)
Ionic으로 모바일앱 만들기 #2
Python 으로 Slackbot 개발하기
Ionic으로 모바일앱 만들기 #1
게임 기획 튜토리얼 (2015 개정판)
Ad

Similar to Laravel 로 배우는 서버사이드 #4 (20)

PDF
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
PDF
현대고등학교 PHP 강의 - 5차시 (설리번 프로젝트)
PDF
[Pgday.Seoul 2020] SQL Tuning
PPTX
Node.js DBMS short summary
PDF
#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천
PDF
성공적인웹프로그래밍
PPTX
MySQL 기초
PDF
데이터베이스 시스템 chapter4_STG박하은
PDF
02.실행환경 교육교재(데이터처리)
PDF
PostgreSQL로 배우는 SQL 기초
PDF
Fundamentals of Oracle SQL
PDF
[2015-06-26] Oracle 성능 최적화 및 품질 고도화 3
PPT
sqlserver7.0 데이타베이스
PDF
제8장 테이블 생성 수정 제거하기
PDF
Db프로그래밍 환경 설정(131062 장택순)
PPTX
스프링프레임워크 & 마이바티스 ☆ 무.료 강의자료 제공 中
PDF
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
PDF
Federated Engine 실무적용사례
PDF
overview of spring4
PDF
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
현대고등학교 PHP 강의 - 5차시 (설리번 프로젝트)
[Pgday.Seoul 2020] SQL Tuning
Node.js DBMS short summary
#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천
성공적인웹프로그래밍
MySQL 기초
데이터베이스 시스템 chapter4_STG박하은
02.실행환경 교육교재(데이터처리)
PostgreSQL로 배우는 SQL 기초
Fundamentals of Oracle SQL
[2015-06-26] Oracle 성능 최적화 및 품질 고도화 3
sqlserver7.0 데이타베이스
제8장 테이블 생성 수정 제거하기
Db프로그래밍 환경 설정(131062 장택순)
스프링프레임워크 & 마이바티스 ☆ 무.료 강의자료 제공 中
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
Federated Engine 실무적용사례
overview of spring4
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1

More from 성일 한 (14)

PDF
Ionic으로 모바일앱 만들기 #4
PDF
파이어베이스 스터디
PDF
Vuejs 시작하기
PDF
Electron 개발하기
PDF
챗봇 시작해보기
PPTX
2016 ABCD 소개
PDF
인플루언서 마케팅 (INFLUENCER MARKETING)
PDF
처음배우는 자바스크립트, 제이쿼리 #2
PDF
CSS 선택자와 디버그
PDF
워드프레스 기초 (ABCD) #2
PDF
워드프레스 기초 (ABCD) #1
PDF
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
PDF
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
PDF
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)
Ionic으로 모바일앱 만들기 #4
파이어베이스 스터디
Vuejs 시작하기
Electron 개발하기
챗봇 시작해보기
2016 ABCD 소개
인플루언서 마케팅 (INFLUENCER MARKETING)
처음배우는 자바스크립트, 제이쿼리 #2
CSS 선택자와 디버그
워드프레스 기초 (ABCD) #2
워드프레스 기초 (ABCD) #1
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #1 (ABCD Foundation)

Laravel 로 배우는 서버사이드 #4