您的位置 首页 php

数据库MYSQL学习笔记

1.安装 MySQL

$ sudo apt-get install mysql-server python-mysqldb

2.测试MySQL

mysql 安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

-> ON TUTORIALS.*

-> TO ‘root’@’ localhost

-> IDENTIFIED BY ‘123456’;

select host,user,password from mysql.user;

+———–+——+——————————————-+

| host | user | password |

+———–+——+——————————————-+

| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| localhost | fule | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

+———–+——+——————————————-+

$ sudo mysql -u root -p

Enter password:123456

SHOW DATABASES;

3 .MySQL 创建数据库

CREATE DATABASE 数据库名;

4. MySQL 删除数据库

drop database <数据库名>;

5. MySQL 选择数据库

use 数据库名;

6. My SQL 创建数据表

CREATE TABLE table_name (column_name column_type);

例:

以下例子中我们将在 RUNOOB 数据库中创建数据表runoob_tbl:

CREATE TABLE IF NOT EXISTS `runoob_tbl`(

`runoob_id` INT UNSIGNED AUTO_INCREMENT,

`runoob_title` VARCHAR(100) NOT NULL,

`runoob_author` VARCHAR(40) NOT NULL,

`submission_date` DATE,

PRIMARY KEY ( `runoob_id` )

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

7.MySQL 删除数据表

DROP TABLE table_name ;

8.MySQL 插入数据

INSERT INTO table_name ( field1, field2,…fieldN )

VALUES

( value1, value2,…valueN );

以下实例中我们将向 runoob_tbl 表插入三条数据:

例:

root@host# mysql -u root -p password;

Enter password:*******

mysql> use RUNOOB;

Database changed

mysql> INSERT INTO runoob_tbl

-> (runoob_title, runoob_author, submission_date)

-> VALUES

-> (“学习 PHP”, “菜鸟教程”, NOW());

Query OK, 1 rows affected, 1 warnings (0.01 sec)

my sql > INSERT INTO runoob_tbl

-> (runoob_title, runoob_author, submission_date)

-> VALUES

-> (“学习 MySQL”, “菜鸟教程”, NOW());

Query OK, 1 rows affected, 1 warnings (0.01 sec)

mysql> INSERT INTO runoob_tbl

-> (runoob_title, runoob_author, submission_date)

-> VALUES

-> (” Java 教程”, “RUNOOB.COM”, ‘2016-05-06’);

Query OK, 1 rows affected (0.00 sec)

mysql>

9.MySQL 查询数据

SELECT column_name,column_name

FROM table_name

[WHERE Clause]

[LIMIT N][ OFFSET M]

例:

读取数据表:

select * from runoob_tbl;

10. MySQL WHERE 子句

如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。

SELECT field1, field2,…fieldN FROM table_name1, table_name2…

[WHERE condition1 [AND [OR]] condition2…..

例:

SELECT * from runoob_tbl WHERE runoob_author=’菜鸟教程’;

11.MySQL UPDATE 查询

如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作。.

UPDATE table_name SET field1=new-value1, field2=new-value2

[WHERE Clause]

例:

mysql> UPDATE runoob_tbl SET runoob_title=’学习 C++’ WHERE runoob_id=3;

Query OK, 1 rows affected (0.01 sec)

mysql> SELECT * from runoob_tbl WHERE runoob_id=3;

+———–+————–+—————+—————–+

| runoob_id | runoob_title | runoob_author | submission_date |

+———–+————–+—————+—————–+

| 3 | 学习 C++ | RUNOOB.COM | 2016-05-06 |

+———–+————–+—————+—————–+

1 rows in set (0.01 sec)

从结果上看,runoob_id 为 3 的 runoob_title 已被修改。

12.MySQL DELETE 语句

你可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。

DELETE FROM table_name [WHERE Clause]

例:

mysql> DELETE FROM runoob_tbl WHERE runoob_id=3;

Query OK, 1 row affected (0.23 sec)

13.MySQL LIKE 子句

SQL LIKE 子句中使用百分号 %字符来表示任意字符

SELECT field1, field2,…fieldN

FROM table_name

WHERE field1 LIKE condition1 [AND [OR]] filed2 = ‘somevalue’

例:

mysql> use RUNOOB;

Database changed

mysql> SELECT * from runoob_tbl WHERE runoob_author LIKE ‘%COM’;

+———–+—————+—————+—————–+

| runoob_id | runoob_title | runoob_author | submission_date |

+———–+—————+—————+—————–+

| 3 | 学习 Java | RUNOOB.COM | 2015-05-01 |

| 4 | 学习 Python | RUNOOB.COM | 2016-03-06 |

+———–+—————+—————+—————–+

2 rows in set (0.01 sec)

14. .MySQL ALTER命令

当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令。

删除,添加或修改表字段

ALTER TABLE testalter_tbl DROP i;

ADD 子句来向数据表中添加列

ALTER TABLE testalter_tbl ADD i INT;

如果需要修改字段类型及名称, 你可以在ALTER命令中使用 MODIFY 或 CHANGE 子句 。

mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

15. MySQL 导出数据

mysql> SELECT * FROM runoob_tbl

-> INTO OUTFILE ‘/tmp/runoob.txt’

16.PHP连接mysql

PHP 提供了 mysqli_connect() 函数来连接数据库。

该函数有 6 个参数,在成功链接到 MySQL 后返回连接标识,失败返回 FALSE

语法

mysqli_connect(host,username,password,dbname,port, socket );

参数说明:

参数描述

host可选。规定主机名或 IP 地址。

username可选。规定 MySQL 用户名。

password可选。规定 MySQL 密码。

dbname可选。规定默认使用的数据库。

port可选。规定尝试连接到 MySQL 服务器的端口号。

socket可选。规定 socket 或要使用的已命名 pipe。

你可以使用PHP的 mysqli_close() 函数来断开与MySQL数据库的链接。

该函数只有一个参数为 mysqli_connect() 函数创建连接成功后返回的 MySQL 连接标识符。

语法

bool mysqli_close ( mysqli $link )

本函数关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。

<?php

$dbhost = ‘localhost’; // mysql服务器主机地址

$dbuser = ‘****’; // mysql用户名

$dbpass = ‘123456’; // mysql用户名密码

$conn = mysqli_connect($dbhost, $dbuser, $dbpass);

if(! $conn )

{

die(‘Could not connect: ‘ . mysqli_error());

}

echo ‘数据库连接成功!’;

mysqli_close($conn);

?>

17.使用 PHP脚本 创建数据库

PHP 使用 mysqli_query 函数来创建或者删除 MySQL 数据库。

该函数有两个参数,在执行成功时返回 TRUE,否则返回 FALSE。

语法

mysqli_query(connection,query,resultmode);

参数描述

connection必需。规定要使用的 MySQL 连接。

query必需,规定查询字符串。

resultmode

可选。一个常量。可以是下列值中的任意一个:

MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)

MYSQLI_STORE_RESULT(默认)

<?php

……

echo ‘连接成功<br />’;

$sql = ‘CREATE DATABASE RUNOOB’;

$retval = mysqli_query($conn,$sql );

if(! $retval )

{

die(‘创建数据库失败: ‘ . mysqli_error($conn));

}

echo “数据库 RUNOOB 创建成功\n”;

mysqli_close($conn);

?>

18.使用PHP脚本删除数据库

PHP使用 mysqli_query 函数来创建或者删除 MySQL 数据库。

<?php

……

echo ‘连接成功<br />’;

$sql = ‘DROP DATABASE RUNOOB’;

$retval = mysqli_query($conn,$sql );

if(! $retval )

{

die(‘删除数据库失败: ‘ . mysqli_error($conn));

}

echo “数据库 RUNOOB 删除成功\n”;

mysqli_close($conn);

?>

19.使用PHP脚本选择MySQL数据库

PHP 提供了函数 mysqli_select_db 来选取一个数据库。函数在执行成功后返回 TRUE ,否则返回 FALSE 。

语法

mysqli_select_db(connection,dbname);

参数描述

connection必需。规定要使用的 MySQL 连接。

dbname必需,规定要使用的默认数据库。

<?php

……

echo ‘连接成功’;

mysqli_select_db($conn, ‘RUNOOB’ );

mysqli_close($conn);

?>

20.使用PHP脚本创建数据表

你可以使用 PHP 的 mysqli_query() 函数来创建已存在数据库的数据表。

<?php

……

echo ‘连接成功<br />’;

$sql = “CREATE TABLE runoob_tb2( “.

“runoob_id INT NOT NULL AUTO_INCREMENT, “.

“runoob_title VARCHAR(100) NOT NULL, “.

“runoob_author VARCHAR(40) NOT NULL, “.

“submission_date DATE, “.

“PRIMARY KEY ( runoob_id ))ENGINE=InnoDB DEFAULT CHARSET=utf8; “;

mysqli_select_db( $conn, ‘RUNOOB’ );

$retval = mysqli_query( $conn, $sql );

if(! $retval )

{

die(‘数据表创建失败: ‘ . mysqli_error($conn));

}

echo “数据表创建成功\n”;

mysqli_close($conn);

?>

21.使用PHP脚本删除数据表

PHP使用 mysqli_query 函数来删除 MySQL 数据表。

<?php

……

echo ‘连接成功<br />’;

$sql = “DROP TABLE runoob_tb2”;

mysqli_select_db( $conn, ‘RUNOOB’ );

$retval = mysqli_query( $conn, $sql );

if(! $retval )

{

die(‘数据表删除失败: ‘ . mysqli_error($conn));

}

echo “数据表删除成功\n”;

mysqli_close($conn);

?>

22.使用PHP脚本插入数据

你可以使用PHP 的 mysqli_query() 函数来执行 SQL INSERT INTO命令来插入数据。

<?php

……

echo ‘连接成功<br />’;

// 设置编码,防止中文乱码

mysqli_query($conn , “set names utf8”);

$runoob_title = ‘学习 Python’;

$runoob_author = ‘RUNOOB.COM’;

$submission_date = ‘2016-03-06’;

$sql = “INSERT INTO runoob_tbl “.

“(runoob_title,runoob_author, submission_date) “.

“VALUES “.

“(‘$runoob_title’,’$runoob_author’,’$submission_date’)”;

mysqli_select_db( $conn, ‘RUNOOB’ );

$retval = mysqli_query( $conn, $sql );

if(! $retval )

{

die(‘无法插入数据: ‘ . mysqli_error($conn));

}

echo “数据插入成功\n”;

mysqli_close($conn);

?>

23.使用PHP脚本来获取数据

使用 PHP 函数的 mysqli_query() 及 SQL SELECT 命令来获取数据。

该函数用于执行 SQL 命令,然后通过 PHP 函数 mysqli_fetch_array() 来使用或输出所有查询的数据。

mysqli_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。

<?php

……

// 设置编码,防止中文乱码

mysqli_query($conn , “set names utf8”);

$sql = ‘select * from runoob_tbl’;

mysqli_select_db( $conn, ‘RUNOOB’ );

$retval = mysqli_query( $conn, $sql );

if(! $retval )

{

die(‘无法读取数据: ‘ . mysqli_error($conn));

}

echo ‘<h2>菜鸟教程 mysqli_fetch_array 测试<h2>’;

echo ‘<table border=”1″><tr>< td >教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>’;

while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC))

