-- 1. 内连接select 所需内容 from 表1innerjoin 表2on 条件
where 条件;-- 2.自身连接**查询信息为同一张表****必须为两个表取别名**
例子:查询与徐浩同班的其他同学信息
select s1.code,s1.name from student s1,student s2
where s1.class = s2.class and
s2.name ='徐浩'and s1.name !='徐浩'orderby s1.name;
六、子查询语句
-- 1.各种子查询多值比较运算符[not]in,[not]existsany,all必须与比较运算符结合使用
-- 例:查询比子查询结果中所有值都大select 内容 from 表名 where 列名 >all(子查询);-- 比任一结果大select 内容 from 表名 where 列名 >any(子查询);
七、索引
-- 1.创建索引create[unique]indexon 表名(列名);-- 2.查看索引showindexfrom 表名;-- 3.删除索引dropindex 索引名 on 表名;
-- 创建存储过程delimiter $$
createprocedure 名字 (in 输入参数名 数据类型,in 输入参数名 数据类型···
out 输出参数名 数据类型
)BEGINEND$$
delimiter;-- 删除存储过程dropprocedure 名字;-- 存储过程的异常处理,定义要放在declare的最后declarecontinue|exithandlerfor
SQLWARNING -- 值从01开始的sqlstate|NOT FOUND -- 值从02开始的sqlstate|SQLEXCEPTION --值不为00,01,02开始的其他sqlstate
或者直接在ifthen语句后写
signal sqlstate ' 'set message_txt ='异常';
十二、触发器
-- 创建触发器delimiter $$
createtrigger 名字
before|afterinsert|update|deleteon 表名
for each rowBEGIN-- new代表更新操作的新行,old代表刚修改的历史行,使用new.和old.END $$
delimiter;-- 删除触发器droptrigger 名字;
十三、游标
1.声明游标
declare 游标名 cursorforselect语句
2.打开游标
open 游标名
3.提取数据
fetch 游标名 into 变量名
4.关闭游标
close 游标名
十四、授权
1. 角色授权
grantconnect|Resource|DBA to 用户 identified by 口令
2.角色取消
revoke<角色管理>from 用户
3.数据库对象授权
grantallprivileges|select|delete|insert|updateon 表名 to 用户
withgrantoption;
其中allprivileges为所有权限
withgrantoption表示得到授权的用户可将其获得的权限转移给其他用户。
4.取消数据库对象授权
revoke 权限 on 表名 from 用户
5.授予mysql存储程序级别权限
grant 权限名称 onfunction|procedure 数据库名.函数名|数据库名.存储过程名
to 用户 withgrantoption;6.授予mysql数据库级别权限
grant 权限名 on 数据库名.*to 用户 withgrantoption;7.授予mysql服务器管理员级别权限
grant 权限名 on*.*to 用户 withgrantoption;8.撤销所有权限
revokeallprivileges,grantoptionfrom 用户
9.撤销指定权限
revoke 权限名 on*.*|数据库名.*|数据库名.表名或视图名 from 用户