您的位置:首页 > 数据库 > MySQL

数据库的基础知识学习笔记(用的是wampserver中的mysql数据库)

2016-11-02 17:04 671 查看
子查询: 子查询指的是出现在其他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";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: