MySQL.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
เสรี ชิโนดม MS SQLServer 7 เสรี ชิโนดม
Advertisements

กลุ่มคำสั่ง SQL สามารถแบ่งได้ดังนี้
ภาษามาตรฐานสำหรับนิยามข้อมูล และการใช้ข้อมูล
MySQL.
SQL - Structured Query Language
ภาษามาตรฐานสำหรับนิยามข้อมูล และการใช้ข้อมูล
Php with Database Professional Home Page :PHP
Chapter 8 : การควบคุมความปลอดภัย (Security Control)
Database Programming Exceed Camp #2 24 October 2005.
Week-4, Create, Grant, Trigger DBMS 3/53. From MySQL 5.5 Manual.
MySQL Case study about MySQL On XAMPP server Update : August 23,2012
คือระบบที่รวบรวมข้อมูลไว้ในที่เดียวกัน ซึ่ง ประกอบไปด้วยแฟ้มข้อมูล (File) ระเบียน (Record) และ เขตข้อมูล (Field) และถูกจัดการด้วยระบบ เดียวกัน โปรแกรมคอมพิวเตอร์จะเข้าไปดึงข้อมูล.
SQL Structured Query Language.
SQL Structured Query Language.
PHP: [9] ฐานข้อมูล MYSQL
CHAPTER 14 Database Management
ASP.NET Uthai ShiangJan Information and Communication Technology.
บทที่ 6 บทที่ 6 คำสั่งแก้ไขปัญหาแบบ เลือก (CONDITION)
JSP ติดต่อฐานข้อมูล.
จัดทำโดย น. ส. ดวงกมล งามอยู่เจริญ เลขที่ 8 น. ส. ณัชชา เชื้อตา เลขที่ 6 เตรียมบริหารธุรกิจปี 1.
ซอฟแวร์ที่สนใจ Adobe Acrobat 6.0 Professional.
การใช้งานโปรแกรม SPSS
1. Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
Database & DBMS Architecture วรวิทย์ พูลสวัสดิ์. 2 2 ฐานข้อมูล (Database) - Data and its relation - Databases are designed to offer an organized mechanism.
ระบบบริหารงานบุคคล.
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
1 การใช้งานระบบจัดการ ฐานข้อมูล Mysql ผ่าน phpmyadmin.
เครื่องมือในการจัดการและ วิเคราะห์ข้อมูล นางสาว ชญานิษฐ์ เพ็ชรรัตน์ มูลนิธิสุขภาพภาคใต้ แผนงานระบบข้อมูลข่าวสารเพื่อความปลอดภัยทางถนน Road Safety Information.
บทที่ 6 การใช้คำสั่ง อ. สุรินทร์ทิพ ศักดิ์ภูวดล สำนักวิชาเทคโนโลยีสารสนเทศและ การสื่อสาร.
การจัดเก็บข้อมูลในแฟ้มข้อมูลธรรมดา นั้น อาจจำเป็นที่ใช้แต่ละคน จะต้องมีแฟ้มข้อมูลของตนไว้เป็นส่วนตัว จึง อาจเป็นเหตุให้มีการเก็บข้อมูล ชนิดเดียวกันไว้หลาย.
การสร้างฐานข้อมูลใหม่ หมายถึง การสร้างแฟ้มข้อมูลใหม่บน Access สามารถกำหนด ได้ดังต่อไปนี้ ภาพแสดงการสร้างฐานข้อมูลใหม่
MTH 261 File Management. File Management File Management จะอธิบายเกี่ยวกับการเขียน ส่วนจัดการแฟ้มข้อมูล เราสามารถที่จะเขียน โปรแกรมเพื่อเรียกใช้แฟ้มข้อมูลที่เรามี
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
การออกแบบโครงสร้างข้อมูล การออกแบบโครงสร้างข้อมูล หมายถึง กรณีสร้างตารางใหม่ด้วย ออกแบบตาราง (Table Design) เพื่อต้องการกำหนด โครงสร้างด้วยตนเอง โดยมีขั้นตอนการ.
คำสั่งควบคุมการทำงาน
ประชุมเชิงปฏิบัติการพัฒนาชุดคำสั่งประมวลผลข้อมูล
Database Design & Development
ภาษา SQL (Structured Query Language)
SQL Structured Query Language.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Intro MySQL MySQL (อ่านว่า “มาย-เอส-คิว-แอล”) เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS: Relational Database Management System) ตัวหนึ่งที่นิยมกันมากในปัจจุบัน.
การติดต่อฐานข้อมูลและการแสดงผล
Integrity Constraints
Introduction to VB2010 EXPRESS
หน่วยการเรียนที่ 6 เรื่อง การจัดการฐานข้อมูลด้วย PHP Function
Toward National Health Information System
C# Part 0: Introduction to Revision Control
Introduction SQLite Prawit Pimpisan Computer Science RERU.
บทที่ 3 การพัฒนาโปรแกรมโดยเขียนคำสั่ง VBA
Training Admin Docushare
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
การติดต่อฐานข้อมูลและการแสดงผล
การจัดการระบบฐานข้อมูล ภาษาที่ใช้ในระบบจัดการฐานข้อมูล
การพัฒนาการใช้งานในระบบเว็บ
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
การติดต่อฐานข้อมูลและการแสดงผล
ภาษามาตรฐานสำหรับนิยามข้อมูล และการใช้ข้อมูล
คำสั่ง Create , Insert, Delete, Update
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
บทที่ 9 การใช้โปรแกรมสำเร็จรูป ในการสร้างโลกเสมือนเพื่อการเรียนรู้ “Opensimulator” อาจารย์เทพยพงษ์ เศษคึมบง สาขาวิชาเทคโนโลยีและนวัตกรรมการศึกษา.
โครงการจัดทำระบบจัดเก็บข้อมูลการใช้งาน และประเมินคุณภาพอุปกรณ์ไฟฟ้า
หน่วยการเรียนที่ 7 เรื่อง การจัดการฐานข้อมูลด้วย Dreamweaver
การออกแบบแบบสอบถาม การออกแบบแบบสอบถาม
คำสั่งสร้างฐานข้อมูล
ฐานข้อมูลเชิงสัมพันธ์
บทที่ 8 การใช้โปรแกรมสำเร็จรูป ในการสร้างระบบการสอนบนเครือข่าย “Moodle” อาจารย์เทพยพงษ์ เศษคึมบง สาขาวิชาเทคโนโลยีและนวัตกรรมการศึกษา pws.npru.ac.th/thepphayaphong.
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
ระบบการส่งต่อข้อมูลอาการไม่พึงประสงค์จากการแพ้ยา
ใบสำเนางานนำเสนอ:

