mysql基础4

– 多表操作一对一
create table person (
id int primary key auto_increment,
name varchar(20)
);
create table card(
id int primary key auto_increment,
number varchar(20) unique not null,
pid int unique,
constraint cp_fk1 foreign key(pid) references person(id)
);

– 多表操作一对多
create table user(
id int primary key auto_increment,
name varchar(20)
);
create table orderlist(
id int primary key auto_increment,
number varchar(20),
uid int,
constraint ou_fk1 foreign key(uid) references user(id)
);

– 多表操作多对多 需要第三张中间表 中间表的列作为外键关联其他表
create table student(
id int primary key auto_increment,
name varchar(20)
);
create table course(
id int primary key auto_increment,
name varchar(10)
);
create table stu_course(
id int primary key auto_increment,
sid int,
cid int,
constraint sc_fk1 foreign key(sid) references student(id),
constraint sc_fk2 foreign key(cid) references course(id)
);
– 内连接
select 列名 from 表名1 inner join 表名2 on 条件;
select 列名 from 表名1 as 别名1 inner join 表名2 as 别名2 on 条件;

– 左连接
select 列名 from 表名1 left outer join 表名2 on 条件;

– 右外连接 查询右表所有信息 以及左右表有关联的信息
select 列名 from 左表 right outer join 右表 on 关联条件;

– 子查询
select 列名 from 表名 where 列名 in (select 列名 from 表名 where 列名=值);
in 也可以是on,=

– 自关联查询
select * from 表名 as 别名1 join 表名 as 别名2 on 别名1.列名=别名2.列名;
– 视图创建
– create view 视图名称 (自定义列名可不写) as 查询语句;

– 查询视图
select * from 视图名称;
– 修改视图数据
update 视图名称 set 列名=值 where 主键列名=值;
与修改表的语法没什么区别

– 修改视图结构语法
– alter view 视图名称 (自定义列名可不写) as 查询语句;

– 存储过程
drop table if exists test_table;
create table test_table(
testDemoId int not null,
testValue varchar(255) ,
primary key(testDemoId)
);
– 修改mysql结束符为&&
– 创建一个名叫mypro的存储过程
– 创建一个变量初始值为1
– START TRANSACTION;创建一个事务 如果不创建每次循环都会新建一个事务 那样子非常慢 可能插入超时
– 进行插入循环
delimiter $$
create procedure mypro()
begin
declare i int default 1;
START TRANSACTION;
while i<1000 do
insert into test_table(testDemoId,testValue) value(i,i);
set i=i+1; – i自增
end while;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是阿信ya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值