运算符:
+,-,*,(/,DIV) 除法 (%,MOD)除余
= , (<>,!=)不等于
常用函数
字符串函数 cancat(s1,s2,...) 。。。。 不常用
数值函数 abs(x) 绝对值 rand() 随机数 ceil(x)大于x的整数 floor(x)小于x的整数 truncate(x,y)截断x为y位小数的数 不四舍五入
日期函数 curdate() 当前日期 curtime() 当前时间 now() 当前日期和时间 时间间隔的函数
索引
创建 create index cityname on city(city(10)) 创建city表中的city字段十个字节的前缀索引
删除 drop index cityname on city
InnoDB 与MyISAM都是用的BTREE索引算法
视图
(优势:根据原表的数据筛选出根据业务需求所得到的一份副本,与原数据独立,保护数据完整性)
需要create view权限;
create [or replace]
view view_name[column_list] as [select_statement]
示范: create or replace view staff_list_view as select s.staff_id,s.first_name,s.last_name ,a.address from staff as s,address as a where s.address_id = a.address_id;
修改 alter ... view ... 同上
注意: 有些视图是不可以更新的
1.聚合函数 [SUM,MIN,MAX,COUNT] ,GROUP BY,HAVING,UNION
2.常量视图
3.select包含子查询
4.JION
5.FROM一个不能更新的视图
6.WHERE 的子查询引用了FROM的表
更新视图 update view_name set xxx where xxx;
删除视图 drop view [if exists] view_name;
查看视图 show tables; show table status like '表或视图名‘; show create view view_name 视图的定义
存储过程
作用:减少数据在数据库和应用服务器之间的传输,提高数据处理效率。无返回值,参数类型 IN OUT INOUT 与函数区别 函数有返回值,参数类型 IN
权限 create routine 权限,alter routine 权限 ,execute 权限
语法:存储过程 create procedure sp_name (IN|OUT|INOUT]
[characteristic] routine_body
[characteristic] : reads SQL data 读写权限
示范:
delimiter $$
create procedure film_in_stock(IN p_film_id int ,In p_store_id int,OUT p_film_count int)
reads SQL DATA
begin
select inventory_id from invoutory where film_id = p_film_id and store_id = p_store_id and inventory_in_stock(inventory_id);
select FOUND_ROWS() into p_film_count;
end $$
delimiter ;
函数: create function sp_name (...)
return type
[characteristic] routine_body
调用过程: call sp_name (...);
触发器:
创建: create trigger trigger_name [before|after] trigger_event
on [table_name] for each row trigger_stmt
事务控制,锁定语句:
lock tables talbe_name [as alias] { read[local] | [LOW_PRIORITY] WRITE }
unlock tables
start tranaction |begin [work] 开始事务
commit [work] 提交
rollback 回滚
set autocommit={0|1} 0需要指令执行
保存节点
savepoint test;
rollback to savepoint test;