MySQL学习笔记(上)

在进行SQL注入原理的剖析的时候,对MySQL数据库掌握薄弱,参照菜鸟教程的MySQL教程速刷一遍MySQL

关于MySQL

MySQL是最流行的关系型数据库管理系统,在WEB方面MySQL是最好的RDBMS应用软件之一。(RDBMS Relational Database Mangagement System:关系数据库管理软件)

什么是数据库、关键词等……

……(拒绝无意义的复制粘贴,传送门)

PHP脚本操作数据库用法 连接MySQL

使用mysqli_connect()函数来连接数据库;
mysqli_connect(host, username, password, dbname, port, socket)

参数 描述
host   可选。主机名或ip地址  
username   可选。MySQL用户名  
password   可选。MySQL密码  
dbname   可选。使用的数据库  
port   可选。尝试连接到MySQL服务器的端口号  
socket   可选。规定socket或要使用的已命名的pipe  

使用mysqli_close()函数可以断开与MySQL数据库的链接,但一般并不需要,因为已打开的非持久连接会在脚本执行完毕后自动关闭。

<?php $dbhost = 'localhost'; // mysql服务器主机地址 $dbuser = 'root'; // mysql用户名 $dbpass = '123456'; // mysql用户名密码 $conn = mysqli_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysqli_error()); } echo '数据库连接成功!'; mysqli_close($conn); ?> 创建数据库

CREATE DATABASE 数据库名;

在PHP脚本中使用mysqli_query()函数来创建或删除数据库;
mysqli_query(connection, query, resultmode);

参数 描述
connection   必需。规定要使用的MySQL连接  
query   必需。规定要查询的字符串  
resultmode   可选。一个常量,可以为:MYSQLI_USE_RESULT(如果需要检索大量数据,使用这个)MYSQLI_STORE_RESULT(默认)  

创建数据库实例:

<?php $dbhost = 'localhost'; $dbuname = 'root'; $dbpasswd = 'root'; $conn = mysqli_connect($dbhost,$dbuname,$dbpasswd); if(!$conn) { die('Could not connect :'.mysqli_error()); } echo 'Successfully!!'; $sql = 'CREATE DATABASE RUNOOB'; $retval = mysqli_query($conn,$sql); if(! $retval) { die('Failing to create databse!').mysqli_error($conn); } echo "<br>Successfully to create the database<br>"; mysqli_close($conn); ?>

发现在数据库的名字是部分大小写的,一律小写,创建时的语句是大写,查看的时候发现数据库的名字都是小写。

删除数据库

在在MySQL的命令行下,使用drop命令
drop database <数据库名>

类同,在PHP脚本中,主要还是通过前面介绍过的mysqli_query()函数来执行一个SQL语句。

所以我们可以这样......

<?php $dbhost = 'localhost'; $dbuname = 'root'; $dbpasswd = 'root'; $conn = mysqli_connect($dbhost,$dbuname,$dbpasswd); if(!$conn) { die('Could not connect :'.mysqli_error()); } echo 'Successfully!!'; $sql = 'DROP DATABASE RUNOOB'; $retval = mysqli_query($conn,$sql); if(! $retval) { die('Failing to DROP databse!').mysqli_error($conn); } echo "<br>Successfully to DROP the database<br>"; mysqli_close($conn); ?> 选择数据库

当我们有很多数据库需要管理的时候,面临复杂的业务时,来回切换数据库必不可少。

在命令行中,一条命令use 数据库名称便可以切换数据库,此时……我看到了一句话……

注意:所有的数据库名,表名,表字段都是区分大小写的。所以你在使用SQL命令时需要输入正确的名称。

哦??真的这么尴尬?我决定亲自试一试,首先我使用CREATE DATABASE RUNOOB成功创建了一个数据库,接着,我又使用语句CREATE DATABASE RuNOOB,结果创建失败,这间接证明了我前面数据库名不区分大小写的说法,但是黑体的说法真的错误码?其实不然,我查阅了一些资料后,得出如下结论:

MySQL在Linux下,数据库名、表名、列名、别名大小写规则是这样的:

数据库名、表名、表的别名、变量名 严格区分大小写

列名、列的别名在所有情况下均是忽略大小写

MySQL在Windows下都不区分大小写

当然,都不是一成不变的,在Linux下,消除大小写敏感通过修改配置文件/etc/my.cnf,添加lower_case_table_names = 1;Windows中,可以在MySQL配置文件中my.ini添加。参数0表示区分大小写,参数1表示不区分大小写。参考文章1
参考文章2

所以……我们到哪了?哦,选择数据库,继续;

PHP脚本使用函数mysqli_select_db()来选取一个数据库。函数成功执行后返回TRUE,否则返回FALSE;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsswpg.html