数据库基本操作(创建表和添加触发器)

简述:

复习一下数据库基本操作创建表和触发器


1. 创建一张表

注意: 一个表只能有一个PRIMARY KEY

例如下面我加了两个primary key

create table table1(
id1 int primary key,
id2 int primary key,
name varchar(8)
);
就会出现,下面错误,因为只能有一个主键primary key


如果想创建联合主键,就需要使用关键字constraint

create table table1(
id1 int,
id2 int,
name varchar(8),
constraint table_id1_id2_primarykey primary key(id1, id2)
);
之后调用

describe table1;
查看表信息,



上面是建表的样例,下面的person是一个实用的表

新建了一个人的表

create table person(
id int NOT NULL AUTO_INCREMENT primary key,
name varchar(8) not null,
sex bit,
age int check(age > 0 and age < 200),
addr varchar(100) default '' not null
);
之后 插入了一条数据,
insert into person(name, sex, age, addr) values('Jeremy', 1, 20, 'SH');

输出:


2. 建一个触发器TRIGGER

实现每一次在上面Person表中添加一条记录,之后都可修改countPerson表中人员的总数+1

新建countPerson表以及插入初始值totalNum = 0

drop table if exists countPerson;
create table countPerson(
totalnum int default 0
);
insert into countPerson(totalnum) values(0);

创建触发器TIRGGER
DROP TRIGGER IF EXISTS insertTrigger;
delimiter //
CREATE TRIGGER insertTrigger
AFTER INSERT ON person
FOR EACH ROW
BEGIN
  update countPerson set totalNum = totalNum + 1;
END;//


测试(从头开始走一遍流程):

1)创建Person表:

drop table person;
create table person(
id int NOT NULL AUTO_INCREMENT primary key,
name varchar(8) not null,
sex bit,
age int check(age > 0 and age < 200),
addr varchar(100) default '' not null
);
select * from person;
此时Person表为空


2)创建countPerson表

drop table if exists countPerson;
create table countPerson(
totalnum int default 0
);
insert into countPerson(totalnum) values(0);
select * from countPerson;

此时初始totalNum = 0


3) 创建触发器

DROP TRIGGER IF EXISTS insertTrigger;
delimiter //
CREATE TRIGGER insertTrigger
AFTER INSERT ON person
FOR EACH ROW
BEGIN
  update countPerson set totalNum = totalNum + 1;
END;//

4)在Person表中添加记录insert
insert into person(name, sex, age, addr) values('Jeremy', 1, 20, 'SH');
insert into person(name, sex, age, addr) values('Hellon', 1, 22, 'SH');
select * from person;
此时Person表中记录如下,


5)看一下触发器有没有起作用

select * from countPerson;

发现有作用了。


附:

此外使用下面语句可以看到数据库的触发器信息

SELECT * FROM information_schema.`TRIGGERS`;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值