SQL学习
来源:互联网 发布:网络视频广告投放 编辑:程序博客网 时间:2024/04/30 11:29
1,创建标识列:mysql==>auto_increment (创建表的时候在需要加标识的那一列加上这个关键字就可以了)
比如:create table student(
id int auto_increment not null primary key,
name varchar(20) not null,
sex varchar(4),
age int
);
oracle==>create sequence S_Test increment by 1 start with 1 (然后使用的时候就在添加数据的时候写上:S_Test .nextval)
2,事务:一组数据库操作组合,同时成功同时失败 (关键字:transaction @@errpr)
小明找小红借4000块的列子
declare @myerror int - -累计多个操作的错误编号
set @myerror =0 (单个赋值用set多个赋值用select)
begin transaction - -开启事务
update bank set umoney=umoney-4000 where uname='小红' (小红扣掉4000块)
set @myerror=@myerror+@@error
update bank set umoney=umoney+4000 where uname='小明'(小明获得4000块)
set @myerror=@myerror+@@error
if(@myerror=0)
commit transaction - -提交事务
else
rollback transaction - -回滚事务
事务的特性:原子性、一致性、隔离性、永久性。
3,视图:在数据库端存储的select语句,相当于一个虚拟表(对敏感数据进行隐藏)
语法:create view 视图名
as
select 语句
4,索引:主键索引、唯一索引、聚集索引、非聚集索引。
查询多的建索引,修改频繁的不建议使用索引,因为在数据改变的时候,数据库要去维护索引内容。
5,存储过程:相当于java中的方法,它是存储在数据库端的一组操作集合。
优点:更高的效率,更安全,更节省流量(代码简洁,不需要发送过多的sql语句给数据库服务器),封装更好,更容易代码的重用
语法:create procedure 名字
@参数名 数据类型 参数类型
。。。。。。
as
begin
操作sql
end
修改存储过程的语法与创建一样,只是将create关键字改成alter
情况:无参无返,有参无返,无参有返,有参有返
例子:(有参有返)
create proc proc_count
@lab int,
@written int,
@count int output - -用来制定输出参数(返回值)
as
begin
select * from stuinfo where stuno in (select stuno from stuexam where labexam<@lab or writtenexam<@written) - -这个查询结果不算有返
select @count=count(*) from stuexam
end
declate @num int
exec proc_count 40,40,@num output - -接收输出参数的时候也必须制定output关键字
print ‘参加考试人数:’+convert(varchar(2),@num)
- 【SQL】SQL学习备注
- sql学习
- sql学习
- SQL学习
- sql学习
- sql学习
- 《 sql。。。。》学习。。。
- sql学习
- SQL学习
- sql学习
- SQL学习
- sql 学习
- SQL学习
- SQL学习
- SQL学习
- sql学习
- SQL学习
- sql学习
- 禁止浏览器自动填充到表单
- 简单工厂模式和工厂方法模式适用场景
- Chrome调试合成jsp页面js代码
- jsp页面获取session中的值
- logstash5.0版本之后导入es数据指定ik分词器详解
- SQL学习
- ThinkPHP3.2.3将session放置到指定文件夹中
- Java关于23种设计模式的有趣见解
- 3-6 静态数据成员与静态成员函数
- git cherry-pick. 如何把已经提交的commit, 从一个分支放到另一个分支
- CSS属性大全
- 打通微信(一)
- Github年度百大框架排行榜
- 顺势回落、卷土重来