mysql删除语句面向对象_mysqli 面向对象数据库操作教程

一、mysqli介绍

PHP的开发离不开数据库,而在PHP中可以通过MySQLi连接数据库的。但是MySQLi只能连接mysql数据库。同时mysqli是一种面向对象的技术。

MySQLi的特点:

效率提高,稳定性强。

对数据库进行操作。

支持面向对象开发。同时也支持面向过程开发。

想要在PHP中使用MySQLi功能需要在php.ini中加载php_mysql.dll这个动态连接文件。

二、MySQL基本操作之-DDL,DML,DQL,DCL语句

DDL(数据定义语言)

作用:数据定义语言主要用来定义数据库中的各类对象,包括用户、库、表、视图、索引、触发器、事件、存储过程和函数等。

DML(数据操纵语言)

insert ,update ,delete 语句

DQL(数据查询语言)

select 语句

DCL(数据控制语言)

作用:用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果。

DDL(数据定义语言)

作用:数据定义语言主要用来定义数据库中的各类对象,包括用户、库、表、视图、索引、触发器、事件、存储过程和函数等。

//常见的DDL操作的基本用法如下

CREATE USER #创建用户

CREATE DATABASE #创建数据库

CREATE TABLE #创建表

CREATE VIEW #创建视图

CREATE INDEX #创建索引

CREATE TRIGGER #创建触发器

CREATE EVENT #创建事件

CREATE PROCEDURE #创建存储过程

CREATE FUNCTION #创建自定义函数

创建用户

详细用法:CREATE USER 'username'@'[ip/domain/netmask]'

参数解释:

username:表示登陆MySQL实例的用户名

[ip/domain/ip range]:表示数据库实例允许的登陆ip,域名或者ip段

CREATE USER 'username'@'192.168.0.10';

创建数据库

CREATE DATABASE db_name;

#创建一个名称为test_db,字符集为utf8的数据库

mysql> CREATE DATABASE test_db DEFAULT CHARSET UTF8;

创建表:

详细用法:

CREATE TABLE table_name;

#创建一个名称为t_test,字符集为utf8,存储引擎为InnoDB,字符校验集为utf8_general_ci的表:

mysql> CREATE TABLE t_test (

id INT NOT NULL AUTO_INCREMENT,

name VARCHAR(50),

PRIMARY KEY(id)

) ENGINE = InnoDB DEFAUL CHARSET = UTF8 COLLATE = utf8_general_ci;

创建视图:

详细用法:

CREATE VIEW view_name as ;

参数解释: :查询语句

#创建一个视图t_view,用来查询t_test中的ID为1或者2的数据:

mysql> CREATE VIEW test_view AS SELECT * FROM t_test WHERE id IN (1,2);

#查看创建视图的过程:

mysql> SHOW CREATE VIEW test_view;

创建索引

有两种方法,CREATE和ALTER,下面先介绍一下CREATE:

CREATE [UNIQUE] INDEX index_name ON table_name(field[num]) ;

参数解释:

UNIQUE:表示创建的索引类型为唯一索引,如果创建的为一般索引可以忽略该选项

table_name:表名称

field:表中的某个字段。num为可选参数,如果field为字符创类型,表示给该字段的前num个字符创建索引

OPTIONS:表示可选选项,可以指定索引使用的算法,比如:USING BTREE。不指定默认为BTREE;

mysql> CREATE UNIQUE INDEX name_ind ON t_test(name) USING BTREE;

mysql> SHOW [INDEX/INDEXES] FROM t_test; #查看t_test表中的索引,[INDEX/INDEXES]两个关键字都可以

mysql> CREATE INDEX name_index ON t_test(name(5));

创建触发器

CREATE TRIGGER trigger_name trigger_time trigger_event FOR EACH ROW

BEGIN

trigger_stmt

END;

创建存储过程

CREATE PROCEDURE procedure_name([proc_parameter[,...]])

BEGIN

...存储过程体

END

创建自定义函数

CREATE FUNCTION function_name([func_parameter[,...]])

RETURNS type

BEGIN

...函数体

END

DML--数据操纵语言

作用:用来操作数据库中的表对象,主要包括的操作有:

INSERT

UPDATE

DELETE

INSERT INTO student(name,age,gender) VALUES('xiaohong',24,'M');