{

echo “<tr><td> {$row[‘runoob_id’]}</td> “.

“<td>{$row[‘runoob_title’]} </td> “.

“<td>{$row[‘runoob_author’]} </td> “.

“<td>{$row[‘submission_date’]} </td> “.

“</tr>”;

}

echo ‘</table>’;

mysqli_close($conn);

?>

以上实例中,读取的每行记录赋值给变量 $row,然后再打印出每个值。

注意:记住如果你需要在字符串中使用变量,请将变量置于花括号。

PHP 提供了另外一个函数 mysqli_fetch_assoc(), 该函数从结果集中取得一行作为关联数组。 返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。

<?php

…..

echo ‘<h2>菜鸟教程 mysqli_fetch_assoc 测试<h2>’;

echo ‘<table border=”1″><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>’;

while($row = mysqli_fetch_assoc($retval))

{

echo “<tr><td> {$row[‘runoob_id’]}</td> “.

“<td>{$row[‘runoob_title’]} </td> “.

“<td>{$row[‘runoob_author’]} </td> “.

“<td>{$row[‘submission_date’]} </td> “.

“</tr>”;

}

echo ‘</table>’;

mysqli_close($conn);

?>

你也可以使用常量 MYSQLI_NUM 作为 PHP mysqli_fetch_array() 函数的第二个参数,返回数字数组。

