-
Notifications
You must be signed in to change notification settings - Fork 6
database mysql
egoing edited this page Aug 27, 2019
·
32 revisions
이곳으로 오는 주소 ⇨ http://bit.ly/-mysql
설치시 아이디 비밀번호는 root / 111111 로 해주세요.
- Windows : https://bitnami.com/stack/wamp
- MacOS : https://bitnami.com/stack/mamp
- Linux : https://bitnami.com/stack/lamp
- https://docs.google.com/spreadsheets/d/1zmN7qQYjKGkQW0aSKFQxEJ-yLVXYM27AHgnsybJGvFM/edit?usp=sharing
cd /Applications/mampstack-7.1.14-0/mysql/bin
./mysql -uroot -p
cd C:\Bitnami\wampstack-7.1.26-0\mysql\bin
mysql -uroot -p
create table topic(
id int not null,
title varchar(20) not null,
description text null,
author_name varchar(30) not null,
author_profile varchar(100),
created datetime
);
ALTER TABLE `topic` ADD PRIMARY KEY( `id`);
ALTER TABLE `topic` CHANGE `id` `id` INT(11) NOT NULL AUTO_INCREMENT;
INSERT INTO topic (title, description, created, author_name, author_profile) VALUES('MySQL', 'MySQL is ...', NOW(), 'egoing', 'web developer');
INSERT INTO topic (title, description, created, author_name, author_profile) VALUES('ORACLE', 'ORACLE is ...', NOW(), 'egoing', 'web developer');
INSERT INTO topic (title, description, created, author_name, author_profile) VALUES('SQL Server', 'SQL Server is ...', NOW(), 'duru', 'DBA');
INSERT INTO topic (title, description, created, author_name, author_profile) VALUES('MongoDB', 'MongoDB is ...', NOW(), 'khan', 'DBA');
SELECT id,title,created FROM topic WHERE id > 1 ORDER BY id DESC;
UPDATE topic SET title = 'Oracle' WHERE id = 2;
DELETE FROM topic WHERE id = 4;
CREATE TABLE `author` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
`profile` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ;
INSERT INTO author (id, name, profile) VALUES(1, 'egoing', 'web developer');
INSERT INTO author (id, name, profile) VALUES(2, 'duru', 'DBA');
INSERT INTO author (id, name, profile) VALUES(3, 'khan', 'MongoDB admin');
ALTER TABLE `topic` ADD `author_id` INT NOT NULL AFTER `created`;
ALTER TABLE `topic`
DROP `author_name`,
DROP `author_profile`;
UPDATE topic SET author_id = 1 WHERE id = 1;
UPDATE topic SET author_id = 1 WHERE id = 2;
UPDATE topic SET author_id = 2 WHERE id = 3;
SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id;
topic.php?id=글의 아이디 값
<ul>
<?php
$conn = mysqli_connect('127.0.0.1', 'root', '111111');
mysqli_select_db($conn, 'fbin2');
$result = mysqli_query($conn, "SELECT * FROM topic");
while($row = mysqli_fetch_array($result)){
echo "
<li><a href=\"topic.php?id={$row['id']}\">{$row['title']}</a></li>";
}
?>
</ul>
<?php
$sql = "SELECT * FROM topic WHERE id = {$_GET['id']}";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);
echo "<h1>{$row['title']}</h1>";
echo "{$row['description']}";
?>
#JOIN 연습장 https://docs.google.com/spreadsheets/d/1fyO9RdtExVdEgVGFtmsldA-c-rSC_5tauPF5Fnx0GeM/edit?usp=sharing
- database1 : https://opentutorials.org/course/3162
- mysql : https://opentutorials.org/course/3161
- 릴레이셔널 데이터 모델링 : https://opentutorials.org/module/4134
- 지식지도 : https://seomal.org
- php가 데이터베이스와 상호작용을 할 때 느리다면 localhost -> 127.0.0.1로 hostname을 변경해보세요.
- phpMyAdmin이 느리다면 app/phpmyadmin/htdocs/config.inc.php 의 내용 중 일부를
$cfg['Servers'][$i]['host'] = '127.0.0.1';로 변경해주세요. - MySQL WorkBench 로 접속할 때 Host '127.0.0.1' is not allowed to connect to this MySQL server가 나타나면 hostname을 localhost로 접속을 시도해주세요. 동일한 에러가 발생한다면 아래와 같은 명령을 통해서 root가 모든 client의 hostname에서 접속이 가능하게 허용해주시면 해결 될수도 있습니다.
SELECT Host,User,plugin,authentication_string FROM mysql.user;
update mysql.user set Host='%' WHERE User = 'root';
FLUSH PRIVILEGES;
SELECT Host,User,plugin,authentication_string FROM mysql.user;
grant all privileges on *.* to 'root'@'%';
- https://github.com/egoingsb/offline/raw/master/mysql/employees.zip
- employees 스키마를 생성한 후에 MySQL Workbench의 Menu>Server>Data import를 하시면 됩니다.
- 데이터베이스를 설치합니다.
- DB에 접속합니다. => mysql -uroot -p
- 스키마를 생성합니다. => CREATE DATABASE dbname;
- 스키마를 사용합니다. => USE dbname;
- 테이블을 만든다. => CREATE TABLE tablename....;
- 행을 추가한다. => INSERT INTO ....
- 행을 읽는다. => SELECT * FROM tablename...
- 컬럼이나 행을 제한한다. => WEHERE
- 행을 수정한다. => UPDATE tablename SET column name = 'new cloumn value' WHERE ...
- 행을 삭제한다. => DELETE FROM tablename WHERE ...
- 표를 수동으로 분해해본다. https://docs.google.com/spreadsheets/d/1fyO9RdtExVdEgVGFtmsldA-c-rSC_5tauPF5Fnx0GeM/edit?usp=sharing
- 표를 SQL로 분해한다.
- 표를 수동으로 합성해본다.
- 표를 SQL로 합성한다. => SELECT ... LEFT JOIN ...
- 업무파악 : 나의 서비스를 간단하게 만들어본다.
- 개념적 데이터 모델링 : 내가 만든 서비스의 Entity를 뽑고, Attribute를 붙이고, Relational을 연결해보면서 ERD를 그려봅니다.