在网上翻来覆去找不到一套适合新手自学的书,于是买了课,急急忙忙上完了课,又发现全还给老师了。 这一系列文放在这里,从下载软件开始,记录一条MySQL入门之旅。 新手也可以跟着这条路走,一条道走到黑。 粉丝可见,愿者上钩。 有任何疑问,参考三篇上课笔记,或者私信我。
MySQL能够识别和使用的数据值包括数值、字符串值、日期/时间值、坐标值和空值(NULL)。
SQL标准对于字符串的两端规定为单引号。
MySQL可以识别出字符串中的转义序列,这就很尴尬:
那怎么办?
首先,这表里的转义序列是区分大小写的。
从上面这个表来看,可以使用\来转义\。
也可以使用转义字符来转义字符串中的单引号和双引号。
当然,处理字符串中引号还有别的办法:
1、如果引号与字符串两端引号相同,双写该引号,如:
‘I can ’ ’ t.’
“He said,” “I can 't.” " "
2、用不同引号把该字符串包起来,如:
’ “I can’t .” ’
" He said,'I can ‘t.’ "
在默认的情况下,MySQL按照以下规则处理“数据越界”和其他非正常数据:
mysql> SET sql_ mode = ' STRICT_ALL_TABLES';
mysql> SET sql_ mode = ' STRICT_TRANS_TABLES';
走到这一步了,也该知道MySQL的执行,如果没什么特殊说明都是一个分号一句的,不过有些语句需要形成一个语句块,就像函数的那个{}一样。
在MySQL语句中,也有这样的分隔符:
触发器是与特定数据表相关联的存储过程,当相应的数据表被INSERT、DELETE 或UPDATE语句修改时,触发器将自动执行。触发器可以被设置成在这几种语句处理每个数据行之前或之后触发。触发器的定义包括一-条将在触发器被触发时执行的语句。
触发器要用CREATE TRIGGER语句来创建。在触发器的定义里需要表明它将由哪种语句(INSERT、UPDATE或DELETE)触发,是在数据行被修改之前还是之后被触发。触发器创建语句的基本语法如下所示:
CREATE TRIGGER trigger_ name # the trigger name
{BEFORE | AFTER} # when the trigger activates
{INSERT | UPDATE | DELETE } # what statement activates it
ON tbl_ name # the associated table
FOR EACH ROW trigger_ stmt; # what the trigger does
来个栗子看看:
CREATE TABLE t (percent INT, dt DATETIME);
delimiter $
CREATE TRIGGER bi_t BEFORE INSERT ON t
FOR EACH ROW BEGIN
SET NEW.dt = CURRENT TIMESTAMP;IF NEW.percent < 0 THEN
SET NEW.percent= 0;
ELSEIF NEW.percent> 100 THEN
SET NEW.percent = 100;
END IF;
ENDS
mysql> delimiter ;
关于存储程序就弄一个触发器吧。