資料庫系統 Database System Week3

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

作業一 : USING DBMS ( 使用 DB2 及 SQL 基本練習 ) 報告人:學生楊群期 學號: 課程 : 高等資料庫 講師 : 楊維邦教授.
2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
PHP 训练营 - MySQL OA 产品部 李鑫辉 2011 年 9 月. 内容提要 & 目录 1. 介绍 (10 分钟 ) 1.1. 简介 1.2. 特点 1.3. 安装 2. 语法 (60 分钟 ) 2.1. 存储引擎 MyISAM InnoDB 特点与区别.
SQL 入门 SQL:Structured query language 北京传智播客教育.
第八单元 数据库MySQL应用基础 MySQL数据库应用基础 MySQ数据库操作使用 Mysql管理工具 第25章 数据库的增加/删除操作
第5章 关系数据库标准语言SQL 主讲:张丽芳.
十一 ASP对数据库的访问.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
資料庫 (Database) SQL Server 2008實作
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
数据库原理及设计 --作业.
第 八 章 資料庫安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
创建数据库 MySql创建数据库的语法: CREATE DATABASE 数据库名; 例: CREATE DATABASE mydb;
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
计算机应用基础 上海大学计算中心.
資料庫管理 資管二 賴柏融.
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
第7章 建立資料表與完整性限制條件 7-1 資料型別 7-2 資料表的建立 7-3 建立完整性限制條件 7-4 修改與刪除資料表
第六章 學習SQL語言.
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
第 8 章 資料的 新增、修改與刪除.
課程名稱:資料庫系統 授課老師:李春雄 博士
PHP與MySQL 入門學習指南 凱文瑞克 著 第 23 章 資料型別.
第十一章 資料庫設計與權限設定.
第4章 SQL语言基础及数据库定义 4.1 基本概念 4.2 SQL Server 提供的主要数据类型 4.3 数据定义.
Chap 10 SQL定義、操作與控制指令.
胡鹏 王慧锋 TEL: 数据库系统原理课程设计 实验环节1 胡鹏 王慧锋 TEL:
高等資料庫管理系統 Advanced Database Management System
第 7 章 建立資料表與 資料庫圖表.
資料庫安全 (Database Security)
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
SQL Server 2000 数据库入门.
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
第7章 ADO.NET操作SQL Server数据库
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
建立/修改/刪除資料表 建立資料表 使用Enterprise Manager工具
MySQL数据库基础与实例教程 之 MySQL表结构的管理 郭水泉.
第三章作业讲评 文洁 2012/4/10.
SQL SERVER 一些经典语句 1.
第3章 关系数据库标准语言SQL.
App Inventor2呼叫PHP存取MySQL
第十二章 SQL語言簡介 講授大綱: 新增資料庫 新增資料表 新增資料 修改資料 刪除資料 查詢資料 透視ASP.NET-第12章
Ch4.SQL Server 2005資料庫組成員元件介紹
实验二讲评 … 张榆….
第 10 章 数据库编程.
第20章 MySQL数据库.
数据库技术与应用.
学习目标 1、介绍Mysql Workbench 中插入数据
MySQL开发规范 DB组-张浩.
第11章 ListView延迟加载效果 授课老师:高成珍 QQ号: QQ群: 、
認識資料庫 MySQL 資料庫新增 MySQL 資料表新增 認識欄位資料表 資料新增、刪除、修改、瀏灠 資料表清空與刪除
第3章 关系数据库的创建与维护 Microsoft SQL Server2008 概述 SQL Server数据库基础 数据库的创建与维护
認識資料庫 MySQL 資料庫新增 MySQL 資料表新增 認識欄位資料表 資料新增、刪除、修改、瀏灠 資料表清空與刪除
4.2 视图 (1) 视图是一个虚拟表,其内容来自对表查询的基础上。
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
SQL查询语句 蔡海洋.
用int类型(4字节)去存具体时间(8字节).
第三章 SQL Server数据管理.
第六類 資料庫備份與回復.
讲课人:王璞 浙江工商职业技术学院.
第 7 章 建立資料表與資料庫圖表.
SQL語法教學 2015/10/15 John.
資料庫系統_答案 Database System Week3
資料庫應用與實作 一到六章重點、習題.
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
第4章 数据查询.
Presentation transcript:

