一.数据库基本操作
创建数据库 :create database 数据库名;
删除数据库:create database 数据库名;
创建表:create table 表明(
列名 nvarchar(50) primary key,--编号,主键等
)
删除表:drop table 表名
添加数据:insert into 表名 values(列里的数据)
自定义添加数据:insert into 表名(列名) values (列数据)
修改数据:update 表名 set 列=数据 where 列名=数据
update 表名 set 列=null where 列名=数据
查询数据:select * from 表名
二.存储过程是一组预编译的sql语句
优点:1.允许模块化,创建一次,以后可以任意执行
2.执行速度快,如果需要大量执行重复sql,那么存储过程就把执行sql语句要快
3.减少网络流量,大量的sql执行会损坏很多流量,如果用一组存储过程就减少网络流量
4,安全机制,没有权限执行存储过程的用户,也可以授权给他们执行
create pro 存储过程名
as
select * from 表名1
select * from 表名2
go
执行存储过程用execute 或者exec
三.视图:一张虚拟的表,关键字是view
drop view dbo_c --删除视图
create view dbo_c --创建视图
as
select ct.cust_id,ct.cust_name from cm_vk_customer ct
inner join cm_vk_custattr tr
on ct.cust_id=tr.cust_id
where ct.cust_id is not null
select * from dbo_c --查询视图
视图的作用:1.隐藏了底层表结构,简化数据库操作
2.提供统一访问数据接口
3.安全性高,让用户看到了自己想看到的数据
4.视图还可以嵌套一个视图
四.索引
1.唯一索引
CREATE UNIQUE INDEX 索引名称 ON 表名称 (列名称)
2简单索引
CREATE INDEX 索引名称 ON 表名称 (列名称)
五.触发器
触发器本质是一个存储过程 ,关键字(trigger)对一个表执行增删改操作就会激活触发器(不是手动执行,也不是程序执行,是由事件触发),也就是一种预操作,
自动执行的存储过程,同时具备事务的功能,要么全部成功,要么全部失败!
create or replace trigger tr_emp --定义触发器
before delete --执行时间
on cm_vk_customer --在emp_bak表中
for each row -- 行级删除
begin
--:old 操作前的数据 :new 是操作后的数据
-- insert into emp_copy values(:old.empno,:old.ename,:old.job,:old.mgr,:old.hiredate,:old.sal,:old.comm,:old.deptno);
delete from cm_vk_customer cust where cust.cust_id='2'
end;
commit
delete from cm_vk_customer cust where cust.cust_id='1'