1.stu_age smallint unsigned not null
<1>:smallint 指的是无符号,都是正数。
<2>:not null表示该字段允许为空值。
2创建student表
.
向表中插入:
创建成绩表:
向成绩表中插入
(1)查询所有学生的成绩
或者select t.stu_id,t.stu_name,t.stu_age,t.stu_sex,g.stu_score from student t inner join grade g on t.stu_id=g.syu_id;
(2)查找某位学生的成绩
(3)匹配原则:
ike要求整个数据都要匹配,regexp只需要部分匹配即可,用like必须这个字段的所有内容满足条件,而regexp只需要任何一个片段满足。
找出以b开头的名字:select * from pet where name like "b%";
找出以fy结尾的名字:select * from pet where name like "%fy";
找出包含w的名字:select * from pet where name like "%w%";
regexp和 not regexp匹配:
找出以“b”开头的名字,使用“^”匹配名字的开始并且“[bB]”匹配小写或大写的“b”:
select * from pet where name regexp "^[bB]";
找出以“fy”结尾的名字,使用“”匹配名字的结尾:select∗frompetnameregexp"fy”匹配名字的结尾:select∗frompetnameregexp"fy";
[^……],匹配不包含在[]的字符,如查询出除了w/z/s开头之外的人名
select name from 表名 where name regexp '^[^wzs]'; |
为了找出包含正好5个字符的名字,使用“^”和“$”匹配名字的开始和结尾,和5个“.”实例在两者之间:
SELECT * FROM pet WHERE name REGEXP '^.....$';
或者select * from pet where name regexp '^.{5}$';
匹配abc任意一个
select * from pet where name regexp ‘[abc]’;
(4)限制一行
(5)匹配查询 查询出以n为结尾的数据
(5)匹配查询 查询出以y为开头的数据
(6)匹配查询 查询出以y为开头的数据
(7)匹配查询 查询出以n为结尾的数据
(8)使用正则表达式进行查询
(9)触发器(trigger)是由事件来触发某个操作
当学生表中增加了一个学生的信息时,学生的总数就必须同时改变。可以在这里创建一个触发器,每次增加一个学生的记录,就执行一次计算学生总数的操作。这样就可以保证每次增加学生的记录后,学生总数是与记录数是一致的。触发器触发的执行语句可能只有一个,也可能有多个。
创建只有一个执行语句的触发器:
create trigger 触发器名 before| after 触发事件 on 表名 for each row 执行语句;
创建多个执行语句的触发器:
create trigger 触发器名 before|after 触发事件 on 表名 for each row begin 执行语句列表 end;