MySQL

Content Overview of MySQL’s Authentication Privilege system & user type MySQL structure การ backup และการ restore ฐานข้อมูล Trigger View Stored procedure Transaction

MySQL system Database Authentication request View Table Stored procedure

MySQL’s authentication Using username and password 2 levels of user System Administrator /DBA User

root มีสิทธิ์ทั้งในการจัดการ Database และ account Information: ในการติดตั้งโปรแกรม MySQL แต่ละครั้งจะมี account ที่เป็น DBA ถูกสร้างโดยอัตโนมัติจำนวน 1 account ซึ่งมี user name เป็น “root” ส่วน password ก็ขึ้นอยู่กับว่าผู้ติดตั้งโปรแกรมจะกำหนด root มีสิทธิ์ทั้งในการจัดการ Database และ account

MySQL’s privilege system 4 levels of privilege Global : ไม่มีเรื่องไหนทำไม่ได้ Database : ทำได้ทุกเรื่องแต่เฉพาะกับฐานข้อมูลที่กำหนด Table : ทำได้ทุกเรื่องแต่เฉพาะกับตารางข้อมูลที่กำหนด Field : ทำได้ทุกเรื่องแต่เฉพาะกับฐานฟิลด์ที่กำหนด

Relation of privilege and user level Global Database Table Field SA/DBA User

