Microsoft PowerPoint - MIS_Lec02.ppt [相容模式]

Similar documents
Microsoft PowerPoint - MIS_Lec03.ppt [相容模式]

untitled

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

教 学 目 标 描 述 主 要 数 据 库 对 象 创 建 表 描 述 列 定 义 时 可 用 的 数 据 类 型 改 变 表 的 定 义 删 除 改 名 和 截 断 表 描 述 每 个 DML 语 句 插 入 行 到 表 中 更 新 表 中 的 行 从 表 中 删 除 行 描 述 约 束 创 建

untitled

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

使用SQL Developer

untitled

Function of SQL

数 据 库 系 统 基 础 2/54 第 6 章 数 据 库 管 理 与 维 护

目錄 C ontents Chapter MTA Chapter Chapter

投影片 1

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

Microsoft Word - AED190_CH06

untitled

Microsoft PowerPoint - MIS_Lec04.ppt [相容模式]

单元四数据的查询 数据库原理与应用 教学设计 数据库原理与应用 教学设计 课题名称 综合案例 数据的查询一 授课班级 移动通信 课时 2 学时 授课地点 实训室 知识目标能力目标素质目标 1. 掌握查询所有数据的方 1. 能够熟练地查询表中的 1. 培养学生的吃苦耐劳 法 ; 所有数据 ; 克服困难

untitled

Oracle9i 的查询优化

1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2

习题1

目錄

untitled

PowerPoint Presentation

目 录 1 新 闻 政 策 追 踪 住 建 部 : 坚 持 因 城 施 策 完 善 房 地 产 宏 观 调 控 行 业 数 据 追 踪 限 购 政 策 落 地, 新 房 成 交 回 落 库 存 微 降, 一 线 去 化 表 现 稍

2-2

2 图 1 新 民 科 技 2010 年 主 营 业 务 收 入 结 构 图 2 新 民 科 技 2010 年 主 营 业 务 毛 利 结 构 印 染 加 工 10.8% 其 他 4.8% 丝 织 品 17.2% 印 染 加 工 7.8% 其 他 4.4% 丝 织 品 19.1% 涤 纶 长 丝 6

未命名

untitled

投资高企 把握3G投资主题

会 宗旨 理解 Oracle 12c 如何支持 JSON 在数据 中存 JSON 数据 熟悉 JSON 的条件和功能 使用 JSON 条件和功能 JSON 数据 在 JSON_TABLE 上使用 SQL JSON 数据 2

PowerPoint Presentation

季刊9web.indd

ebook46-23

Microsoft PowerPoint - Ch6

sql> startup mount 改变数据库的归档模式 sql> alter database archivelog # 打开数据库 sql> alter database open 禁止归档模式 sql> shutdown immediate sql>startup mount sql> al

此處提出閱讀本書的注意事項及相關前提, 請務必在閱讀正文前先看過 本書的目標讀者是利用 Oracle Database( 後稱 Oracle) 的程式開發人員和資料庫管理人員 因此, 雖然本書已盡可能詳加解說 SQL 使用方法及實作時需要注意的要點, 但是讀者仍須具備基本的電腦知識及 Oracle

untitled

动态字段介绍及使用

MySQL資料庫教學

産 産 産 産 産 爲 爲 爲 爲

宏碩-觀光指南coverX.ai

回滚段探究

SQL 书写规范

第四章 SQL 介紹

123

文章题目

宏观与策略研究

Microsoft Word - 序+目錄.doc

ASP.NET 2.0網頁設計範例教本

1.linesize 说 明 : 设 置 显 示 行 的 宽 度, 默 认 是 80 个 字 符 show linesize set linesize 90 2.pagesize 说 明 : 设 置 每 页 显 示 的 行 数 目, 默 认 是 14 用 法 和 linesize 一 样 至 于 其


1. 发 行 情 况 格 力 地 产 于 2014 年 12 月 25 日 发 行 9.8 亿 元 可 转 债 其 中, 原 股 东 优 先 配 售 亿 元 ( 万 手 ), 占 本 次 发 行 总 量 的 21.66% 网 上 向 一 般 社 会 公 众 投 资 者 发

Microsoft Word - 第四章 資料分析

Using JSON in Oracle 12c

信息管理部2003

三. 发现表被删除, 开始着手解决 1. 该表所在表空间离线 ( 确保删除表所在位置不会被重写 ) SQL> alter tablespace raw_odu offline; Tablespace altered. 2. 通过 logmnr, 找出被删除的数据 data _object _id 1