資料庫系統 Database System Week3

本周大綱 第一節 SELECT補充(NOT、IS、時間處理、字串處理) CREATE Table / Database INSERT、UPDATE、DELEATE 第二節 前言 在程式中連接資料庫(C#、PHP、JAVA、Android) 第三節 考試流程及相關規定 模擬考 題目講解

補充-1 NOT運算符 不只可以用在IN 也可以用在其他運算上 IS 運算符 IS NULL 、 IS True 、 IS False SELECT Name,Phone FROM databasesystem1061.student WHERE Phone IS NULL;

補充-2 字串處理 脫逸字元 萬用字元 %、_ 如果要比對有沒有%或_的字元,則要再加上\ SELECT * FROM databasesystem1061.student WHERE phone like "%8%8%"; SELECT * FROM databasesystem1061.student WHERE phone like "%8_8%";

補充-3 字串處理 binary 強制大小寫比較 UCASE( ) / LOWER( ) 小寫轉大寫 / 大寫轉小寫 小寫轉大寫 / 大寫轉小寫 SELECT StudentNum FROM databasesystem1061.student WHERE StudentNum like "%m%"; SELECT StudentNum FROM databasesystem1061.student WHERE StudentNum like binary "%m%"; SELECT LOWER( StudentNum) from databasesystem1061.student;

補充-3 字串處理 處理函數 LENGTH( ) 取得字串長度 CONCAT( ) 字串連接 TRIM( )、 RTRIM( )、 LTRIM( ) 移除掉一個字串中字頭字尾的空白 SUBSTRING( ) 切割字串 REPLACE( ) 取代字串

補充-3 字串處理 LENGTH( ) SELECT LENGTH(phone) FROM databasesystem1061.student; CONCAT( ) SELECT CONCAT(Name,Phone,Gender) AS 'all' FROM databasesystem1061.student ; SUBSTRING( ) SELECT SUBSTRING(phone,3,10) FROM databasesystem1061.student; REPLACE() SELECT replace(phone,‘09’,‘+8869’) FROM databasesystem1061.teacher; 會有問題

補充-3 字串處理 TRIM([ {BOTH | LEADING | TRAILING} [String] FROM ] String) 可以選擇同時、去除開頭、去除結尾的特定字串 SELECT TRIM(LEADING '09' FROM phone) from databasesystem1061.student; RTRIM( ) SELECT RTRIM(' HELLO ') ; LTRIM( ) SELECT LENGTH(LTRIM(' HELLO ') ); SELECT LENGTH(' HELLO ‘);

補充-3 字串處理 避免明文儲存密碼 在SQL中使用雜湊函數MD5(原本密碼)

補充-4 時間處理 DAYOFWEEK( ) 當天為星期幾 1等於星期日 TIMEDIFF( ) 時間差異 DATEDIFF( ) 天數差異 NOW( ) 服務器當前日期時間 CURTIME( ) 服務器當前時間 CURDATE( ) 服務器當前日期 ADDDATE( ) / ADDTIME( ) 回傳增加後的時間 SUBDATE( ) / SUBTIME( ) 回傳減少後的時間

補充-4 時間處理 NOW( ) SELECT NOW() ; CURTIME( ) SELECT CURTIME() ; CURDATE( ) SELECT CURDATE() ; DAYOFWEEK( ) SELECT DAYOFWEEK(student.Birthday) from databasesystem1061.student; TIMEDIFF( ) SELECT TIMEDIFF(NOW(),NOW() - interval 2 minute) ; DATEDIFF( ) SELECT DATEDIFF(NOW(),birthday) from student ;

補充-4 時間處理 ADDDATE( ) / ADDTIME( ) SELECT adddate(student.Birthday,interval 30 minute ) from databasesystem1061.student; SELECT addtime(student.Birthday, '00:30:00') from databasesystem1061.student; SUBDATE( ) / SUBTIME( ) SELECT subdate(student.Birthday,interval 30 minute ) from databasesystem1061.student; SELECT subtime(student.Birthday, '00:30:00') from databasesystem1061.student;

Create Database create database 資料庫名字; create database school; Server

在Create table 之前 常用資料格式: 數字 字串 N:支援UNICODE VAR:可變長度 CHAR NCHAR VARCHAR INT FLOAT DOUBLE 字串 N:支援UNICODE VAR:可變長度 CHAR NCHAR VARCHAR NVARCHAR

在Create table 之前 常用資料格式 時間 布林 Mysql沒有布林專用的欄位,所以通常會使用TINYINT格式(0~255) TIME DATE DATETIME 布林 Mysql沒有布林專用的欄位,所以通常會使用TINYINT格式(0~255)

在Create table 之前 常用資料表欄位選項 PRIMARY KEY NOT NULL Unique UNSIGNED DEFAULT AUTO INCREMENT

Create table CREATE TABLE 表格名 ( 欄位名1 INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 欄位名2 VARCHAR(30) NOT NULL, 欄位名3 VARCHAR(30) NOT NULL DEFAULT '預設值', 欄位名4 VARCHAR(50), 欄位名5 DATETIME FOREIGN KEY (欄位名2) REFERENCES 表格2(該欄位名) )

INSERT、UPDATE、DELEATE INSERT INTO 表格名 (欄位1, 欄位2, 欄位3, ...) VALUES (資料1, 資料2, 資料3, ...); INSERT INTO 表格名 VALUES (欄位1, 欄位2, 欄位3, ...); UPDATE UPDATE 表格名 SET 欄位1  = 資料1, 欄位2 = 資料2, ... WHERE 條件; DELEATE DELETE FROM 表格名 WHERE 條件; DELETE FROM 表格名; DELETE * FROM 表格名;

練習 列出所有手機不是NULL的學生的手機與姓名 查詢學生的手機及姓名,但是將手機前面的0以+886取代(請排除NULL的學生) (使用Relpace有問題,試試其他函數) 列出所有在星期六出生的學生 將學生的身分證字號以MD5雜湊函數顯示出來 計算出學生的生日跟現在的時間平均差距幾天

練習 第一題(部分顯示) 第二題(部分顯示) 第三題 第四題(部分顯示) 第五題

練習 自行練習 為自己小組做出來的Relation中的每一個欄位規劃Data Type 嘗試看看把自己小組的資料庫/表建出來

第二節 程式中連接SQL Server

前言 資料庫隱碼攻擊(SQL injection) strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');" userName = "1' OR '1'='1"; passWord = "1' OR '1'='1"; strSQL = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'='1');" strSQL = "SELECT * FROM users;"

C#中連接服務器

PHP中連接服務器

JAVA中連接服務器

Android中連接服務器 由於Anndroid APP由於容易拆解的原因,因此將連接Server的連接資訊就極度不宜放在app中, 因此目前大多數使用的方法都是利用post網頁的方式將需要的資訊傳給網頁,網頁進行查詢後,再將 所查詢的資料回傳給APP。

Android中連接服務器 PHP 向 Server 查詢 APP以POST呼叫控制器 呼叫控制器 使用服務 服務回傳 控制器回傳 POST to PHP PHP 向 Server 查詢 Server回傳PHP PHP回傳給程式

第三節 考試相關

考試 考試時一題最多12分鐘,總共五題,一題滿分20分 3分鐘內答題 20 分 5分鐘內答題 17 分 3分鐘內答題 20 分 5分鐘內答題 17 分 7分鐘內答題 14 分 9分鐘內答題 12 分 12分鐘內答題 10 分 超過12分鐘0分計 考試當天有監考,答題後舉手,負責學長姐會去確認答案正 確與否