数据库的基础知识学习笔记(用的是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";
引起子查询主要有:比较运算符可以引发子查询,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";
相关文章推荐
- JavaWeb学习笔记-MySQL数据库基础知识
- Mysql数据库学习 (三) 数据库基础知识
- C++数据库操作学习笔记:ADO基础知识
- MySQL数据库学习01-数据库基础知识和MySQL简介
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.11Java数据库操作(4.11.1-4.11.8)
- MySQL学习笔记1——数据库与MySQL基础知识
- SQL的详细语法介绍——对于学习数据库最基础知识一
- 《JAVA2核心技术 卷一 基础知识(原书第七版)》《Core java2,Volume I-Fondamentsls Seven Edition》 学习笔记(一)
- C/C++ 基础知识学习笔记 (不断更新中)
- java学习笔记,关于java的一些基础知识,适用于初学者,第一节
- C++学习笔记(一)--基础知识sizeof用法
- Linq学习笔记1(基础知识)
- fedora学习笔记 1:fedora与linux的一点基础知识
- 《JAVA2核心技术 卷一 基础知识(原书第七版)》《Core java2,Volume I-Fondamentsls Seven Edition》 学习笔记(二)BREAK和CONTINUE的区别
- 有关AutoCompleteBox组件的研究[1]_基础知识——Silverlight学习笔记[36]
- 《精通CSS:高级Web标准解决方案》学习笔记之一:基础知识
- 基础知识--Css学习笔记(一)
- 一句话学习数据库基础知识
- 摄影基础知识学习笔记之光与色:白平衡 - 水中沙 - 博客大巴
- extjs 学习笔记(一) 一些基础知识