Business Objects 5.1 Windows BusinessObjects 1

PowerPoint 簡報

基金池周报

ASP.NET 2.0網頁設計範例教本

Oracle高级复制冲突解决机制的研究

PowerPoint 簡報

第1套

<4D F736F F D2047CEF7B7C920B9ABCBBED1D0BEBFB1A8B8E62E646F63>

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

设计一个学生管理关系数据库,包括学生关系、课程关系和选课关系

(Microsoft PowerPoint [L So] \272C\251\312\252\375\266\353\251\312\252\315\257f [\254\333\256e\274\322\246\241])

报告的主线及研究的侧重点

ebook 96-16

Microsoft PowerPoint - 05-SQL3-advanced.ppt

SQL: Interactive Queries (2)

jQuery 實戰手冊(第二版)

SQL Server SQL Server SQL Mail Windows NT

<4D F736F F D20CAFDBEDDCFC2D6DCB9ABB2BC20CAD0B3A1B3E5B8DFC8D4D3D0D5F0B5B42E646F63>

行 业 研 究 证 券 行 业 周 报 1 1. 行 业 一 周 走 势 上 周 ( , 下 同 ) 沪 深 3 下 降.49%, 券 商 行 业 下 降 2.36%, 跑 输 大 盘 上 市 券 商 中 太 平 洋 上 涨 1.2%, 涨 幅 最 大 ; 广 发 证 券

Microsoft Word - Sameul book 1 and 2.doc

(Microsoft PowerPoint - 03 \253\355\251w\245\315\262\ \301\277\270q.ppt)

Microsoft Word - 關聯性資料庫.doc

精 品 库 我 们 的 都 是 精 品 _www.jingpinwenku.com (8) 数 据 库 数 据 库 系 统 和 数 据 库 管 理 系 统 之 问 的 关 系 是 ( ) A) 数 据 库 包 括 数 据 库 系 统 和 数 据 库 管 理 系 统 B) 数 据 库 系 统 包 括

Oracle 4

untitled

<4D F736F F D D0CBB4EFB9FABCCA2D D B8FCD0C2B1A8B8E6B7B1CCE52E646F63>

