PHP[转]MySQL基本操作

本文转自:http://www.cnblogs.com/dotfun/archive/2009/05/18/1459346.html

01 MySQL基本操作

一、使用MySQL命令行

1、总是和断开MySQL服务器:mysql –h host –u user
–p,回车后输入密码。
断开连接:quit或者exit

2、执行SQL语句:语词以“;”为止。不分轻重缓急写。
条例:select curdate(), curtime(); 查询服务器即日期及时空。

于一行中得以输入多少长度条SQL语句,各语句以“;”号隔开。各长达告句得到各自的结果集。

在旁时候输入“\c”并回车,则裁撤时输入,重新回到mysql>提示符。

好几情形下,按回车后,SQL语句并无履,现身的吗非是“->”指示称,如:[’>]、[”>]、[`>]、[/*],则表示引号或注释没有截至。虽然通过\c取消,也使事先结引号。

3、创办数据库:CREATE DATABASE
create database db_test default character set gb2312 collate
gb2312_chinese_ci;
CHARACTER SET:字符集。COLLATE:整理或校对。

要无指定则接纳默认。create database db_test;

4、有关字符校对collate
仗于字符串时利用的同等效规则。还可安装服务器校对和表校对。一般情状下非欲设置字符校对,因为对应于各一样栽字符集MySQL有默认的校规则,例如gb2312字符集默认校对规则为gb2312_chinese_ci。当不安装校对时利用默认。

5、去除数据库:DROP DATABASE
例:drop database db_test;

6、创造数量库表:CREATE TABLE
每当开立数据表此前,首先要接纳数据库。此外查询、修改、删除等操作也同样。
use db_name;
例:create table use_info (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
name VARCHAR(10) NOT NULL ,
gender SET(‘男’, ‘女’) NOT NULL DEFAULT ‘男’ ,
age INT NULL ,
email VARCHAR(30) NOT NULL ,
INDEX (name) )
ENGINE = innodb CHARACTER SET gb2312
COLLATE gb2312_chinese_ci COMMENT = ‘Information’ ;

翻开时数据库下所有表:show tables;

7、查看表结构:SHOW COLUMNS 或 DESCRIBE
show columns from user_info from db_test;
show columns from db_test.user_info;
万一手上下数据库也表达所于的数据库,则可大概db_test。

describe user_info;
故此法同上,还可就得到有一个排列的音讯:
describe user_info name;

8、删除表:DROP TABLE
drop table user_info;
得同样不成去多单表明:drop table user_info1,user_info2;

9、重命名表:RENAME TABLE
足又针对几近个表重命名,之间以逗号“,”隔开。
rename table user_info to users_infomation,
sale_info to sales_infomation;

10、修改表结构:ALTER TABLE
修改表名称:ALTER TABLE user_info RENAME users_information;
改字段类型、长度:ALTER TABLE user_information MODIFY age TINYINT NOT
NULL,
CHANGE email e_mail VARCHAR(40);
补给加点儿只新字段:ALTER TABLE user_information ADD reg_date DATETIME NOT
NULL,
ADD address VARCHAR(50) NULL;
在列reg_date中补充加索引:ALTER TABLE user_information ADD INDEX
(reg_date);
删除age字段:ALTER TABLE users_information DROP COLUMN age;

11、浏览数据库记录:SELECT
回去所有记录所有列:select * from user_info;
回所有记录有列:select name, gender,email from user_info;
再次来到所有男性用户:select * from user_info where gender = ‘男’;
归来所有小于30年份之男用户:select * from user_info where gender=‘男’AND
age<30;
返所有小于30过量22底男用户,或者小于28超乎20的女性用户:
select * from user_info where (gender=‘男’AND age<30 AND
age>22)
OR (gender=‘女’AND age<28 AND age>20);

12、插记录:INSERT
insert into user_info (name, gender, age, email) values(‘XiaoHei’,
‘男’,28,‘xhei@sohu.com’);
insert into user_info (name, gender, email)
values(‘Xiaobai’,DEFAULT,28,‘xbei@sohu.com’);
insert into user_info (name,email) values(‘wanghai’,CONCAT(name,
‘@sohu.com’))
CONCAT为MySQL系统函数,将大半独字符串连接起来。
足等效潮而插入多进行记录,用“,”隔开。
insert into user_info(name,gender,age,email)
values(‘ChenYi’,
‘女’,25,‘chenyi@shou.com’),
(‘XiaoHei’,
‘男’,28,‘xhei@sohu.com’);

13、修改记录:UPDATE
update user_info set age=age+1;
update user_info set name=“小黑”,gender=‘男’ where name=‘XiaoHei’;

14、删除记录:DELETE
各重要字含义用UPDATE,不指定where子句丑时去除所有执行。
delete from user_info;
delete from user_info where gender=‘男’;

二、使用MySQL Query Browser

三、使用phpMyAdmin
如果字段类型是set型,则值为‘a’ ‘b’
‘c’的样式为起,如一旦以值备受输入反斜线“\”或者单引号“‘”,需要出眼前增长“\”转意。
例:gender SET 长度/值:‘男’, ‘女’

四、PHP中访问MySQL

些微个扩大:mysql基础库,mysqli扩充了针对性mysql新特点的支撑。

五、mysql函数库

常用数据库操作函数
mysql_connect() — 打开一个暨 MySQL 服务器的连日
mysql_pconnect() — 打开一个届 MySQL 服务器的持久连接
mysql_select_db() — 选择 MySQL 数据库
mysql_query() — 发送一条 MySQL 查询
mysql_db_query() — 发送一长达 MySQL 查询
mysql_result() — 取得结果数据
mysql_affected_rows() — 取得前同坏 MySQL 操作所影响之笔录行数
mysql_num_rows() — 取得结果集中行的数
mysql_num_fields() — 取得结果集中字段的数码
mysql_data_seek() — 移动内部结果的指针
mysql_fetch_array() —
从结果集中取一行作为关系数组,或数字数组,或二者兼顾闹
mysql_fetch_assoc() — 从结果集中取一行作为关乎数组
mysql_fetch_row() — 从结果集中取一行作为枚举数组
mysql_free_result() — 释放结果内存
mysql_close() — 关闭 MySQL 连接
mysql_get_host_info() — 取得 MySQL 主机信息
mysql_get_client_info() — 取得 MySQL 客户端音
mysql_get_server_info() — 取得 MySQL 服务器信息
mysql_client_encoding() — 再次来到字符集的称

1、老是数据库
$link = mysql_connect(‘localhost’, ‘root’, ‘password’);
mysql_pconnect()建立之连接持久保留,脚本执行完毕后,如故不会面关闭,并且不可以使用mysql_close()关闭。

2、挑选数据库
$link = mysql_connect(‘localhost’, ‘root’, ‘password’);
mysql_select_db(‘teaching_sys’,$link);
选用了数据库后从此所开展的操作默认都是针对性该数据库举行。要指向任何数据库操作,可以行使mysql_select_db()采用任何数据库。
抑或利用SQL语句访问此外数据库的对象:select * from
db_user.user_info,使用这种办法,SQL语句执行完毕后,当前默认数据库仍是原来选拔的数据库。

3、执行SQL语句
$link = mysql_connect(‘localhost’, ‘root’, ‘password’);
mysql_select_db(‘teaching_sys’,$link);
$sql = “select * from department”;
$result = mysql_query($sql,$link);
询问字符串中莫包含分号“;”
mysql_db_query()不同之是好指定要用的数据库。
$result = mysql_db_query(‘text’,$sql,$link);
使用mysql_db_query()后,新数据补激活。要动原来需生新选。由此,一般不用。

4、读取结果集
int mysql_result(resource result, int row [, mixed field]) —
取得结果数据
int mysql_result($result,2,1);重回第3执记录中之第2单字段的价。
mysql_affected_rows([resource link_identifier]) — 取得前同软 MySQL
操作所影响之笔录行数。link_identifier也都建之连日,如非点名则运用上一个。
mysql_num_rows(resource result) — 取得结果集中行的数量
mysql_num_fields(resource result) — 取得结果集中字段的数目
mysql_data_seek(resource result, int row_number) —
移动内部结果的指针到指定行。
mysql_fetch_array(resource result [, int result_type]) —
从结果集中取一行作为关周详组,或数字数组,或二者兼顾闹
mysql_fetch_assoc(resource result) — 从结果集中取一行作为关乎数组
mysql_fetch_row(resource result) — 从结果集中取一行作为枚举数组

5、关连接
bool mysql_free_result(resource result)
bool mysql_close([resource link_identifier])

6、服务器消息 string mysql_get_host_info ( [resource $link_identifier] )
string mysql_get_client_info ( void )
string mysql_get_server_info ( [resource $link_identifier] )
string mysql_client_encoding ( [resource $link_identifier] )

7、运用实例 <?php
//建立连接
$link = @mysql_connect(‘localhost’, ‘root’, ‘czhnet’);
//接纳数据库
@mysql_select_db(‘teaching_sys’,$link);
$sql = “select * from student”;
//设置字符集
mysql_query(“set names gb2312”);
//发送SQL语句
$result = mysql_query($sql,$link);
?>

<?php
//读取结果
$bgcolor=”#ffffff”; //定义表格中行的颜色
for($i=0;$i<mysql_num_rows($result);$i++)
{ //交替变换表格数据行的颜料
if($bgcolor==”#ffffff”)
   $bgcolor = “#dddddd”;
else
   $bgcolor = “#ffffff”;
//取一行记录
$row = mysql_fetch_array($result);
echo “<tr bgcolor=$bgcolor height=27>”;
echo “<td>”.$row[‘name’].”</td>”;
echo “<td>”.$row[‘school_no’].”</td>”;
echo “<td>”.$row[‘gender’].”</td>”;
echo “<td>”.$row[‘province’].”</td>”;
echo “<td>”.$row[‘city’].”</td>”;
echo “<td>”.$row[‘address’].”</td>”;
echo “<td>”.$row[’email’].”</td>”;
echo “<td>”.$row[‘phone’].”</td>”;
echo “</tr>”;
}
?>
8、至于MySQL的国语题目 解决乱码的法门是,在实践SQL语句从前,将MySQL以下三独系统参数设置为跟服务器字符集character-set-server相同的字符集。
character_set_client:客户端的字符集。
character_set_results:结果字符集。
character_set_connection:连接字符集。
设置这两只连串参数经为MySQL发送语句:set names gb2312
即在PHP中执行:mysql_query(“set names gb2312”);

六、mysqli扩展

1、连接数据库
$mysqli = new mysqli(‘localhost’, ‘root’, ‘password’,
‘teaching_sys’);
或$link=mysqli_connect(‘localhost’, ‘root’, ‘password’,
‘teaching_sys’);

2、摘数据库
$mysqli->select_db(‘sales’);
或:mysqli_xelect_db($link, ‘sales’);

3、执行SQL语句
$sql = ‘select * from student’;
$result = $mysqli->query($sql);
或:$result = mysqli_query($link,$sql);

4、读取结果集
得mysql操作所影响之笔录行数
mysqli->affected_rows或mysqli_affected_rows()
获结果集的行数
mysqli_result->num_rows或mysqli_num_rows($result)
抱结果集中字段的多寡
mysqli_result->field_count或mysqli_num_fields()
挪动结果集指针
mysqli_result->data_seek()或mysqli_data_seek()
实现fetch_array
mysqli_result->fetch_array()或mysqli_fetch_array()
实现fetch_assoc
mysqli_result->fetch_assoc()或mysqli_fetch_assoc()
实现fetch_row
mysqli+result->fetch_row()或mysqli_fetch_row()

5、关闭连接
放活内存
mysqli_result->free()、mysqli_result->close()、mysqli_result->free_result()。
或mysqli_free_result()
关连接
mysqli->close()或mysqli_close()

6、服务器消息
主机音信:mysqli->host_info或mysqli_get_host_ifo()
客户端音:mysqli->client_info或mysqli_get_client_info()
服务器音信:mysqli->get_server_info或mysqli_get_server_info()

7、利用实例 <?php
//建立连接
$mysqli = new mysqli(‘localhost’, ‘root’, ‘czhnet’,’teaching_sys’);
$sql = “select * from student”;
//设置字符集,mysqli同用
$mysqli->query(“set names gb2312”);
//发送SQL语句
$result = $mysqli->query($sql);
?>
<?php
//读取结果
$bgcolor=”#ffffff”; //定义表格中行的水彩
for($i=0;$i<$result->num_rows;$i++)
{
//交替变换表格数据行的颜料
if($bgcolor==”#ffffff”)
   $bgcolor = “#dddddd”;
else
   $bgcolor = “#ffffff”;
//取一行记录
$row = $result->fetch_array();
echo “<tr bgcolor=$bgcolor height=27>”;

02 使用SQL语句

一、SELECT语句

1、采纳具有列:SELECT * FROM student
可指定三个表达,将记录组合在一起,重回结果集是各表记录之穿插构成。有N*M行记录
SELECT department.* , course.* FROM department, course

2、摘有排:SELECT name, school_no,school_year FROM student
只是由于多单表达中挑选有字段
SELECT student.name, teach.name FROM student, teacher

3、行使别名
SELECT name AS 姓名, school_no AS 学号, phone AS 电话 FROM student
一言九鼎字AS是可选的,别名也堪运用单引号或双引号括起来。并不需要同时也所有字段指定别名。
SQL语句被可以参加注释文字,注释放在/*与*/之间,可以出现在SQL语句任意地方。
例:SELECT * FROM /*学生表*/ student
当也字段定义别名后,可以当ORDER BY子句、GROUP
BY子句被援字段的号,但是以WHERE子句被莫允引用字段的别名。

4、运表明式
SELECT title 课程,units 学分,units*16 课时 FROM course
当询问时对字段举办的运算只影响重临的结果,不影响表中原数据。
SELECT title 课程,course_no 课程编号,units>5 ‘学分是否领先5’ FROM
course
透过()改变运算顺序:SELECT title 课程,(units+0.5)*16 扩充课时 FROM
course
当接纳表达式时,各个字段类型将活动举行转移:SELECT title AS 课程,units
AS 学分,depa_no AS 大学数码,units+depa_no AS 课时加大学编号 FROM
course
表达式中连无求要出现字段,可以由指定值组成表达式:SELECT “课程音讯”
AS 表达,title AS 课程,course_no AS 课程编号,units 学分 FROM course
返回:说明   课程   ……
学科信息 高等数学 ……
课音信 芬兰语   ……

5、运ORDER BY对结果排序
按学号升序:SELECT * FROM student ORDER BY school_no
优先随学号再比如学科:SELECT * FROM grade ORDER BY student_schoo_no,
course_no
升序:ASC,降序:DESC,默认为升序。
SELECT * FROM grade ORDER BY student_school_no, course_no DESC
SELECT * FROM grade ORDER BY student_school_no ASC, course_no DESC
SELECT student_school_no AS 学号,course_no AS 课程编号,grade AS
成绩 FROM grade ORDER BY 学号 ASC,课和数码 DESC
免序字段为可以是字符型:SELECT * FROM student ORDER BY name

7、限定重临结果进行
SELECT * FROM student ORDER BY school_no LIMIT 2,5
LIMT的率先独参数表示初步实践之偏移量,0吗第一执;第二单整数表示假设重临的行数。
简单的讲表示从今第一举办起首:SELECT * FROM student ORDER BY school_no LIMIT
5
否只是使用row_count OFFSET offset格式指定
SELECT * FROM student ORDER BY school_no LIMIT 5 OFFSET 2
从2开始,返回5行

8、使用DISTINCT消除再复行
SELECT DISTINCT student_school_no FROM grade WHERE term =
‘2005-2006-1’
与多处在字段时唯有当两只字段都一致是才看是双重的
SELECT DISTINCT student_schoo_no, course_no, term FROM grade

第二、WHERE条件子句

1、基本子句:SELECT * FROM student WHERE student_no =
‘200503001008’

2、使用AND、OR和NOT   优先级NOT>AND>OR
SELECT * FROM grade WHERE student_school_no=‘200503001008’AND
course_no=‘1001’
SELECT * FROM grade WHERE student_school_no=‘200503001008’ AND
(course_no =‘1001’ OR course_no=‘1005’)
SELECT * FROM grade WHERE NOT student_school_no=‘200503001008’

3、用相比运算符 SELECT * FROM grade WHERE course_no=‘110101’AND grade>80
SELECT * FROM grade WHERE grade<90 AND grade>=80
正如运算符用于相比字符串时,默认处境下未分轻重缓急写:
SELECT * FROM department WHERE no>‘07’

4、使用BETWEEN AND运算符
BETWEEN AND运算符的功效类似于以满意<=和>=。
例:SELECT * FROM grade WHERE grade BETWEEN 80 AND 90
而拿NOT与BETWEEN AND联合利用,效率也 < 或者 > 。
SELECT * FROM grade WHERE grade NOT BETWEEN 80 AND 90

5、招来空值IS NULL
判断值是否为空,是即使归TRUE,否则回FALSE。IS NOT NULL相反。
SELECT * FROM student WHERE phone IS NULL
SELECT * FROM student WHERE email IS NOT NULL

6、使用用LIKE关键字
通配符:“%”表示零个或两只随机字符,“_”表示任意单个字符。
SELECT * FROM grade WHERE course_no LIKE ‘110101’
SELECT * FROM student WHERE name LIKE ‘李%’
SELECT * FROM student WHERE name LIKE ‘李_’?
SELECT * FROM student WHERE school_no LIKE ‘2005%12’
SELECT * FROM student WHERE name LIKE ‘李_’AND school_no LIKE
‘2005%12’AND email LIKE ‘x%sohu.com’
能够以NOT关键字与LIKE同时采取
SELECT * FROM student WHERE name NOT LIKE ‘李%’

7、使用IN列表
IN关键字提供一个可选的列表,在列表中出现的价值均上视为知足条件的价。
SELECT * FROM ‘course’WHERE depa_no IN(‘11’, ‘13’, ‘15’)
啊得将IN与NOT运算符联合使用
SELECT * FROM ‘course’WHERE depa_no NOT IN(‘11’,‘13’)

老三、使用中函数

CONCAT()拿多独字符串连接成一个字符串。
SELECT name AS 姓名,school_no AS 学号,CONCAT(province,city,address)
AS 家庭住址,address FROM student
SELECT CONCAT(name, ‘/’,school_no, ‘/’,CONCAT(province,city,address))
AS 家庭住址 FROM student

应用中函数时若小心
 函数的拍卖就影响客户端重返的结果,而非相会潜移默化数据库被的本来数。
 所在内闻函数在运时,函数号称与符号、符号和参数之间未克发空格。
 对于字符串函数,字符串中字符的职务序号由1始发,第一独字符的职位是1。

1、字符串处理函数 询问所有以c、x、y起初,具为sohu.com邮箱的学习者:select * from student
where substring(email,1,1) in (‘c’, ‘x’, ‘y’) and email like
‘%@sohu.com’
以邮箱名和继缀分开显示:select name as 姓名,substring_index(email,
‘@’,1) as
邮箱名称,substring_index(email,
‘@’,-1) as 邮箱后缀 from student
询问所有名字吧零星独字的学员
select * from student where char_length(name)=2

2、日子以及日处理函数
select school_no as 学号,grade as 成绩,data(submit_time) as 登记日期
from grade
得服务器即岁月,并因YYYYMMDD格局显示
select date_format(now(),‘%Y%m%d’)

3、数值处理函数

4、正如函数
GREATEST(exp1,exp2,…)重临最大值
LEAST(exp1,exp2,…) 重返最小值

季、聚合函数及记录分组

1、聚合函数 查询有学生110101课的平均成绩
SELECT AVG(grade) AS 平均成绩 FROM grade WHERE course_no=‘110101’
查询学生吃应用sohu.com邮箱的人头
SELECT COUNT(*) FROM student WHERE
substring_index(email,‘@’,-1)=‘sohu.com’
查询110101科目最高成绩
SELECT MAX(grade) AS 最高战绩 FROM grade
询问110101科目最低成绩
SELECT MIN(grade) AS 最低战绩 FROM grade
请所有学员110101课的总战绩
SELECT SUM(grade) AS 总成绩 FROM grade WHERE course_no=‘110101’

2、下GROUP BY对记录分组
查询2005-2006-1学期各学科的平均成绩
/*课编号必须含有在GROUP BY子句被,可以采用别名*/
SELECT course_no AS 课程编号,AVG(grade) AS 平均成绩 ROM grade
HWERE term=‘2005-2006-1’ GROP BY 课程编号
询问各学期各学科的平分战绩
SELECT course_no AS 课程编号,term AS 学期,AVG(grade) AS 平均战绩
FROM grade GROUP BY course_no,term
/*course_no和term必须带有在group by 子句被*/

3、HAVING子句 对GROUP
BY子句分组拿到的各一样组举行限。只可以和SELECT一起用。当不应用GROUP
BY时,和WHERE子句效果一样。
询问2005-2006-1学期平均成绩超越80的持有课程
SELECT course_no AS 课程编号,AVG(grade) AS 平均战绩 FROM grade
WHERE term=‘2005-2006-1’GROUP BY course_no HAVING AVG(grade)>80

五、多表联合查询

1、FROM子句被的多表联合查询
SELECT grade.*, student.*, course.*
FROM grade, student, course
WHERE grade.student_school_no = student.school_no
AND grade.course_no = course.course_no
ORDER BY grade.course_no, grade.student_school_no
好吧表定义别名,定义之后在颇具引用表的地点都必用别名,否则用报错
SELECT s.name AS 姓名,s.school_no AS 学号,c.title AS 课程,
c.course_no AS 课和号码,g.grade AS 成绩   /*运表别名*/
FROM student AS s, course AS c, grade AS g
WHERE s.school_no = g.student_school_no AND c.course_no =
g.course_no
ORDER BY c.course_no ASC, g.grade DESC

2、用JOIN…ON关键字展开多表查询
内连续(INNER JOIN):最常用之一模一样栽方法,关键字INNER可省略,效果跟WHERE。
SELECT student.name AS 姓名,student.school_no AS 学号,course.title AS
课程,
course.course_no AS 课和编号,grade.grade AS 战绩  
FROM student
INNER JOIN grade ON student.school_no = grade.student_school_no
INNER JOIN course.course_no = grade.course_no
ORDER BY course.course_no ASC, grade.grade DESC
错误连接(LEFT
JOIN)从左侧表中回到所有执行,无论在此外表中有无对应行。无匹则回空
SELECT student.id, student.name AS 姓名, student.school_no AS 学号,
course.title AS 课程, course.course_no AS 课程编号,grade.grade AS
战表
FROM student
LEFT JOIN grade ON student.school_no = grade.student_school_no
LEFT JOIN course ON course.course_no = grade.course_no
ORDER BY course.course_no ASC, grade.grade DESC
右手连接(RIGHT JOIN)与LEFT JOIN类似,从右边表中挑选有记录
接力连接(CROSS JOIN)在mysql中以及INNER
JOIN结果同样。而以正规SQL语言中双方不同

六、子查询

1、FROM子句子被的子查询

2、WHERE子句被之子查询

3、INSERT、UPDATE和DELETE语句被之子查询

4、IN列表中的子查询

5、EXISTS关键子中的子查询
EXISTS用于判断子查询再次来到的结果集中是否是记录。

七、使用UNION关键字

以大半只单身的询问结果集组合呢一个完好无损的结果集。被整合的六个查询必须备同等的列数,并且对应列需要发出十分的数据类型。
select * from grade where course_no = ‘0100101’
UNION
select * from grade_1992_2000 where course_no = ‘0100101’

任何一样栽用法是以清单和统计组合在一起
select …… from …… where ……
UNION
select …… from …… where ……

八、跨数据库连合查询 经过选取“.”连接表名来引用不同数据库的表明
SELECT tc.*, tu.* FROM teaching_sys.course AS tc, user.user_info AS
tu

03 视图、存储过程、触发器

一、视图

1、创视图
CREATE VIEW view_exist_grade_student
AS
select * from student
where exists(select * from grade where student_school_no =
student.school_no)

2、改视图
ALTER VIEW view_name [column1,……columnN]
AS
select_statement

3、删除视图 DROP VIEW [IF EXISTS]
view_name [, view_name]

4、应用视图
诚如景色下视图只发查询用,使用方法和使用表的方法同样

次、存储过程简介

用SQL语句和进程控制语句编写的程序,存储于数据库服务器上,可以由用户直接或直接进得调用。具有以下优点:
提升效率
而是重用性
可维护性

PHP中mysql扩张库不协理针对存储过程重回结果集的处理,所以接纳mysqli扩张调用。

设采取一般的操作方法使休拔取储存过程,则插入多长时间记下时,需要循环为数据库发送SQL语句,每一趟插入一长达记下。而存储过程仅需要跟数据库举行同样蹩脚通信就只是插入多长记下。有利于提高效能,降低资源消耗。

三、MySQL5 触发器

大凡数据库服务器中与申相关的一定存储过程,当表上有相关事件不时自动执行。例如,当为表中插数据时,自动举行中用检查、对插入值自动测算等等。

支撑三栽档次的点事件
INSERT事件:当为表中插记录时点执行触发程序。
UPDATE事件:当更新表中记录时接触执行触发程序。
DELETED事件:当去表中记录时接触执行触发程序。

对触发程序执行时间,协理以下简单连串型
BEFORE:在点该触发程序的讲话在此之前实施。
AFTER: 在触及该触发程序的口舌之后执行。

相关文章