UPDATE STUDENT SET name = 'xiaohua' WHERE id = 1;

DELETE FROM student WHERE id = 1;

DQL--数据查询语言

SELECT

SELECT fields FROM table_name WHERE ;

SELECT * FROM table;

#查询年龄大于23的记录

mysql> SELECT * FROM student WHERE age > 23;

#查询年龄大于等于24的记录,和上面age>23结果相同

mysql> SELECT * FROM student WHERE age >= 24;

#查询年龄小于24的记录

mysql> SELECT * FROM student WHERE age < 24;

#查询年龄小于等于24的记录

mysql> SELECT * FROM student WHERE age <= 24;

#查询姓名等于xiaohong的记录

mysql> SELECT * FROM student WHERE name = 'xiaohong';

#查询姓名不等于xiaohong的记录

mysql> SELECT * FROM student WHERE name <> 'xiaohong';

#查询姓名不等于xiaohong的记录

mysql> SELECT * FROM student WHERE name != 'xiaohong';

#查询姓名为xiaohong或者xiaohui的记录

mysql> SELECT * FROM student WHERE name in ('xiaohong','xiaohui');

#查询姓名不是xiaohong和xiaohui的记录等价于:where name != xiaohong and name != xiaohui

mysql> SELECT * FROM student WHERE name not in ('xiaohong','xiaohui');

#查询姓名以xiao开头的记录

mysql> SELECT * FROM student WHERE name like 'xiao%';

#查询姓名以xiaohon开头的记录,后面模糊匹配一位,如:xiaohong,xiaohoni

mysql> SELECT * FROM student WHERE name like 'xiaohon_';

#查询姓名中包含ao字符创的记录

mysql> SELECT * FROM student WHERE name like '%ao%';

#查询以hong结尾的记录

mysql> SELECT * FROM student WHERE name not like '%hong';

#使用正则表达式查询姓名以xiao开头的记录

mysql> SELECT * FROM student WHERE name REGEXP('^xiao');

#使用正则表达式查询姓名以hong结尾的记录

mysql> SELECT * FROM student WHERE name REGEXP('hong$');

#支持的其他复杂的正则表达式,请参阅资料:

DCL--数据控制语言

作用:用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果。

GRANT授予用户权限:

mysql> GRANT INSERT,SELECT,UPDATE,DELETE ON test_db.* TO 'jerry'@'192.168.0.10' IDENTIFIED BY 'password' WITH GRANT OPTION;

待完善

三、mysqli 执行操作

创建mysqli对象

$myconn= new mysqli(主机,账号,密码,数据库,端口号);

设置字符集

$myconn=set_charset('utf8');

执行SQL语句

mysqli_query - 对数据库执行一次查询

-DDL(数据定义语言)

$sql='select * from user';

$myconn -> query($sql);

处理结果集

DML语句 Insert ,Update,Delete 返回布尔值True。

当我们在进行插入,删除,修改(dml)时,返回的是一个布尔值,但是我们并不知道里面有没有变化。可以用$mysqli -> affected_rows,mysqli里面的属性进行判断,返回的结果是sql语句对数据表的影响行数。

$myconn->affected_rows;

DQL语句 Select,返回mysqli_result

将取回的结果显示页面取出数据有四种方式(assoc、row、object、array)我们一般使用assoc这种方式

fetch_assoc()

关联数组

array(4) {

["id"]=>

string(1) "1"

["name"]=>

string(6) "小米"

["mark"]=>

string(12) "小米手机"

["orderby"]=>

string(1) "1"

}

fetch_row()

索引数组

array(3) {

[0]=>

string(1) "1"

[1]=>

string(6) "张三"

[2]=>

string(7) "1234.60"

}

fetch_array()

返回的一个数组,是一个关联数组和索引数组组合的数组

array(6) {

[0]=>

string(1) "1"

["id"]=>

string(1) "1"

[1]=>

string(6) "张三"

["name"]=>

string(6) "张三"

[2]=>

string(7) "1234.60"

["price"]=>

string(7) "1234.60"

}

fetch_object()

返回一个有一条数据封装成的对象

object(stdClass)#3 (3) {

["id"]=>

string(1) "1"

["name"]=>

string(6) "张三"

["price"]=>

string(7) "1234.60"

}

释放资源

$res -> free();

$mysqli -> close();

四、 mysqli的事务处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值