php mysql 和javascript 学习手册_PHP学习之MySQL数据库的基本操作

f655ebb89f85fa363f6d684fab4a5335.png点击“蓝字”关注我们吧

一、数据库的创建

1、创建数据库

1//创建数据库
2$createDb = "CREATE DATABASE database_name";

2、检测数据库创建结果

2.1、面向对象方法
1if($conn -> query($createDb) === true){
2    echo "数据库创建成功!";
3}else{
4    echo "Error creating database: " . $conn->error;
5}
2.2、面向过程方法
1if(mysqli_query($conn,$createDb)){
2    echo "数据库创建成功!";
3}else{
4    echo "Error creating database: " . mysqli_error($conn);
5}

二、创建数据表

1、创建表

语法:CREATE TABLE table_name();

实例

1$createTable = "CREATE TABLE members (2id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,3姓名 VARCHAR(10) NOT NULL,4电话 VARCHAR(13) NOT NULL,5内容 VARCHAR(60) NOT NULL6)

参数说明

约束说明
NOT NULL每一行都必须含有值(不能为空),null 值是不允许的。
DEFAULT规定没有给列赋值时的默认值。
UNIQUE保证某列的每行必须有唯一的值。
CHECK保证列中的值符合指定的条件。
FOREIGN KEY保证一个表中的数据匹配另一个表中的值的参照完整性。
PRIMARY KEYNOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。

2、检测表的创建

2.1、面向对象方法
1if($conn -> query($createTable)===true){
2    echo "数据表创建成功
";
3}else {
4    echo '数据表创建错误:' .$conn -> error;
5}
2.2、面向过程方法
1if(mysqli_query($conn,$createTable)){
2    echo "数据表创建成功
";
3}else {
4    echo '数据表创建错误:' .mysqli_error($conn);
5}

3、向表中插入数据

在创建完数据表后,我们可以向表中插入数据,但须遵循一些语法规则:

  • PHP 中 SQL 查询语句必须使用引号

  • 在 SQL 查询语句中的字符串值必须加引号

  • 数值的值不需要引号

  • NULL 值不需要引号

3.1、语法用法

INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)

实例

1...
2//参照上方规则:字符串必须加引号
3$insertData = "INSERT INTO members (姓名,电话,内容)4VALUES ('".$name."',$phone,'".$comment."')";
5
6...
3.2、检测插入数据结果
3.2.1、面向对象方法
1if ($conn->query($insertData) === TRUE) {
2    echo "新记录插入成功";
3} else {
4    echo "Error: " . $insertData . "
" . $conn->error;
5}
3.2.2、面向过程方法
1if (mysqli_query($conn, $insertData)) {
2    echo "新记录插入成功";
3} else {
4    echo "Error: " . $insertData . "
" .  mysqli_error($conn);
5}

三、数据库连接

1、面向对象方法

1//数据库连接
2$conn = new mysqli($servername,$username,$password,$database_name);
3
4//连接检测
5if($conn -> connect_error){
6    die("Connection failed:".$conn -> connect_error);
7}else {
8    echo "数据库连接成功。
";
9}

2、面向过程方法

1//数据库连接
2$conn = mysqli_connect($servername,$username,$password,$database_name);
3
4//检测连接
5if(!$conn){
6    die("Connection failed: " .mysqli_connect_error());
7}else {
8    echo "数据库连接成功。";
9}

四、从数据库读取数据

语法:

  • SELECT column_name(s) FROM table_name

  • SELECT * FROM table_name 读取所有字段

1、面向对象方法

 1//读取数据
2$fecth = "SELECT * FROM members";
3$res = $conn -> query($fecth);
4
5//检测读取结果并输出
6if($res -> num_rows > 0){
7while($row = $res->fetch_array()){
8    echo << 9    
10      {$row["id"]}11      {$row["姓名"]}12      {$row["电话"]}13      {$row["内容"]}14    

15

16HTML;
17}
18}else{
19echo "0结果";
20}

2、面向过程方法

 1//读取数据
2$fecth = "SELECT * FROM members";
3$res = mysqli_query($conn,$fecth);
4
5//检测读取结果并输出
6if(mysqli_num_rows($res) > 0){
7while($row = mysqli_fetch_array($res)){
8    echo << 9    
10      {$row["id"]}11      {$row["姓名"]}12      {$row["电话"]}13      {$row["内容"]}14    

15

16HTML;
17}
18}else{
19echo "0结果";
20}