<?php

……

echo ‘<h2>菜鸟教程 mysqli_fetch_array 测试<h2>’;

echo ‘<table border=”1″><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>’;

while($row = mysqli_fetch_array($retval, MYSQLI_NUM))

{

echo “<tr><td> {$row[0]}</td> “.

“<td>{$row[1]} </td> “.

“<td>{$row[2]} </td> “.

“<td>{$row[3]} </td> “.

“</tr>”;

}

echo ‘</table>’;

mysqli_close($conn);

?>

在我们执行完 SELECT 语句后,释放游标内存是一个很好的习惯。

可以通过 PHP 函数 mysqli_free_result() 来实现内存的释放

<?php

……

// 释放内存

mysqli_free_result($retval);

mysqli_close($conn);

?>

24.SQL SELECT 带上 WHERE 子句

使用 PHP 函数的 mysqli_query() 及相同的 SQL SELECT 带上 WHERE 子句的命令来获取数据。

该函数用于执行 SQL 命令,然后通过 PHP 函数 mysqli_fetch_array() 来输出所有查询的数据。

以下实例将从 runoob_tbl 表中返回使用 runoob_author 字段值为 RUNOOB.COM 的记录:

<?php

……

// 读取 runoob_author 为 RUNOOB.COM 的数据

$sql = ‘SELECT runoob_id, runoob_title,

