一些mysql的基础 记录一下 以免忘记
这里我推荐使用 xampp 与 heidisql 工具
-- 注释(含空格) 据我的测试'#'也可以
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;
没有特殊问题的话 会输出下面的内容
#修改条件为 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的引擎有innodb与myisam。
暂未写完……