子查询: 子查询指的是出现在其他SQL语句中的select语句!(注意:子查询必须出现在小括号内,外层可以是select,update,delete,insert等语句)
引起子查询主要有:比较运算符可以引发子查询,in 和 not in 也可以引起子查询
连接:连接两张或者两张以上的表进行的连接(也包括自身和自身的链接)
自定义函数:自定义函数是对mysql数据库的一种扩展,语法如下:
创建新函数:
Create function function_name(参数列表)
returns返回值类型
函数体内容
条件:参数可以有零个或多个,返回只能有一个!
例子:
创建函数
delimiter //
create function hello()
returns varchar(255)
begin
return 'hello world'
end //
调用函数
select hello() //
删除函数
drop function hello //
delimiter //表示修改语句的结束符,默认是以分号(;)表示一条语句的结束,这里修改为以//表示语句的结束
创建存储过程可以使用(IN OUT(@变量名 用户变量))
delimiter //
create procedure haha(IN a int unsigned)
begin
delete from t_goods where id = a;
end
//
调用存储过程可以使用
delimiter ; 这条命令只是将结束符变成默认的分号,也可以不变,如果不变就用//表示语句结束
call haha(1);表示删除id为1的字段
注意:倘若你将上面创建存储过程的a变量改成与字段相同的名字,即将a变成id,你将会删除表中所有的字段,所以
要避免变量与字段重名!
删除存储过程可以使用下面这条命令
drop procedure haha;
存储过程与自定义函数的区别:
一】存储过程实现的功能要复杂一些,而函数的针对性更强
二】存储过程可以返回多个值,而函数只能返回一个值
三】存储过程一般独立地来执行,而函数可以作为其他SQL语句的组成部分来出现
存储过程和创建自定义函数总结 :
一】创建存储过程或者自定义函数时要通过delimiter语句修改定界符
二】如果函数体或者过程体有多个语句,需要包含在BEGIN......END语句块中
三】存储过程要通过CALL来调用
命令行修改mysql密码:update mysql.user set password=PASSWORD('新密码') where User='root';
flush privileges;
执行完这两条命令之后,退出mysql,再次登录时就需要使用新的密码了!
修改完了mysql密码后会存在一个问题就是在你修改了密码之后 ,当你再次访问phpmyadmin时会报错,这是因为你将mysql密码改变了,但是配置文件没有改动,解决的办法也很简单:
进入wampserver的apps/phpmyadmin4.1.14目录下,进入里面的config.inc.php文件,修改下面的两部分,然后重启服务再次登录phpmyadmin时就没有问题了!
我个人使用wamp的mysql时抛出了mysql的一个错误问题:抛出的错误是:Access denied for user'root'@'localhost' to database 'mysql' 解决的办法很简单:因为我自己为了省事,就没有特地下载mysql,直接将wamp的mysql配置到了环境变量中,然后再cmd里面登陆时直接输入mysql将不会具有root权限,你只要在cmd登陆mysql时,用完整的登陆命令即可,即:mysql -u root -p "your password";