拓展

1、WHERE

WHERE 子句用于提取满足指定标准的的记录。

语法:

1SELECT column_name(s) 
2FROM table_name
3WHERE column_name operator value

实例

1$where = "SELECT * FROM members WHERE 姓名='张三' ";
2、ORDER BY

ORDER BY 关键词用于对记录集中的数据进行排序。
默认升序排序,可以使用 DESC 进行降序排序。

语法:

1SELECT column_name(s)
2FROM table_name
3ORDER BY column_name(s) ASC|DESC

实例

1$order = "SELECT * FROM members ORDER BY id DESC;

根据两列进行排序

可以根据多个列进行排序。当按照多个列进行排序时,只有第一列的值相同时才使用第二列:

1SELECT column_name(s)
2FROM table_name
3ORDER BY column1, column2

特殊:拼音排序

拼音排序需要根据字符集采用的编码决定使用方法

字符集使用方法
gbk (中文编码)直接在查询语句后边添加 ORDER BY
utf8 (万国码)先对字段进行转码然后排序。
方法:CONVERT(row_title using gbk)

实例:现有表格如下。对表格按姓名拼音排序

id姓名性别
1丁一
2牛二
3张三

执行操作(由于原本是拼音升序,所以这里我们用降序来区别)

1$orderPy = "SELECT * FROM members2ORDER BY CONVERT(姓名 using gbk) DESC";

输出结果:

id姓名性别
3张三
2牛二
1丁一
3、UPDATE

UPDATE 语句用于更新数据库表中已存在的记录。

语法:

1UPDATE table_name
2SET column1=value, column2=value2,...
3WHERE some_column=some_value

注意:UPDATE 语法中的 WHERE 子句。WHERE 子句规定了哪些记录需要更新。如果您想省去 WHERE 子句,所有的记录都会被更新!

实例

现有如下表格:(已设置降序排列)

id姓名电话内容
3张三333我叫张三
2牛二222我叫牛二
1丁一111我叫丁一

修改更新表中 张三 为 李四

1$updateData = "UPDATE members SET 姓名='李四'2WHERE 姓名 = '张三'; 

输出结果

id姓名电话内容
3李四333我叫张三
2牛二222我叫牛二
1丁一111我叫丁一

UPDATE方法可以同时修改一条数据的多个字段

修改更新表中

  • 张三 ——> 李四

  • 333 ——> 444

  • 我叫张三 ——> 我叫李四

1$updateData = "UPDATE members SET 2姓名='李四',电话 = '444', 内容 = '我叫李四'3WHERE 姓名 = '张三' ;

输出结果:

id姓名电话内容
3李四444我叫李四
2牛二222我叫牛二
1丁一111我叫丁一

id设置为 PRIMARY KEY,不要轻易去改变它,若需要改变,不可与已存在的重复,否则无法更新数据。

4、DELETE

DELETE 语句用于从数据库表中删除行

语法:

1DELETE FROM table_name
2WHERE some_column = some_value

注意:DELETE中的WHERE子句。WHERE 子句规定了哪些记录需要删除。如果您想省去 WHERE 子句,所有的记录都会被删除!

实例

现有表格同上,需要删除id为3的行:

1$delete = " DELETE FROM members2WHERE 姓名 = '李四';

输出结果:

id姓名电话内容
2牛二222我叫牛二
1丁一111我叫丁一

drop truncatedelete都可以对数据表进行删除操作,具体区别如下表:

语句含义
drop删除表。删除表及其结构。不可回滚
truncate清空表。删除表中所有数据,保留表结构。不可回滚
delete删除行。删除操作作为事务记录在日志中。可以回滚

TRUNCATE与不带 WHEREDELETE 都是删除表数据,保留表结构。

6596f2bfd032ee7ab001adabbe6d0aa2.gif 4247bab45c2f4044945f036f2fa7e60b.gif

好好学习

有趣的灵魂在等你

45e332ce85224bacb5f51685c0fb7d22.png 6531bb00807e7863c650b3779c2b113d.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值