-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMysql总结(下).html
20 lines (19 loc) · 121 KB
/
Mysql总结(下).html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head>
<title>Mysql总结(下)</title>
<basefont face="微软雅黑" size="2" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="exporter-version" content="Evernote Windows/304720 (zh-CN, DDL); Windows/10.0.14393 (Win64);"/>
<style>
body, td {
font-family: 微软雅黑;
font-size: 10pt;
}
</style>
</head>
<body>
<a name="2290"/>
<h1>Mysql总结(下)</h1>
<div>
<span><div><a href="Mysql总结(下)_files/笔记.doc"><img src="Mysql总结(下)_files/c832696efb6761635fe58c4ac9ee6471.png" alt="笔记.doc"></a></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">今天的目标:</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> <b><span style="font-size: 16px;"> </span></b></span></font><span style="color: rgb(255, 0, 0);"><b><span style="font-size: 16px;"><font face="宋体">大纲:</font></span></b></span></div><div align="justify" style="min-height: 14pt;"><span style="color: rgb(255, 0, 0);"><b><span style="font-size: 16px;"><font face="Times New Roman"> 1</font><font face="宋体">)数据约束</font></span></b></span></div><div align="justify" style="min-height: 14pt;"><span style="color: rgb(255, 0, 0);"><b><span style="font-size: 16px;"><font face="Times New Roman"> 2</font><font face="宋体">)数据库设计(表设计)</font></span></b></span></div><div align="justify" style="min-height: 14pt;"><span style="color: rgb(255, 0, 0);"><b><span style="font-size: 16px;"><font face="Times New Roman"> 3</font><font face="宋体">)存储过程</font></span></b></span></div><div align="justify" style="min-height: 14pt;"><span style="color: rgb(255, 0, 0);"><b><span style="font-size: 16px;"><font face="Times New Roman"> 4</font><font face="宋体">)触发器</font></span></b></span></div><div align="justify" style="min-height: 14pt;"><span style="color: rgb(255, 0, 0);"><b><span style="font-size: 16px;"><font face="Times New Roman"> 5</font><font face="宋体">)mysql权限问题</font></span></b></span></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 26px;"><i> <span style="color: rgb(255, 0, 0);"><font face="宋体" size="4"><span style="font-size:14pt"><b>数据约束</b></span></font></span></i></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> 什么数据约束</b></span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">对用户操作表的数据进行约束</span></font></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> 默认值</b></span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">作用: 当用户对使用默认值的字段</span></font><font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt">不插入值</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">的时候,就使用默认值。</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">注意:</span></font> <font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> 1</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)对默认值字段插入null是可以的。</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> 2</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)对默认值字段可以插入非null</span></font></div><div style="margin-left: -2mm;"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 1px; border-color: #000000;width:586px;" width="583"><tr><td align="left" style="border: solid #000000 1px;width:100%;" valign="top" width="582"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 1.1</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">默认值</span></font><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE TABLE student(</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> id INT,</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> NAME VARCHAR(20),</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> address VARCHAR(20) DEFAULT '</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">广州天河' -- 默认值</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DROP TABLE student;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">当字段没有插入值的时候,mysql自动给该字段分配默认值</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO student(id,NAME) VALUES(1,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">张三');</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">注意:默认值的字段允许为null</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO student(id,NAME,address) VALUE(2,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">李四',NULL);</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO student(id,NAME,address) VALUE(3,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">王五','广州番禺');</span></font></div></td></tr></table></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> 非空 </b></span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">作用: 限制字段必须赋值</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">注意:</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> 1</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)非空字符必须赋值</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> 2</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)非空字符不能赋null</span></font></div><div style="margin-left: -2mm;"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 1px; border-color: #000000;width:586px;" width="583"><tr><td align="left" style="border: solid #000000 1px;width:100%;" valign="top" width="582"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 1.2</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">非空</span></font><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">需求: gender字段必须有值(不为null)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE TABLE student(</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> id INT,</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> NAME VARCHAR(20),</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> gender VARCHAR(2) NOT NULL --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">非空</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">非空字段必须赋值</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO student(id,NAME) VALUES(1,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">李四');</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">非空字符不能插入null</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO student(id,NAME,gender) VALUES(1,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">李四',NULL);</span></font></div></td></tr></table></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> 唯一</b></span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">作用: 对字段的值不能重复</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">注意:</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> 1</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)唯一字段可以插入null</span></font><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> 2</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)唯一字段可以插入多个null</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div style="margin-left: -2mm;"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 1px; border-color: #000000;width:586px;" width="583"><tr><td align="left" style="border: solid #000000 1px;width:100%;" valign="top" width="582"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 1.3</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">唯一</span></font><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE TABLE student(</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> id INT UNIQUE, --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">唯一</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> NAME VARCHAR(20)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO student(id,NAME) VALUES(1,'zs');</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO student(id,NAME) VALUES(1,'lisi'); -- ERROR 1062 (23000): Duplicate entry '1' for key 'id'</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO student(id,NAME) VALUES(2,'lisi');</span></font></div></td></tr></table></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> 主键</b></span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">作用: 非空+唯一</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">注意:</span></font><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> 1</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)通常情况下,</span><span style="font-size:10pt"><b>每张表都会设置一个主键字段。</b></span><span style="font-size:10pt">用于标记表中的每条记录的唯一性。</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> 2</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)建议不要选择表的包含业务含义的字段作为主键,建议给每张表独立设计一个非业务含义的</span></font><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> id</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">字段。</span></font></div><div style="margin-left: -2mm;"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 1px; border-color: #000000;width:586px;" width="583"><tr><td align="left" style="border: solid #000000 1px;width:100%;" valign="top" width="582"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 1.4</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">主键(非空+唯一)</span></font><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DROP TABLE student;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE TABLE student(</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> id INT PRIMARY KEY, --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">主键</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> NAME VARCHAR(20)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO student(id,NAME) VALUES(1,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">张三');</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO student(id,NAME) VALUES(2,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">张三');</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- INSERT INTO student(id,NAME) VALUES(1,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">李四'); -- 违反唯一约束: Duplicate entry '1' for key 'PRIMARY'</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- insert into student(name) value('</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">李四'); -- 违反非空约束: ERROR 1048 (23000): Column 'id' cannot be null</span></font></div></td></tr></table></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> 自增长</b></span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">作用: 自动递增</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div style="margin-left: -2mm;"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 1px; border-color: #000000;width:586px;" width="583"><tr><td align="left" style="border: solid #000000 1px;width:100%;" valign="top" width="582"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 1.5</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">自增长</span></font><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE TABLE student(</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> id INT(4) ZEROFILL PRIMARY KEY AUTO_INCREMENT, --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">自增长,从0开始 ZEROFILL 零填充</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> NAME VARCHAR(20)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">自增长字段可以不赋值,自动递增</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO student(NAME) VALUES('</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">张三');</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO student(NAME) VALUES('</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">李四');</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO student(NAME) VALUES('</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">王五');</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT * FROM student;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">不能影响自增长约束</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DELETE FROM student;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">可以影响自增长约束</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">TRUNCATE TABLE student;</span></font></div></td></tr></table></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> 外键</b></span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">作用:约束两种表的数据</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">出现两种表的情况:</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">解决数据冗余高问题: 独立出一张表</span></font><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">例如: 员工表 和 部门表</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">问题出现:在插入员工表数据的时候,员工表的部门ID字段可以随便插入!!!!!</span></font><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">使用外键约束:约束插入员工表的部门ID字段值</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">解决办法: 在员工表的部门ID字段添加一个外键约束</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div style="margin-left: -2mm;"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 1px; border-color: #000000;width:586px;" width="583"><tr><td align="left" style="border: solid #000000 1px;width:100%;" valign="top" width="582"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">部门表(主表)</span></font><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE TABLE dept(</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#FF0000" face="Times New Roman" size="2"><span style="font-size:10pt">id</span></font> <font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INT PRIMARY KEY,</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> deptName VARCHAR(20)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">修改员工表(副表/从表)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE TABLE employee(</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> id INT PRIMARY KEY,</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> empName VARCHAR(20),</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#FF0000" face="Times New Roman" size="2"><span style="font-size:10pt">deptId</span></font> <font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INT,--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">把部门名称改为部门ID</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">声明一个外键约束</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#FF0000" face="Times New Roman" size="2"><span style="font-size:10pt">CONSTRAINT emlyee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> -- </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">外键名称 外键 参考表(参考字段)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">)</span></font></div></td></tr></table></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">注意:</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> 1</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)被约束的表称为副表,约束别人的表称为主表,外键设置在副表上的!!!</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> 2</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)主表的参考字段通用为主键!</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#FF0000" face="Times New Roman" size="2"><span style="font-size:10pt"><b> 3</b></span></font><font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt"><b>)添加数据: 先添加主表,再添加副表</b></span></font></div><div align="justify" style="min-height: 14pt;"><font color="#FF0000" face="Times New Roman" size="2"><span style="font-size:10pt"><b> 4</b></span></font><font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt"><b>)修改数据: 先修改副表,再修改主表</b></span></font></div><div align="justify" style="min-height: 14pt;"><font color="#FF0000" face="Times New Roman" size="2"><span style="font-size:10pt"><b> 5</b></span></font><font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt"><b>)删除数据: 先删除副表,再删除主表</b></span></font></div><div style="margin-left: -2mm;"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 1px; border-color: #000000;width:586px;" width="583"><tr><td align="left" style="border: solid #000000 1px;width:100%;" valign="top" width="582"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 1.6</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">外键约束</span></font><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">员工表</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE TABLE employee(</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> id INT PRIMARY KEY,</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> empName VARCHAR(20),</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> deptName VARCHAR(20) --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">部门名称</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO employee VALUES(1,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">张三','软件开发部');</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO employee VALUES(2,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">李四','软件开发部');</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO employee VALUES(3,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">王五','应用维护部');</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT * FROM employee;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">添加员工,部门名称的数据冗余高</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO employee VALUES(4,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">陈六','软件开发部');</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">解决数据冗余高的问题:给冗余的字段放到一张独立表中</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">独立设计一张部门表</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE TABLE dept(</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> id INT PRIMARY KEY,</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> deptName VARCHAR(20)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DROP TABLE employee;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">修改员工表</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE TABLE employee(</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> id INT PRIMARY KEY,</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> empName VARCHAR(20),</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> deptId INT,--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">把部门名称改为部门ID</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">声明一个外键约束</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> CONSTRAINT emlyee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id) ON UPDATE CASCADE ON DELETE CASCADE -- ON CASCADE UPDATE</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">:级联修改</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> -- </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">外键名称 外键 参考表(参考字段)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO dept(id,deptName) VALUES(1,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">软件开发部');</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO dept(id,deptName) VALUES(2,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">应用维护部');</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO dept(id,deptName) VALUES(3,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">秘书部');</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO employee VALUES(1,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">张三',1);</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO employee VALUES(2,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">李四',1);</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO employee VALUES(3,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">王五',2);</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO employee VALUES(4,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">陈六',3);</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">问题: 该记录业务上不合法,员工插入了一个不存在的部门数据</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO employee VALUES(5,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">陈六',4); -- 违反外键约束: Cannot add or update a child row: a foreign key constraint fails (`day16`.`employee`, CONSTRAINT `emlyee_dept_fk` FOREIGN KEY (`deptId`) REFERENCES `dept` (`id`))</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 1</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)当有了外键约束,添加数据的顺序: 先添加主表,再添加副表数据</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 2</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)当有了外键约束,修改数据的顺序: 先修改副表,再修改主表数据</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 3</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)当有了外键约束,删除数据的顺序: 先删除副表,再删除主表数据</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">修改部门(不能直接修改主表)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">UPDATE dept SET id=4 WHERE id=3;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">先修改员工表</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">UPDATE employee SET deptId=2 WHERE id=4;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">删除部门</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DELETE FROM dept WHERE id=2;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">先删除员工表</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DELETE FROM employee WHERE deptId=2;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT * FROM dept;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT * FROM employee;</span></font></div></td></tr></table></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> </b></span></font></div><div align="justify" style="font-weight: bold; font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> <span style="font-size: 21px;"><span style="color: rgb(255, 0, 0);"><i>级联操作</i></span></span></b></span></font></div><div align="justify" style="font-weight: bold; font-size: 20px;"><span style="font-size: 12pt;"><span style="font-family: 宋体;"><span style="color: rgb(1, 1, 1);"><br/></span></span></span></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">问题: 当有了</span></font><font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt"><b>外键约束</b></span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">的时候,必须先修改或删除副表中的所有关联数据,才能修改或删除主表!但是,我们希望直接修改或删除主表数据,从而影响副表数据。可以使用级联操作实现!!!</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">级联修改: ON UPDATE CASCADE</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">级联删除: ON DELETE CASCADE</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div style="margin-left: -2mm;"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 1px; border-color: #000000;width:586px;" width="583"><tr><td align="left" style="border: solid #000000 1px;width:100%;" valign="top" width="582"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE TABLE employee(</span></font><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> id INT PRIMARY KEY,</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> empName VARCHAR(20),</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> deptId INT,--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">把部门名称改为部门ID</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">声明一个外键约束</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> CONSTRAINT emlyee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id)</span></font> <font color="#FF0000" face="Times New Roman" size="2"><span style="font-size:10pt">ON UPDATE CASCADE ON DELETE CASCADE</span></font><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> -- ON CASCADE UPDATE</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">:级联修改</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> -- </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">外键名称 外键 参考表(参考字段)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">)</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt"><b>注意: 级联操作必须在外键基础上使用</b></span></font></div></td></tr></table></div><div style="margin-left: -2mm;"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 1px; border-color: #000000;width:586px;" width="583"><tr><td align="left" style="border: solid #000000 1px;width:100%;" valign="top" width="582"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">级联修改(修改)</span></font><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">直接修改部门</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">UPDATE dept SET id=5 WHERE id=4;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">级联删除</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">直接删除部门</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DELETE FROM dept WHERE id=1;</span></font></div></td></tr></table></div><div><br/></div><div align="justify" style="font-size: 26px;"><span style="color: rgb(255, 0, 0);"><i> <font face="宋体" size="4"><span style="font-size:14pt">数据库设计</span></font></i></span></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> 引入</b></span></font></div><div align="justify" style="font-weight: bold; font-size: 20px;"><span style="font-size: 12pt;"><span style="font-family: 宋体;"><span style="color: rgb(1, 1, 1);"><br/></span></span></span></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">需求分析 - 需求分析师 -》 原始需求- > 抽取业务模型</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">图书模型:图书名称,版本号,作者</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">学生模型: 学号,学生姓名 手机号码</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> ......</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">角色:学生 老师,图书管理员</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">《需求说明书》</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">需求设计 - </span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">概要设计:</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">抽取实体:业务模型 -> 实体模型(java 类 c++类)内存</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> class Book{ name, bookNo,author }</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font> <font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt"><b>数据库设计:</b></span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">业务模型/实体模型 - ></span></font> <font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt">数据模型</span></font> <font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">(</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">硬盘)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">数据库</span></font><font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt">表设计</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#FF0000" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt">问题: 如何设计?</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">详细设计</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">类详细,属性和方法</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div><br/></div><div align="justify" style="font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> </b> <span style="color: rgb(255, 0, 0);"><span style="font-size: 24px;"><i>三大范式</i></span></span></span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">设计原则: 建议设计的表尽量遵守三大范式。</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">第一范式: 要求表的</span></font><font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt"><b>每个字段必须是不可分割的独立单元</b></span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> student : name --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">违反第一范式</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">张小名|狗娃</span></font><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> sutdent </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">: name old_name --符合第一范式</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">张小名 狗娃</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">第二范式: 在第一范式的基础上,要求每张表只表达一个意思。表的每个字段都和表的主键</span></font><font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt">有依赖</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">。</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> employee</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">(员工): 员工编号 员工姓名 部门名称 </span></font> <font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt">订单名称 </span></font> <font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">违反第二范式</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">员工表:员工编号 员工姓名 部门名称 </span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">订单表: 订单编号 </span></font> <font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt">订单名称 -- 符合第二范式</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">第三范式: 在第二范式基础,要求每张表的主键之外的其他字段都只能和主键</span></font><font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt">有直接决定依赖关系</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">。</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">员工表: 员工编号(主键) 员工姓名 </span></font> <font color="#4F81BD" face="宋体" size="2"><span style="font-size:10pt">部门编号</span></font><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font> <font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt">部门名</span></font> <font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">符合第二范式,违反第三范式</span></font><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">(数据冗余高)</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">员工表:员工编号(主键) 员工姓名 部门编号 --符合第三范式(降低数据冗余)</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">部门表:</span></font><font color="#4F81BD" face="宋体" size="2"><span style="font-size:10pt">部门编号</span></font><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font> <font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt">部门名</span></font></div><div><br/></div><div align="justify" style="font-size: 26px;"><b> </b><span style="color: rgb(255, 0, 0);"><i><font face="宋体" size="4"><span style="font-size:14pt">关联查询(多表查询)</span></font></i></span></div><div align="justify" style="font-weight: bold; font-size: 26px;"><span style="font-size: 14pt;"><span style="font-family: 宋体;"><span style="color: rgb(1, 1, 1);"><br/></span></span></span></div><div style="margin-left: -2mm;"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 1px; border-color: #000000;width:586px;" width="583"><tr><td align="left" style="border: solid #000000 1px;width:100%;" valign="top" width="582"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- **************</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">二、关联查询(多表查询)****************----</span></font><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">需求:查询员工及其所在部门(显示员工姓名,部门名称)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 2.1</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">交叉连接查询(不推荐。产生笛卡尔乘积现象:4 * 4=16,有些是重复记录)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT empName,deptName FROM employee,dept;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">需求:查询员工及其所在部门(显示员工姓名,部门名称)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">多表查询规则:1)确定查询哪些表 2)确定哪些哪些字段 3)表与表之间连接条件 (规律:连接条件数量是表数量-1)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 2.2</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">内连接查询:只有满足条件的结果才会显示(使用最频繁)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT empName,deptName -- 2</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)确定哪些哪些字段</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> FROM employee,dept -- 1</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)确定查询哪些表</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> WHERE employee.deptId=dept.id -- 3</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)表与表之间连接条件</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">内连接的另一种语法</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT empName,deptName</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> FROM employee</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> INNER JOIN dept</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> ON employee.deptId=dept.id;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">使用别名</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT e.empName,d.deptName</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> FROM employee e</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> INNER JOIN dept d</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> ON e.deptId=d.id;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">需求: 查询每个部门的员工</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">预期结果:</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> -- </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">软件开发部 张三</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> -- </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">软件开发部 李四</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> -- </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">应用维护部 王五</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> -- </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">秘书部 陈六</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> -- </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">总经办 null</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 2.2</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">左[外]连接查询: 使用左边表的数据去匹配右边表的数据,如果符合连接条件的结果则显示,如果不符合连接条件则显示null</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">(注意: 左外连接:左表的数据一定会完成显示!)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT d.deptName,e.empName</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> FROM dept d</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> LEFT OUTER JOIN employee e</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> ON d.id=e.deptId;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 2.3</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">右[外]连接查询: 使用右边表的数据去匹配左边表的数据,如果符合连接条件的结果则显示,如果不符合连接条件则显示null</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">(注意: 右外连接:右表的数据一定会完成显示!)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT d.deptName,e.empName</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> FROM employee e</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> RIGHT OUTER JOIN dept d</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> ON d.id=e.deptId;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 2.4</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">自连接查询</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">需求:查询员工及其上司</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">预期结果: </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">张三 null</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">李四 张三</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">王五 李四</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">陈六 王五</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT e.empName,b.empName</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> FROM employee e</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> LEFT OUTER JOIN employee b</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> ON e.bossId=b.id;</span></font></div></td></tr></table></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 26px;"><span style="color: rgb(255, 0, 0);"><i><font face="宋体" size="4"><span style="font-size:14pt"><b>存储过程</b></span></font></i></span></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> 什么是存储过程</b></span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">存储过程,</span></font><font color="#FF0000" face="宋体" size="2"><span style="font-size:10pt">带有逻辑的sql语句</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">之前的sql没有条件判断,没有循环</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">存储过程带上流程控制语句(if while)</span></font></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> 存储过程特点</b></span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> 1</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)执行效率非常快!存储过程是在数据库的服务器端执行的!!!</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> 2</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">)移植性很差!不同数据库的存储过程是不能移植。</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> <span style="font-size: 21px;"><span style="color: rgb(255, 0, 0);"><i> 存储过程语法</i></span></span></b></span></font></div><div style="margin-left: -2mm;"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 1px; border-color: #000000;width:585px;" width="583"><tr><td align="left" style="border: solid #000000 1px;width:100%;" valign="top" width="582"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">创建存储过程</span></font><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DELIMITER $ --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">声明存储过程的结束符</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE PROCEDURE pro_test() --</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">存储过程名称(参数列表)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">BEGIN --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">开始</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">可以写多个sql语句; -- sql语句+流程控制</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SELECT * FROM employee;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">END $ --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">结束 结束符</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">执行存储过程</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CALL pro_test(); -- CALL</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">存储过程名称(参数);</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">参数:</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">IN</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">: 表示输入参数,可以携带数据带存储过程中</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">OUT</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">: 表示输出参数,可以从存储过程中返回结果</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INOUT</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">: 表示输入输出参数,既可以输入功能,也可以输出功能</span></font></div></td></tr></table></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div style="margin-left: -2mm;"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 1px; border-color: #000000;width:585px;" width="583"><tr><td align="left" style="border: solid #000000 1px;width:100%;" valign="top" width="582"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- **************</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">三、存储过程*******************-</span></font><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">声明结束符</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">创建存储过程</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DELIMITER $</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE PROCEDURE pro_test()</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">BEGIN</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">可以写多个sql语句;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SELECT * FROM employee;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">END $</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">执行存储过程</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CALL pro_test();</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 3.1</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">带有输入参数的存储过程</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">需求:传入一个员工的id,查询员工信息</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DELIMITER $</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE PROCEDURE pro_findById(IN eid INT) -- IN:</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">输入参数</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">BEGIN</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SELECT * FROM employee WHERE id=eid;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">END $</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">调用</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CALL pro_findById(4);</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 3.2</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">带有输出参数的存储过程</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DELIMITER $</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE PROCEDURE pro_testOut(OUT str VARCHAR(20)) -- OUT</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">:输出参数</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">BEGIN</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">给参数赋值</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SET str='helljava';</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">END $</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">删除存储过程</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DROP PROCEDURE pro_testOut;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">调用</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">如何接受返回参数的值??</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- ***mysql</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">的变量******</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">全局变量(内置变量):mysql数据库内置的变量 (所有连接都起作用)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">查看所有全局变量: show variables</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">查看某个全局变量: select @@变量名</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">修改全局变量: set 变量名=新值</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> -- character_set_client: mysql</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">服务器的接收数据的编码</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> -- character_set_results</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">:mysql服务器输出数据的编码</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- </span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">会话变量: 只存在于当前客户端与数据库服务器端的一次连接当中。如果连接断开,那么会话变量全部丢失!</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">定义会话变量: set @变量=值</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">查看会话变量: select @变量</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">局部变量: 在存储过程中使用的变量就叫局部变量。只要存储过程执行完毕,局部变量就丢失!!</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 1)</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">定义一个会话变量name, 2)使用name会话变量接收存储过程的返回值</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CALL pro_testOut(@NAME);</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">查看变量值</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT @NAME;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 3.3</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">带有输入输出参数的存储过程</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DELIMITER $</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE PROCEDURE pro_testInOut(INOUT n INT) -- INOUT</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">: 输入输出参数</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">BEGIN</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">查看变量</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SELECT n;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SET n =500;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">END $</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">调用</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SET @n=10;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CALL pro_testInOut(@n);</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT @n;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 3.4</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">带有条件判断的存储过程</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">需求:输入一个整数,如果1,则返回“星期一”,如果2,返回“星期二”,如果3,返回“星期三”。其他数字,返回“错误输入”;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DELIMITER $</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE PROCEDURE pro_testIf(IN num INT,OUT str VARCHAR(20))</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">BEGIN</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> IF num=1 THEN</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SET str='</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">星期一';</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> ELSEIF num=2 THEN</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SET str='</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">星期二';</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> ELSEIF num=3 THEN</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SET str='</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">星期三';</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> ELSE</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SET str='</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">输入错误';</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> END IF;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">END $</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CALL pro_testIf(4,@str);</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT @str;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 3.5</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">带有循环功能的存储过程</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">需求: 输入一个整数,求和。例如,输入100,统计1-100的和</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DELIMITER $</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE PROCEDURE pro_testWhile(IN num INT,OUT result INT)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">BEGIN</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">定义一个局部变量</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> DECLARE i INT DEFAULT 1;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> DECLARE vsum INT DEFAULT 0;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> WHILE i<=num DO</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SET vsum = vsum+i;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SET i=i+1;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> END WHILE;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SET result=vsum;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">END $</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DROP PROCEDURE pro_testWhile;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CALL pro_testWhile(100,@result);</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT @result;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">USE day16;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- 3.6</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">使用查询的结果赋值给变量(INTO)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">DELIMITER $</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE PROCEDURE pro_findById2(IN eid INT,OUT vname VARCHAR(20) )</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">BEGIN</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SELECT empName INTO vname FROM employee WHERE id=eid;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">END $</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CALL pro_findById2(1,@NAME);</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT @NAME;</span></font></div></td></tr></table></div><div><br/></div><div align="justify" style="font-weight: bold;"><span style="font-size: 32px;"><span style="color: rgb(255, 0, 0);"><i> <font face="宋体"><b>触发器</b></font></i></span></span></div><div><br/></div><div align="justify" style="font-weight: bold; font-size: 20px;"><font color="#010101" face="宋体"><span style="font-size:12pt"><b> <i><span style="color: rgb(255, 0, 0);"><span style="font-size: 21px;">触发器作用</span></span></i></b></span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">当操作了某张表时,希望同时触发一些动作/行为,可以使用触发器完成!!</span></font></div><div align="justify" style="min-height: 13pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">例如: 当向员工表插入一条记录时,希望同时往日志表插入数据</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div style="margin-left: -2mm;"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 1px; border-color: #000000;width:585px;" width="583"><tr><td align="left" style="border: solid #000000 1px;width:100%;" valign="top" width="582"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">需求: 当向员工表插入一条记录时,希望mysql自动同时往日志表插入数据</span></font><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">创建触发器(添加)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE TRIGGER tri_empAdd AFTER INSERT ON employee FOR EACH ROW --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">当往员工表插入一条记录时</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> INSERT INTO test_log(content) VALUES('</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">员工表插入了一条记录');</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">插入数据</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO employee(id,empName,deptId) VALUES(7,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">扎古斯',1);</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">INSERT INTO employee(id,empName,deptId) VALUES(8,'</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">扎古斯2',1);</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">创建触发器(修改)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE TRIGGER tri_empUpd AFTER UPDATE ON employee FOR EACH ROW --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">当往员工表修改一条记录时</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> INSERT INTO test_log(content) VALUES('</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">员工表修改了一条记录');</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">修改</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> UPDATE employee SET empName='eric' WHERE id=7;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">创建触发器(删除)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">CREATE TRIGGER tri_empDel AFTER DELETE ON employee FOR EACH ROW --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">当往员工表删除一条记录时</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> INSERT INTO test_log(content) VALUES('</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">员工表删除了一条记录');</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">删除</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> DELETE FROM employee WHERE id=7;</span></font></div></td></tr></table></div><div><br/></div><div align="justify" style="font-size: 26px;"><span style="color: rgb(255, 0, 0);"><i><font face="Times New Roman" size="4"><span style="font-size:14pt">mysql</span></font><font face="宋体" size="4"><span style="font-size:14pt">权限问题</span></font></i></span></div><div align="justify" style="font-size: 26px;"><i><span style="font-size: 14pt;"><span style="font-family: 宋体;"><span style="color: rgb(255, 0, 0);"><br/></span></span></span></i></div><div style="margin-left: -2mm;"><table cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 1px; border-color: #000000;width:585px;" width="583"><tr><td align="left" style="border: solid #000000 1px;width:100%;" valign="top" width="582"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- ***********</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">五、mysql权限问题****************</span></font><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> -- mysql</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">数据库权限问题:root :拥有所有权限(可以干任何事情)</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">权限账户,只拥有部分权限(CURD)例如,只能操作某个数据库的某张表</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> --</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">如何修改mysql的用户密码?</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> -- password: md5</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">加密函数(单向加密)</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> SELECT PASSWORD('root'); -- *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt"> </span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">-- mysql</span></font><font color="#010101" face="宋体" size="2"><span style="font-size:10pt">数据库,用户配置 : user表</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">USE mysql;</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">SELECT * FROM USER;</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">修改密码</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">UPDATE USER SET PASSWORD=PASSWORD('123456') WHERE USER='root';</span></font></div><div align="justify" style="min-height: 14pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">--</span></font> <font color="#010101" face="宋体" size="2"><span style="font-size:10pt">分配权限账户</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">GRANT SELECT ON day16.employee TO 'eric'@'localhost' IDENTIFIED BY '123456';</span></font></div><div align="justify" style="min-height: 12pt;"><font color="#010101" face="Times New Roman" size="2"><span style="font-size:10pt">GRANT DELETE ON day16.employee TO 'eric'@'localhost' IDENTIFIED BY '123456';</span></font></div></td></tr></table></div></span>
</div></body></html>