iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 7
1

本來標題要寫,藏鏡人: SQL 資料庫,怕透露出年紀,
但後來還是覺得藏鏡人很適合,因為武功高強,但又神秘。
接下來讓我們來透過實作,更進一步了解 SQL 這位武林高手吧!

SQL 資料庫與資料表

  • 下面程式碼為建立test資料庫與class、profiles資料表
/*
多        轟    驚
行        動    動   
註        武    萬
解        林    教
*/
/*
SQLyog Community Edition- MySQL GUI v6.05
Host - 5.0.45-community-nt-log : Database - sql
*********************************************************************
Server version : 5.0.45-community-nt-log
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

create database if not exists `test`;

USE `test`;

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

/*Table structure for table `class` */

DROP TABLE IF EXISTS `class`;

CREATE TABLE `class` (
  `ID` int(11) NOT NULL auto_increment,
  `Name_ID` tinyint(4) NOT NULL default '0',
  `Hour` tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

/*Data for the table `class` */

insert  into `class`(`ID`,`Name_ID`,`Hour`) values (1,1,1),(2,3,5),(3,5,2),(4,7,2),(5,9,7),(6,11,23),(7,13,10),(8,15,6);

/*Table structure for table `profiles` */

DROP TABLE IF EXISTS `profiles`;

CREATE TABLE `profiles` (
  `ID` int(11) NOT NULL auto_increment,
  `Name` varchar(3) default NULL,
  `Old` tinyint(3) default NULL,
  `Addr` varchar(3) default NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=51 DEFAULT CHARSET=utf8;

/*Data for the table `profiles` */

insert  into `profiles`(`ID`,`Name`,`Old`,`Addr`) values (1,'吳宗吟',17,'台北縣'),(2,'鄧文昇',13,'台北市'),(3,'劉美念',24,'桃園市'),(4,'袁忠湖',18,'台中市'),(5,'唐竣英',22,'高雄市'),(6,'李佩芳',18,'桃園縣'),(7,'許廷琇',34,'台北市'),(8,'劉維潔',15,'台中縣'),(9,'黃政翰',16,'台北縣'),(10,'林家豪',34,'新竹市'),(11,'王馨儀',32,'高雄市'),(12,'黃俊菁',27,'桃園縣'),(13,'羅景翔',22,'桃園市'),(14,'蔡嘉元',29,'台北市'),(15,'路文豪',20,'桃園縣'),(16,'駱淳南',19,'台中市'),(17,'賴美娟',31,'高雄市'),(18,'王士賢',21,'台中縣'),(19,'林姿玫',34,'台北縣'),(20,'劉佩琪',20,'台北市'),(21,'羅長蘭',19,'新竹市'),(22,'王貴維',30,'澎湖縣'),(23,'梁淑惠',17,'嘉義縣'),(24,'林家達',19,'台中縣'),(25,'方士嘉',23,'台北市'),(26,'林威聖',24,'高雄市'),(27,'許嘉安',24,'苗栗市'),(28,'陳韻博',18,'台北縣'),(29,'張啟士',13,'台北縣'),(30,'陳宥希',17,'高雄市'),(31,'侯怡婷',24,'新竹市'),(32,'蕭惠敏',22,'雲林縣'),(33,'鄭原和',23,'南投縣'),(34,'袁宛君',24,'宜蘭縣'),(35,'許俊傑',20,'台北縣'),(36,'李孟麟',24,'桃園縣'),(37,'朱左漢',17,'彰化市'),(38,'陳泓倫',18,'新竹市'),(39,'趙琦龍',24,'高雄市'),(40,'蔡書偉',27,'桃園縣'),(41,'李小志',22,'台北縣'),(42,'朱淑潔',19,'新竹市'),(43,'林雅雯',22,'台北縣'),(44,'吳宜珊',26,'高雄市'),(45,'吳勝玉',17,'桃園縣'),(46,'夏郁婷',24,'台北縣'),(47,'楊千一',20,'台中縣'),(48,'劉彥廷',17,'台中市'),(49,'陳宛孝',31,'高雄市'),(50,'吳任菁',22,'台北市');

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

要怎樣建立 SQL 資料庫呢?

課金後開啟轉蛋系統,點擊招喚神兵天將,必中五星藏鏡人!

  • 提供兩種方法
    1. 將上面程式碼複製存成test.sql,然後在phpMyAdmin中匯入,然後執行
    2. 將上面程式碼直接複製,貼在phpMyAdmin中SQL標籤執行

SQL 第一個指令 啥咪武功這麼厲害!

《葵花寶典》的第一頁註明「欲練神功,引刀自宮。」

  • 實作危險指令: DROP
  1. 瀏覽器進入phpMyAdmin 點左上房子,回到首頁
    http://localhost/phpmyadmin/index.php
  2. 在SQL標籤中,輸入下方程式碼,然後執行,就會刪掉整個test資料庫了
DROP DATABASE `test`
  1. 再依前段所說的方法,重建資料庫吧!
  • 這邊插播一下關於資料庫最常見的攻擊手法SQL注入,關鍵就是DROP

何謂 SQL 注入?/images/emoticon/emoticon77.gif

SQL注入是一種非常常見的資料庫攻擊手段,SQL注入漏洞也是網絡世界中最普遍的漏洞之一。大家也許都聽過某某學長通過攻擊學校資料庫修改自己成績的事情,這些學長們一般用的就是SQL注入方法。

SQL注入其實就是惡意用戶通過在表單中填寫包含SQL關鍵字(比如說SELECT、DROP等等)的數據來使資料庫執行非常規程式碼的過程。
by 不會SQL注入,連漫畫都看不懂了

總結:

今日初步認識了SQL這位藏鏡人,並且實作建立新資料庫,使用葵花寶典DROP刪除資料庫。
明天將一窺SQL的CRUD獨門功夫,用新建立的test資料庫,玩轉裡面的資料表,欲知後事如何,且待下回分解。


上一篇
Day06 PHP 華爾滋 POST GET REQUEST
下一篇
Day08 SQL 的 CRUD = 藏鏡人的愛恨情仇
系列文
30天翻玩動態網站-會員需驗證才能看到部落格文章 30

尚未有邦友留言

立即登入留言