欢迎光临散文网 会员登陆 & 注册

MySQL个人理解学习笔记cmd连接,子查询,limit,视图,触发器,储存过程【诗书画唱】

2020-08-19 13:04 作者:诗书画唱  | 我要投稿

个人总结的创建触发器的语法理解翻译:
create trigger(创建一个触发器)  s1(触发器名)

after insert on dingdan(在(订单)表添加数据的时候触发触发器)
for each row(第三句固定的不用管,个人理解翻译:遍历每一行)
begin(开始位置)

update shangpin set sp_num=sp_num-new.sp_buynum where sp_id=new.sp_id;(触发的事件是减少商品表3瓶果粒橙,SQL语句)

end;(结束)

触发器例子题目和答案:

创建触发器,功能为:当执行“用户张三买了果粒橙3瓶添加订单”的SQL语句时,相应的商品的数量减少3瓶。


create trigger s1
after insert on dingdan
for each row
begin
update shangpin set sp_num=sp_num-new.sp_buynum where sp_id=new.sp_id;
end;
drop trigger s1


个人的总结:

一些储存过程中写的没有传的参数等的方法函数,用call来调用无参的方法时,可以“储存过程的方法名()”或“储存过程的方法名”。



cmd中启动MySQL

net start mysql

(命令开启MySQL)



登录MySQL

mysql -uroot -proot


查看数据库

show databases;



数据库:

按照数据结构来组织、存储管理数据的仓库



为什么要使用数据库?

1.查找数据方便

2.节省空间



卸载mysql没有卸载完成

1.控制面板卸载mysql服务

2.文件保存目录删掉

3.隐藏mysql目录也要删




MySQL的数据类型:

int:整形 

varchar():字符串

boolean:是否

text:大文本

timestamp:时间戳

bolb:二进制

mysql约束:  

唯一:unique  

自增约束:auto_increments  

主外键:foreign key 



外键也称为参照完整性,外键表的信息参照着主键表的信息进行设置,主键表没有的信息外键

(个人的理解:选好主表很重要,一般列名多的表为主表)




表示不能使用的非空约束:not null  

主键约束:primary key

默认值约束:default

  on delete cascade:在设置外键的时候,设置级联删除




MySQL增删改查语法:

增加数据:insert into 表名(列名1,列名2) values(值1,值2)

修改语法:update 表名 set 列名1=值1 where 条件表达式

删除语法:delete from 表名 条件表达式

删除表:drop table 表名

清空表:truncate table sss

基本查询:select * from 表名

查询指定的内容:select 列名 from 表名

列名起别名:select 列名 as 名称 from 表名

 select 列名    名称 from 表名

去除重复:select distinct name,typename from sss

简单多表查询:select * from 表1,表2 where 表1.id=表2.id



子查询分为3种“子句”

where后当条件

将查询结果当做比较条件


select * from  表名 where 列名>(select 列名 from 表名)


from后当数据源

exists后当条件

where子句:后跟一个表达式,表达式返回一个true或者false的数据

表达式可以是:

>,<,=,!=,>=,<=


between...and....


in(内容1,内容2)


like:%(匹配0到任意个字符数据)    _(代表一个字符)


&&,||,and,or,is not null,is null 


order by:

排序....默认是升序(ASC) 倒序(DESC)


select top 3 from sp


limit后可以跟1个或者两个数字,

跟1个数字的时候是从0到第几条数据。

跟两个的时候就是从第一个参数开始的位置查询第二个参数的个数。


个人的理解:

SQL语句结尾加limit 1,表示取第1条数据.



SQL语句结尾加limit1,6表示取第1条到数据到第6条数据。



分组:

group..by..:按照某种特征将其分为一组,分组一定要和聚合函数

一起使用,否则分组没有意义

having:过滤条件,在进行分组后进行条件过滤

视图:视图是由查询结果定义的一张虚拟表


视图的作用:

1.使用视图可以简化查询

2.可以进行权限控制

3.大数据分表时可以使用


创建视图的语法:

create view 视图名 as sql 语句

对于视图的修改:

修改表的源数据是可以改变视图的内容的,但是修改视图的内容不一定会。



影响表的源数据,如果视图是多个列计算的结果的时候是不会影响的,只有视图的

结果是指定源数据是那一列才会该表源数据的内容。





触发器的概念:

触发器是与表有关的数据库对象,在满足定义条件时触发,

并执行触发器中定义的语句集合。


一般是在进行增删改表的时候触发。



触发器语法:

create   trigger  触发器名称

after insert/update/delete  on  那张表添加触发器

for each row    //固定死的不用管

begin //开始

触发的sql语句事件;

end;




存储过程:

1.可以完成比较复杂的运算

2.SQL编程的代码可重复使用


3.执行的速度相对快一些

  (每次写的sql语句数据库会将其编译成函数,

存储过程数据库只会编译一次之后下次用的时候就不会再编译了) 




存储过程语法:

create procedure 存储过程名字(先写参数,后写类型)

begin

做存储过程的sql语句

if(条件表达式)then

内容1

else

内容2

end if(可变可无等的部分)

end;


MySQL个人理解学习笔记cmd连接,子查询,limit,视图,触发器,储存过程【诗书画唱】的评论 (共 条)

分享到微博请遵守国家法律