Information: ในครั้งแรกที่มีการสร้างฐานข้อมูลใหม่ ควรต้องมีการสร้าง account ใหม่สำหรับใช้จัดการฐานข้อมูลนั้นๆ ด้วย เพื่อที่ในครั้งต่อๆ ไปจะได้ใช้สิทธิ์ของ account นั้นในการจัดการฐานข้อมูลนั้น ซึ่งจะทำให้เกิดความปลอดภัยมากกว่าใช้ root โดยเฉพาะอย่างยิ่งการใช้งาน MySQL ร่วมกับ Web Application เพราะ account ที่ใช้จะต้องไปปรากฏใน code โปรแกรม ซึ่งหาก code ดังกล่าวรั่วไหลอาจทำให้ผู่ประสงค์ร้ายใช้สิทธ์ root เข้ามาทำลายฐานข้อมูลใน server ของเราได้

การสร้าง account ใหม่

การสร้าง account ใหม่

การสร้าง account ใหม่

การสร้าง account ใหม่

การสร้าง account ใหม่

การสร้าง account ใหม่

Structure

MySQL Structure

การสร้าง database

การสร้าง database

ผลลัพธ์ CREATE DATABASE `newdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

การสร้าง table

การกำหนดโครงสร้างให้กับ table

ผลลัพธ์

การกำหนดชนิดของ table

InnoDB : หากต้องการใช้ transaction ARCHIVE MRG_MYISAM ชนิดของ table MyISAM MEMORY InnoDB : หากต้องการใช้ transaction ARCHIVE MRG_MYISAM

การกำหนดชนิดของ table

Multiple language supporting Mysql support many character set. Latin Ascii: window874 ISO : tis620 UTF8

Multiple language supporting เราต้องเลือกใช้ character set ให้เหมาะสมกับข้อมูลที่จะจัดเก็บลง สำหรับการจัดเก็บข้อมูลที่เป็นภาษาไทย ภาษาอังกฤษ สามารถใช้ character set ที่ชื่อ tis620_thai_ci หรือ Utf8_unicode_ci

Multiple language supporting การกำหนด character set นั้นให้กระทำในขั้นตอนของการสร้าง database และ table เลย

การสร้าง trigger การลบ trigger

เหตุการณ์ที่เกิดกับข้อมูลได้แก่ Insert Update Delete What is Trigger? โปรแกรมที่ติดตั้งอยู่ที่ table ใดๆ จะทำงานเมื่อมีเหตุการณ์เกิดขึ้นกับข้อมูลใน table เหตุการณ์ที่เกิดกับข้อมูลได้แก่ Insert Update Delete ในแต่ละเหตุการณ์สามารถเลือกได้ว่าจะให้โปรแกรมทำงาน ก่อน หรือ หลัง เหตุการณ์

เมื่อมีการ insert การเข้าถึง recordใหม่จะใช้ keyword “NEW” เพื่อเข้าถึง record ใหม่นั้น เมื่อมีการ delete การเข้าถึง record ที่จะถูกลบจะใช้ keyword “OLD” เพื่อเข้าถึง record นั้น เมื่อมีการ update การเข้าถึง record ใหม่จะใช้ keyword “NEW” และใช้ “OLD” เพื่อเข้าถึง record เก่า ใน trigger สามารถสร้างตัวแปรได้ โดยใช้ “@” นำหน้าชื่อตัวแปร

Syntax for create Trigger ..1 CREATE TRIGGER <trigger name> { BEFORE | AFTER } { INSERT | UPDATE | DELETE } ON <table name> FOR EACH ROW <triggered SQL statement> ;

Syntax for create Trigger ..2 CREATE TRIGGER <trigger name> { BEFORE | AFTER } { INSERT | UPDATE | DELETE } ON <table name> FOR EACH ROW BEGIN <triggered SQL statement (s)> END;

ตัวอย่าง 1 CREATE TRIGGER trg1 BEFORE UPDATE ON table1 FOR EACH ROW BEGIN SET @old = OLD . s1; SET @new = NEW.s1; END; การสร้าง trigger เพื่อทำงานในเหตุการณ์ก่อน(BEFORE)ที่จะมีการ update(UPDATE) record ในตาราง table1 โดยก่อนที่จะมีการ update แต่ละ record จะมีการสร้างตัวแปรชื่อ old เพื่อเก็บข้อมูลเดิมใน field ชื่อ s1 และตัวแปร new เก็บข้อมูลใหม่ใน field ชื่อ s1

ตัวอย่าง 2 : มี trigger > 1 ใน 1 ตาราง CREATE TRIGGER trg3 BEFORE INSERT ON table2 FOR EACH ROW IF LEFT(NEW.s2,1)<>'A' THEN SET NEW.s1=0; END IF; CREATE TRIGGER trg4 BEFORE UPDATE ON table2 IF LEFT(NEW.s2,1)<>'A' THEN SET NEW.s1=0; END IF;//

ตัวอย่าง 3 : การสร้างตัวแปรและใช้งานตัวแปร ตัวอย่าง 3 : การสร้างตัวแปรและใช้งานตัวแปร CREATE TRIGGER ins_sum BEFORE INSERT ON account FOR EACH ROW SET @sum = @sum + NEW.amount ; trigger ชื่อ ins_sum จะทำหน้าที่ในการสร้างตัวแปรชื่อ sum เพื่อเก็บข้อมูลผลรวมจาก field ชื่อ amount ของทุกๆ record ที่กำลังจะ insert แต่ไม่ใช่ตัวแปรที่อยู่ถาวร

ตัวอย่างการใช้ประโยชน์จากตัวแปรใน trigger CREATE TABLE account (acct_num INT, amount DECIMAL(10,2)); CREATE TRIGGER ins_sum BEFORE INSERT ON account FOR EACH ROW SET @sum = @sum + NEW.amount ; set @sum=0; INSERT INTO account VALUES(2,1),(3,1),(4,1); select @sum ; ผลลัพธ์ที่ได้จะเป็นผลรวมของข้อมูลที่กำลังจะ insert เท่านั้น

การลบ trigger (การ drop) DROP TRIGGER ชื่อtrigger; เช่น drop trigger ins_sum;

อะไรอยู่ใน triggered SQL statement เปลี่ยนแปลงข้อมูล (SET ….) IF Sql command เพื่อจัดการข้อมูล ในตารางอื่น คำสั่งในการเรียกใช้ function ที่ MySQL รู้จัก

set NEW.ename = upper(NEW.ename); create trigger a before insert on title for each row set NEW.ename = upper(NEW.ename); การเปลี่ยนข้อความภาษาอังกฤษให้เป็นตัวพิมพ์ใหญ่ก่อนที่จะจัดเก็บลงตาราง

mysql> delimiter // mysql> CREATE TRIGGER upd_check BEFORE UPDATE ON account -> FOR EACH ROW -> BEGIN -> IF NEW.amount < 0 THEN -> SET NEW.amount = 0; -> ELSEIF NEW.amount > 100 THEN -> SET NEW.amount = 100; -> END IF; -> END;// mysql> delimiter ;

CREATE TRIGGER member_after_update AFTER UPDATE ON member FOR EACH ROW BEGIN INSERT INTO member_audit_trail SET action='update', id=OLD.id, old_name=OLD.name, name=NEW.name, changed=NOW(); END;//

Create view syntax Edit view syntax Drop view syntax

ลดภาระการ join หลายๆ ตารางในคำสั่งของ Application What is VIEW? ตารางข้อมูลที่ไม่มีอยู่จริง แต่เป็นตารางข้อมูลที่เกิดขึ้นจากการรวมข้อมูลจากหลายๆ ตารางมาไว้ในตารางเดียว ใช้ประโยชน์เพื่อ ลดภาระการ join หลายๆ ตารางในคำสั่งของ Application สร้างข้อมูลที่มนุษย์อ่านแล้วเข้าใจมากขึ้น (เพราะการ normalization ทำให้ข้อมูลในตารางหลักจะมีแต่รหัสข้อมูล ข้อมูลที่เป็นคำบรรยายจะถูกแยกตาราง)

ตัวอย่างการสร้าง VIEW student title major

ตัวอย่างการสร้าง VIEW ที่ student จะทราบว่ามีนิสิตชื่อ สกุล อะไรบ้างแต่ title และ major ยังไม่ทราบว่าเป็นอะไร เพราะถูกเข้ารหัสอยู่ ดังนั้นหากต้องการทราบต้องเปิดตารางtitle และ major ดู ที่ละตาราง หรือใช้คำสั่ง join ทั้ง 3 ตารางเข้าด้วยกัน

คำสั่ง SQL ในการ join ทั้ง 3 ตารางเข้าด้วยกัน SELECT s.id, t.tname AS title, s.tname AS name, s.tsurname AS surname, m.tname AS major FROM student AS s LEFT JOIN ( major AS m, title AS t) ON ( s.major_id = m.id AND s.title_id = t.id ) ;

Syntax ในการสร้าง VIEW CREATE VIEW ชื่อที่ต้องการ AS select-statement ; Create view std as SELECT s.id, t.tname AS title, s.tname AS name, s.tsurname AS surname, m.tname AS major FROM student AS s LEFT JOIN ( major AS m, title AS t) ON ( s.major_id = m.id AND s.title_id = t.id ) ;

เรียกดูข้อมูลใน view Select * from std;

Syntax ในการแก้ไข view ..1 ALTER VIEW ชื่อที่ต้องการแก้ไข AS select-statement ใหม่ ; alter view std as SELECT s.id, t.tname AS title, s.tname AS name, s.tsurname AS surname, m.tname AS major FROM student AS s, major AS m, title AS t WHERE s.major_id = m.id AND s.title_id = t.id ;

Syntax ในการแก้ไข view ..2 CREATE OR REPLACE VIEW ชื่อที่ต้องการแก้ไข AS select-statement ใหม่ ; Create or replace view std as SELECT * FROM student ; หากไม่มี view ชื่อ std มาก่อน จะถือว่าเป็นการสร้างใหม่ แต่ถ้ามี std แล้วจะถือว่า เป็นการแก้ไขของเดิม

การลบ view Drop view ชื่อview

:โปรแกรมที่ทำงานในตัวฐานข้อมูล :ไม่สามารถทำใน phpmyadmin ได้ Stored procedure :โปรแกรมที่ทำงานในตัวฐานข้อมูล :ไม่สามารถทำใน phpmyadmin ได้

การสร้าง การลบ การแสดงสถานะ การแสดงรายละเอียด การใช้งาน (การ call) Content การสร้าง การลบ การแสดงสถานะ การแสดงรายละเอียด การใช้งาน (การ call)

ตัวอย่างการสร้าง stored procedure CREATE PROCEDURE b () BEGIN update title set ename='123' where id =4; END;

CREATE DEFINER=`root`@`localhost` PROCEDURE `a` (in sid varchar(10) , in stn varchar(100), in sts varchar(100), in sen varchar(100),in ses varchar(100), in sti smallint, in smi smallint, in st varchar(100),in sm varchar(100) ) Begin Declare lasttitleid smallint default 0; Declare lastmajorid smallint default 0; if sti = -1 then insert into title(tname) values(st); set lasttitleid =last_insert_id(); else set lasttitleid = sti; end if; if smi = -1 then insert into major(tname) values(sm); set lastmajorid =last_insert_id(); set lastmajorid = smi; insert into student(id,tname,tsurname,ename,esurname,title_id,major_id) values(sid,stn,sts,sen,ses,lasttitleid,lastmajorid); end;

การลบ drop procedure ชื่อprocedure; การแสดงprocedure ที่มีในฐานข้อมูล show procedure status; การแสดงรายละเอียด show create procedure ชื่อprocedure; การใช้งาน (การ call) call ชื่อprocedure(….);

2 means of backup 2 means of restore Backup & Restore 2 means of backup 2 means of restore

How to backup database การทำสำเนาไฟล์ การ export ข้อมูล

ไปที่ folder ชื่อ mysql\data มองหา folder ที่มีชื่อเดียวกับฐานข้อมูล How to backup database การทำสำเนาไฟล์ stop service ของ MySQL ไปที่ folder ชื่อ mysql\data มองหา folder ที่มีชื่อเดียวกับฐานข้อมูล สำเนา folder ดังกล่าวไว้

How to backup database การ export ข้อมูล