mySQL的基础学习

  一些mysql的基础 记录一下 以免忘记
这里我推荐使用 xamppheidisql 工具

-- 注释(含空格) 据我的测试'#'也可以
create database test;   -- 创建一个名为test的库
use test;   -- 打开test库
create table t1(id int,name char(10));  -- 创建一个名为t1的table

上面就是一个简单的库与表的创建。


插入数据的话应该使用

-- 这里是插入一条数据 对应上面所创建的表的参数表
insert into t1 values(1,"fox"); 

-- 如果你想插入语多条可以这么用 仅需要使用','作为分隔符即可
insert into t1(id,name) values (2,"saber"),(3,"lancer"),(4,"rider");



现在已经插入了4条数据了,我们可以查询一下

select * from t1;

没有特殊问题的话 会输出下面的内容

null

#修改条件为 id=1的name值为'archer'
update t1 set name="archer" where id=1;
#删除条件为 id=2 的记录
delete t1 where id=2;
#查询一下记录
selece * from t1;

???
成功的修改了id为1的name值,也删除了id为2的记录


触发器

 创建一个触发器,这里用两个表来做测试

# 创建第二个表 并加入数据
create table t2(id int,name char(10));
insert into t2 values(1,"a"),(2,"b"),(3,"c");

# 创建一个触发器 只要对t1表使用update 就会自动执行修改t2中id为1的name为'hello'
create trigger auto after update on t1 for each row update t2 set name="hello" where id=1;

# 这里对 t1 使用update 来触发我们编写的触发器
update t1 set name="world" where id=1;

# 查询2个表
select * from t1;
select * from t2;

 这里是执行结果
??????


事务

begin事务开始之后只要不使用commit进行提交将对原表不造成任何影响并可以使用rollback进行回滚操作,回滚操作即是回到立下begin的时的状态

use test;
begin;  #定义事务的开始
insert into t1 values(5,"jerry");
insert into t1 values(6,"tom");
update t1 set name="lisa" where id=5;
delete from t1 where id=6; 
rollback;   #进行回滚操作 即上面的操作无效
select * from t1;   #查询输出

 结果如下:操作并没成功执行
???

use test;
begin;  #定义事务的开始
insert into t1 values(5,"jerry");
insert into t1 values(6,"tom");
update t1 set name="lisa" where id=5;
delete from t1 where id=6; 
commit; #提交数据
select * from t1;   #查询输出

 结果如下:操作都成功的执行了
???

左、右、全链接

 左、右、全链接查询

use test;
# 左链接把右边的表向左边的表对齐查询 没有就补null
select * from t1 left join t2 on t1.id=t2.id;
# 同上即右向左 没有就补null
select * from t1 right join t2 on t1.id=t2.id;
# 查询符合条件 一方为null都不行
select * from t1 inner join t2 on t1.id=t2.id;


其它知识

SQL的引擎有innodbmyisam


暂未写完……

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值