mySQL的基础学习

来源:互联网 发布:网络兼职是什么意思 编辑:程序博客网 时间:2024/05/23 14:47

  一些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;# 左链接把右边的表向左边的表对齐查询 没有就补nullselect * from t1 left join t2 on t1.id=t2.id;# 同上即右向左 没有就补nullselect * from t1 right join t2 on t1.id=t2.id;# 查询符合条件 一方为null都不行select * from t1 inner join t2 on t1.id=t2.id;


其它知识

SQL的引擎有innodbmyisam


暂未写完……

原创粉丝点击