runoob_author, submission_date

FROM runoob_tbl

WHERE runoob_author=”RUNOOB.COM”‘;

mysqli_select_db( $conn, ‘RUNOOB’ );

$retval = mysqli_query( $conn, $sql );

if(! $retval )

{

die(‘无法读取数据: ‘ . mysqli_error($conn));

}

echo ‘<h2>菜鸟教程 MySQL WHERE 子句测试<h2>’;

……

mysqli_close($conn);

?>

25. MySQL UPDATE 查询

<?php

……

mysqli_query($conn , “set names utf8”);

$sql = ‘UPDATE runoob_tbl

SET runoob_title=”学习 Python2″

WHERE runoob_id=2′;

mysqli_select_db( $conn, ‘RUNOOB’ );

$retval = mysqli_query( $conn, $sql );

if(! $retval )

{

die(‘无法更新数据: ‘ . mysqli_error($conn));

}

echo ‘数据更新成功!’;

mysqli_close($conn);

?>

26.使用 PHP 脚本删除数据

PHP使用 mysqli_query() 函数来执行SQL语句, 你可以在 SQL DELETE 命令中使用或不使用 WHERE 子句。

该函数与 mysql> 命令符执行SQL命令的效果是一样的。

<?php

……

mysqli_query($conn , “set names utf8”);

$sql = ‘DELETE FROM runoob_tbl

WHERE runoob_id=2′;

mysqli_select_db( $conn, ‘RUNOOB’ );

$retval = mysqli_query( $conn, $sql );

if(! $retval )

{

die(‘无法删除数据: ‘ . mysqli_error($conn));

}

echo ‘数据删除成功!’;

mysqli_close($conn);

?>

27. WHERE…LIKE 子句的命令来获取数据

该函数用于执行 SQL 命令,然后通过 PHP 函数 mysqli_fetch_array() 来输出所有查询的数据。

但是如果是 DELETE 或者 UPDATE 中使用 WHERE…LIKE 子句的S QL 语句,则无需使用 mysqli_fetch_array() 函数。

<?php

……

mysqli_query($conn , “set names utf8”);

$sql = ‘SELECT runoob_id, runoob_title,

runoob_author, submission_date

FROM runoob_tbl

WHERE runoob_author LIKE “%COM”‘;

mysqli_select_db( $conn, ‘RUNOOB’ );

$retval = mysqli_query( $conn, $sql );

if(! $retval )

{

die(‘无法读取数据: ‘ . mysqli_error($conn));

}

echo ‘<h2>菜鸟教程 mysqli_fetch_array 测试<h2>’;

……

mysqli_close($conn);

?>

文章来源:智云一二三科技

文章标题:数据库MYSQL学习笔记

文章地址:https://www.zhihuclub.com/152916.shtml

关于作者: 智云科技

热门文章

网站地图