(Microsoft PowerPoint -

Oracle Reports培训教程20.doc

Oracle高级复制配置手册_业务广告_.doc

Microsoft Word - Daily A.doc


<4D F736F F F696E74202D20BDD3CCECC1ABD2B6B1CCA3ACD3B3C8D5BAC9BBA8BAEC2E707074>

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2

1. 食 品 饮 料 本 周 观 点 食 品 饮 料 各 板 块 市 场 表 现 下 周 重 大 事 项 食 品 饮 料 公 司 盈 利 预 测 表 请 务 必 仔 细 阅 读 正 文 之 后 的 各 项 信 息 披 露 与 声 明 第

Microsoft Word 年報.doc

欢迎光临兴业证券 !

模 型 更 新 时 间 : 股 票 研 究 原 材 料 建 材 评 级 : 上 次 评 级 : 目 标 价 格 : 上 次 预 测 : 当 前 价 格 : 公 司 网 址 公 司 简 介 公 司 是 一 个 以

专题研究.doc

Microsoft Word 年9月二级VF真卷.doc

ACI pdf

Sector — Subsector

1998目录.mdi

Transcription:

資料表之建立與修改 Structural Query Language Data Definition Language Data Manipulation Language

SQL Introduction SQL-Structural Query Language DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language Command SELECT CREATE, ALTER, DROP RENAME, TRUNCATE INSERT, UPDATE DELETE, MERGE COMMIT ROLLBACK SAVEPOINT GRANT, REVOKE, AUDIT 資料查詢 Description 資料欄位屬性定義 (DDL) 資料增加 刪除 修改 合併等處理 (DML) 資料交易存取控制 (DML) 使用權限稽核控管 (DCL)

基本資訊查詢 SQL> conn username@dbname/password ; 連線至資料庫中之使用者綱要 dbname: 資料庫名稱 username: 使用者帳號 password: 使用者密碼 SQL> password 改變使用者密碼 SQL> SELECT table_name FROM user_tables; 查詢使用者綱要下所有表格資訊 SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'dd-mon-yyyy hh12:mi:ss pm'; 將系統時間設為 12 時制之 日 - 月 - 西元年時 : 分 : 秒上或下午 SQL> SELECT SYSDATE FROM DUAL; 查詢系統時間 SQL> SELECT (1+2)*4/1.5-3 FROM DUAL; 進行簡單的四則運算, 先做括號內運算, 再乘除, 後加減

建立表格欄位 CREATE TABLE table_name (col_name data_type [DEFAULT expr], [ ]); table_name: 表格名稱 col_name: 欄位名稱 表格及欄位名稱不可以數字為字首, 且不可為 Oracle 保留字 名稱內之字元可為 A-Z, a-z, 0-9, _, #,! 同一個使用者綱要內不可有重複名稱之表格 data_type: 資料型態 CHAR(n): 最大為 n 個字元的固定長度字串, n<=2000 VARCHAR(n): 最大為 n 個字元的可變長度字串, n<=2000 VARCHAR2(n): 最大為 n 個字元的可變長度字串, n<=4000 NUMBER(o,d): 數字型態, o<=38, -84<=d<=127 o 為所有位數, d 為小數點後位數 ; d 省略時表整數, o,d 均省略則為 38 位整數 ; d 可為負值, 表四捨五入至整數之位數 DATE: 時間型態, 常與 TO_DATE 函式合用, 如 TO_DATE('2003-05-29','yyyy-mm-dd') DEFAULT expr: 設定 expr 資料為預設值, 可省略 DROP TABLE table_name 刪除表格

輸入表格資料 INSERT INTO table_name [(col1, col2, )] VALUES (col1_value, col2_value, ); table_name: 資料表名稱 col1, col2, : 欲輸入資料的欄位, 如省略則代表所有欄位均須輸入資料 col1_value, col2_value, : 對應欄位格式之資料輸入值 如指定部分欄位輸入, 未列出之欄位會被自動輸入空值 如對應之欄位有設預設值, 則輸入 default 可自動填入預設資料 輸入日期格式時, 可配合 TO_DATE 函式之使用, 如 TO_DATE('2003-05-29','yyyy-mm-dd') 輸入文字資料時, 須以單引號將資料括起來, 如 台中市 如對應之欄位無資料, 可輸入 null 或以單引號 取代 SELECT * FROM table_name; 查詢表格內所有資料 DESC table_name 查詢表格 table_name 之欄位資訊

SQL> CREATE TABLE dept 2 (deptno NUMBER(4), 3 dname VARCHAR2(15), 4 loc VARCHAR2(20), 5 sdate DATE DEFAULT sysdate); 建立部門 dept 資料表 deptno: 部門編號, 至多 4 碼整數 dname: 部門名稱, 至多 15 字元 loc: 部門所在地區, 至多 20 字元 sdate: 部門成立時間, 預設值為系統建表時間 SQL> INSERT INTO dept VALUES 2 (101, 'MIS', 'Taichung', default); 輸入含預設值之資料 SQL> INSERT INTO dept VALUES 2 (102, 'HIS', 'Taipei', 3 TO_DATE('1999-03-23', 'yyyy-mm-dd')); 使用 TO_DATE 函式輸入時間資料 SQL> INSERT INTO dept (deptno, dname, sdate) 2 VALUES(101, '', null); 指定欄位輸入含空值之資料

複製表格資料 CREATE TABLE tar_table AS SELECT * FROM src_table; 將表格資料 ( 含欄位 ) 完全複製至新表格 tar_table: 新表格名稱 src_table: 原始表格名稱 INSERT INTO tar_table [(tar_col1[, tar_col2, ])] SELECT src_col1[, src_col2, ] FROM src_table; 將表格資料部份匯入至新表格 新表格須存在且建立好資料型態相符之欄位 tar_col1, tar_col2, : 新表格欄位名稱 src_col1, tar_col2, : 原始表格欄位名稱 如省略新表格欄位名稱, 可以星號 * 代表原始表格之所有欄位

查詢表格資料 SELECT * FROM table_name ; SELECT col1 [, col2, ] FROM table_name ; table_name: 表格名稱 col1, col2, : 欄位名稱, 如以 * 取代則表示列出所有資料 SQL> CREAE TABLE emp AS 2 SELECT * FROM scott.emp ; 自 scott 使用者綱要之 emp 表格複製所有資料至新建之 emp 資料表 SQL> INSERT INTO dept(deptno,dname,loc) 2 SELECT deptno,dname,loc 3 FROM scott.dept ; 將 scott 使用者者綱要之 dept 表格內 deptno,dname,loc 等欄位之資料複製到已存在之 dept 表內 SQL> SELECT dname, loc FROM dept ; 查詢 dept 表內的部門名稱及所在地區

修改表格欄位 ALTER TABLE table_name ADD (col_name data_type [DEFAULT expr] [, ]); 增加新欄位, 可一次增加數個欄位 col_name: 欄位名稱 ;datatype: 資料型態 DEFAULT expr: 設定 expr 資料為預設值, 可省略 ALTER TABLE table_name MODIFY (col_name data_type [DEFAULT expr] [, ]); 修改欄位屬性, 可一次修改數個欄位 ALTER TABLE table_name DROP COLUMN col_name; 刪除欄位, 一次刪除一個欄位 ALTER TABLE table_name RENAME COLUMN col_name TO col_newname; 欄位重新命名, 一次更新一個欄位名稱 col_newname: 更名後之欄位名稱

SQL> alter table dept 2 add (phone varchar2(10), 3 address varchar2(50)) ; 將原部門資料表新增部門電話與地址之欄位 SQL> alter table dept 2 modify (phone varchar2(12), 3 address number(5)) ; 修改部門電話與位置之資料型態或格式 修改資料格式時, 如已有資料存在, 則只允許增大限制範圍 SQL> alter table dept 2 drop column phone ; 刪除部門電話欄位 SQL> alter table dept 2 rename column address to zip ; 重新命名部門地址欄位為郵遞區號 原表格中既有資料會針對新增欄位以空值取代

修改表格資料 UPDATE table_name SET col_name = new_data [, col_name = new_data, ] [WHERE conditions]; 異動指定欄位之資料 table_name: 表格名稱 col_name: 欲異動資料之欄位名稱 new_data: 異動後之資料 conditions: 允許資料異動之條件 異動後之資料必須符合設定之資料型態 如果省略 WHERE 命令, 該欄位所有資料都會被異動成新的資料 DELETE FROM table_name [WHERE conditions]; 刪除指定欄位中符合 conditions 條件之資料 如果省略 WHERE 命令, 則表格內所有資料會被刪除 COMMIT; ROLLBACK; 確認 (COMMIT) 或復原 (ROLLBACK) 前面修改資料的動作

SQL> UPDATE dept 2 SET deptno = 50, 3 sdate = TO_DATE('1998-07-11','yyyymm-dd') 4 WHERE deptno = 10; SQL> UPDATE dept SET sdate = sysdate 2 WHERE deptno = 10 3 OR dname = 'SALES'; SQL> UPDATE dept 2 SET loc = 'TAICHUNG' 3 WHERE dname = 'ACCOUNTING' 4 AND dname = 'FINANCE' ; SQL> COMMIT; 確認以上之修改動作 SQL> DELETE FROM dept 2 WHERE deptno = 50; SQL> ROLLBACK; 復原以上之刪除動作

範例資料 emp 員工資料表欄位說明 Name Null? Type 說明 -------------- -------- ------------ ---------- EMPNO NOT NULL NUMBER(4) 員工編號 ENAME VARCHAR2(10) 名字 JOB VARCHAR2(9) 職稱 MGR NUMBER(4) 主管編號 HIREDATE DATE 聘僱日期 SAL NUMBER(7,2) 薪資 COMM NUMBER(7,2) 獎金 DEPTNO NUMBER(2) 部門編號 dept 部門資料表欄位說明 Name Null? Type 說明 -------------- -------- ------------ ---------- DEPTNO NOT NULL NUMBER(2) 部門編號 DNAME VARCHAR2(14) 名稱 LOC VARCHAR2(13) 所在地區 salgrade 薪資等級資料表欄位說明 Name Null? Type 說明 -------------- -------- ------------ ---------- GRADE NUMBER 薪資等級 LOSAL NUMBER 等級下限 HISAL NUMBER 等級上限

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10

DEPTNO DNAME LOC 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON GRADE LOSAL HISAL 1 700 1200 2 1201 1400 3 1401 2000 4 2001 3000 5 3001 9999

基本查詢 SELECT [DISTINCT] col1 [, col2, ] FROM table_name [WHERE conditions] [ORDER BY col_order [DESC]]; DISTINCT: 不列出重複資料, 如省略則不過濾重複之資料 col1, col2, : 欄位名稱, 如以 * 取代則表示列出所有資料 table_name: 表格名稱 WHERE: 加入查詢控制條件, 如省略則列出指定欄位之所有資料 conditions: 查詢控制條件 基本語法如 : 欄位名稱 = 資料值資料如為字串則須以單引號括起來, 且英文字元大小寫有分別 如資料為數值或日期, 可使用基本運算子如 =, >, <, <=, >=, <>,!= 可用邏輯運算子如 AND,OR 及 NOT 組合多種控制條件 ORDER BY col_order: 以 col_order 欄位作遞增排序 如加上 DESC 則表示作遞減排序, 排序參考欄位可不只一個

Examples SQL> SELECT DISTINCT * FROM dept ; 列出 dept 表內所有欄位不重覆之資料 SQL> SELECT * FROM dept 2 WHERE deptno = 10; 查詢 dept 表內部門編號為 10 的所有欄位資料 SQL> SELECT * FROM dept 2 WHERE deptno > 10; 3 ORDER BY dname DESC; 查詢 dept 表內部門編號大於 10 的所有欄位資料並依部門名稱做遞減排序 SQL> SELECT dname, loc FROM dept 2 WHERE deptno = 10 3 AND NOT deptno < 30 4 OR loc!= 'CHICAGO'; 查詢 dept 表內部門編號不小於 30 及等於 10 或不位於 Chicago 的部門名稱及所在地區

建立查詢欄位 SELECT col expr [alias][,...] FROM table_name; 建立查詢欄位之別名 col: 欄位名稱 expr: 欄位運算 alias: 欄位別名 Examples: SQL> SELECT ename, sal, sal*12 annual FROM emp; 將員工月薪 *12 後新增年收入欄位 annual, 但未修改原資料表 如未建立別名, 則以運算式作為查詢欄位名稱 SQL> SELECT '(' job ')' ename "title - name" FROM emp ; 將員工職稱與名字結合成新欄位 title name, 因新欄位中有空格, 故須以雙引號括起來

查詢控制條件 BETWEEN value1 AND value2 查詢介於兩個控制值之間的數字 文字或日期資料 value1, value2: 數字 字串或日期 Examples: SQL> SELECT ename FROM emp 2 WHERE empno BETWEEN 7500 AND 7800; 將員工編號介於 7500 和 7800 間之員工名字列出 SQL> SELECT ename from emp 2 WHERE ename BETWEEN 'ALICE' AND 'KING' ; 將員工姓名介於 ALICE 和 KING 間之員工名字列出 SQL> SELECT ename from emp 2 WHERE hiredate 3 BETWEEN to_date('1981-01-01','yyyy-mm-dd') 4 AND to_date('1981-12-31','yyyy-mm-dd') ; 將 1981 年 1 月 1 日到 12 月 31 日間僱用的員工名字列出

IN (value1, value2, ) 查詢於括號集合內有列出的數字 文字或日期資料 value1, value2: 數字 字串或日期 IS NULL 查詢無資料之欄位 Examples: SQL> SELECT ename FROM emp 2 WHERE empno IN(7900,7902,7932); 將員工編號為 7900,7902 和 7932 之員工名字列出 SQL> SELECT empno FROM emp 2 WHERE ename IN('ALLEN','ALICE','KING') ; 將 Allen,Alice,King 三位員工之員工編號列出 SQL> SELECT ename FROM emp 2 WHERE hiredate IN( 3 TO_DATE('1981-12-01','yyyy-mm-dd'), 4 TO_DATE('1981-12-03','yyyy-mm-dd'), 5 TO_DATE('1981-12-06','yyyy-mm-dd')) ; 將 1981 年 12 月 1,3,6 日 3 天顧用的員工名字列出 SQL> SELECT ename FROM emp 2 WHERE comm IS NULL ; 找出沒有績效獎金的員工

LIKE partial_value 利用萬用字元 % 查詢包含指定字串的資料 partial_value: 指定字串, 例如 %s : 以 s 結尾的字串 s% : 以 s 開頭的字串 %s% : 中間存在 s 的字串 _s% : 第二個字元為 s 的字串 如果欲查出帶有保留字元 ( 如 _) 的字串, 則在保留字元前加上以 ESCAPE 定義之跳脫自元 Examples: SQL> SELECT ename FROM emp 2 WHERE ename LIKE S% ; 將名字以 S 開頭的之員工名字列出 SQL> SELECT ename FROM emp 2 WHERE ename LIKE %MAN% ; 將名字中有 MAN 之員工名字列出 SQL> SELECT job FROM emp 2 WHERE job LIKE _LERK ; 列出第二個字元起為 LERK 的職務名稱 SQL> SELECT job FROM emp 2 WHERE job LIKE %\_% ESCAPE \ ; 定義反斜線為跳脫字元以找出中帶有底線的職務名稱