深入学习MySQL表数据操作

目录
  • 前言
  • 正式上菜
    • 插入数据
    • 全部字段插入单条数据
    • 指定字段插入多条数据
    • ON DUPLICATE KEY UPDATE
    • 修改数据
  • 删除数据
    • 查询数据
    • 简单查询
    • 聚合函数
    • 条件查询
    • 等值查询
    • 批量查询
    • 模糊查询
    • 非空判断
    • 时间判断
    • 行转列
    • case
    • if()
    • 分页排序
    • 常规分页
    • 分页优化
    • 关联查询
    • 等值查询
    • 子查询
    • 左关联
    • 右关联
    • 聚合查询
  • 总结

前言

这一节我们基于表来做数据方面的操作,同样的,无非就是C(创建)R(读取)U(修改)D(删除)四种操作,但是在R上总能玩出多种花样

正式开始操作之前,我们先来聊一聊它们的关键字:

  • INSERT
  • SELECT
  • UPDATE
  • DELETE

大家可以先通过help命令来查看一下相关的语法,提前预习一下,方便更深的理解

正式上菜

先来看看之前的表结构:

create table if not exists tb_user(
    id bigint primary key auto_increment comment '主键',
    login_name varchar(48) comment '登录账户',
    login_pwd char(36) comment '登录密码',
    account decimal(20, 8) comment '账户余额',
    login_ip int comment '登录IP'
) charset=utf8mb4 engine=InnoDB comment '用户表';

插入数据

在插入之前,我们先来看看平常怎么使用的

insert into table_name[(column_name[,column_name] ...)] value|values (value_list) [, (value_list)]

其实最常用的就这么多,下面我们来举个例子就明白了

全部字段插入单条数据

insert into tb_user value(1, 'admiun', 'abc123456', 2000, inet_aton('127.0.0.1'));

这样就插入了一条数据:

  • auto_increment:自增键,在插入数据的时候可以不给当前列指定数据,而且默认情况下我们推荐给主键设置自增
  • inet_aton:ip转换函数,相对应的还有inet_ntoa()

而且还需要注意一点,如果存在相同的主键,那么在插入的时候会出现错误

# 主键已重复
Duplicate entry '4' for key 'tb_user.PRIMARY'

指定字段插入多条数据

insert into tb_user(login_name, login_pwd) values('admin1', 'abc123456'),('admin2', 'abc123456')

可以看到数据已经插入进来,没有填充数据的列已NULL填充,关于这一点,我们可以在创建表的时候通过DEFAULT来指定默认值,就是在这个时候使用的

alter table tb_user add column email varchar(50) default 'test@sina.com' comment '邮箱'

没有什么比实际动手有说服力的了

ON DUPLICATE KEY UPDATE

这里还有一个点,用到的不是很多,但是相当实用:ON DUPLICATE KEY UPDATE

也就是说如果数据表中存在重复的主键,那么就进行更新操作,来看:

insert into tb_user(id, login_name, email) value(4, 'test', 'super@sina.com') on duplicate key update login_name = values(login_name), email = values(email);

对比上面的数据,很容易就会发现数据不一样了

  • values(列名): 会取出前面插入的字段的数据
insert into tb_user(id, login_name, email) values(4, 'test', 'super@sina.com'),(5, 'test5', 'test5@sinacom') on duplicate key update login_name = values(login_name), email = values(email);

插入多条数据也是一样的,就不贴图了,大家自己动手试一下

修改数据

插入数据相对而言比较简单,下面我们来看看修改数据

首先从update语法上来讲,这个更简单:

update table_name set column_name=value_list (,column_name=value_list) where condition

举个栗子:

update tb_user set login_name = 'super@sina.com' where id = 1

这样就修改了tb_user下编号为1的loign_name的数据

where后条件也可以多个,按照,分割

当然,如果没有设置查询条件的话,那么默认是会修改整张表的数据

update tb_user set login_name = 'super@sina.com',account = 2000

好了,修改数据到这里就结束了,很简单

删除数据

删除数据分为:

  • 删除指定数据
  • 清空整张表

如果只是想删除某些数据,可以通过delete来删除,还是来举个栗子:

delete from tb_user where login_ip is null;

这样就删除了指定条件的数据

那么,如果我们执行删除条件,但是不设置条件呢?下面我们来看一看

先执行insert操作插入几条数据

delete from tb_user ;

可以看到,删除了全部的数据

但其实还有一种方式可以清空整张表,就是通过truncate的方式,这种方式的效率更高

truncate tb_user;

最后就不贴图了,肯定没问题的

查询数据

查询数据分为多种情况,组合使用可以有N中存在,所以说这是最复杂的一种方式,下面我们一一来介绍

其实如果从语法上来看:查询语法关键点只会包含如下几点:

SELECT
	[DISTINCT] select_expr [, select_expr]
FROM table_name
WHERE where_condition
GROUP BY col_name
HAVING where_condition
ORDER BY col_name ASC | DESC
LIMIT offset[, row_count]

记住这些关键点,查询就相当简单了,下面我们先来看个简单的操作

简单查询

select * from tb_user;

-- 按照指定字段排序 asc: 正序 desc: 倒序
select * from tb_user order by id desc;

一共插入了44条数据,没有全部截图

当前SQL会查询出表中全部数据,而跟在select后面的*表示:列出全部的字段,如果我们只是想列出某些列的话,那么将它换成指定的字段名就好:

select id, login_name, login_pwd from tb_user;

就是这么简单

当然了,还记得这个关键字么:DISTINCT,我们来实验一下:

select distinct login_name from tb_user;

意思已经很明显了,没错,就是去重操作

但是我要告诉大家的是,distinct关键字如果作用在多个字段的话,那么只有在多个字段组合的情况下重复才会进行生效,举个栗子:

select distinct id,login_name from tb_user;

只有在 id + login_name有重复的时候会生效

聚合函数

在MySQL中内置的聚合函数,对一组数据执行计算,并返回单条值,在特殊场景下有特殊的作用

可以加where条件

-- 查询当前表中的数据条数
select count(*) from tb_user;

-- 查询当前表中指定列最大的一条
select max(id) from tb_user;
-- 查询当前表中指定列最小的一条
select min(id) from tb_user;

-- 查询当前表中指定列的平均值
select avg(account) from tb_user;

-- 查询当前表中指定列的总和
select sum(account) from tb_user;

除了聚合函数之外,还包含很多普通函数,这里就不一一列举了,给出官方文档,用的时候具体查

条件查询

看到了第一个例子是不是感觉其实查询没有那么难。上面的例子都是查询出全部数据,下面我们要加一些条件进行筛选,这里就用到了我们的where语句,记住一点:

  • 条件筛选是可以有多个的

等值查询

我们可以通过如下方式进行条件判断

select * from tb_user where login_name = 'admin1' and login_pwd = 'abc123456';

很多情况下,column_name = column_value是我们用到更多的查询方式,这种方式我们可以称为等值查询

而且注意到,在条件之前我是通过and来进行关联的,Java基础不错的小伙伴肯定也记得&&,都是表示并且的意

既然有and,那么与之相反的肯定就是or了,表示只要两者满足其中一条就好

select * from tb_user where login_name = 'admin1' or login_pwd = 'abc123456';

除了=匹配的方式,还有其他更多的方式,<<=>>=

  • 和我们认知中不一样的是:<>表示不等于

不过这些使用方式都是一样的

批量查询

在某些特定的情况下,如果想要查询出一批数据,可以通过in来进行查询

select * from tb_user where id in(1,2,3,4,5,6);

in中,相当于传入的是一个集合,然后查询指定集合的数据,在很多情况下,这条sql还可以这么写

select * from tb_user where id in (
	select id from tb_user where login_name = 'admin1'
);

除了in,还有not in与之相反:表示要查询出来的不包含这些指定的数据

模糊查询

看完了等值查询,我们再来看一个模糊查询

  • 只要字段数据中包含查询的数据,就能够匹配到数据
select * from tb_user where login_name like '%admin%';
select * from tb_user where login_name like '%admin';
select * from tb_user where login_name like 'admin%';

like就是我们模糊查询中的关键成员,而后面的查询关键字分为三种情况:

  • %admin%:%夹着查询关键字表示只要数据中包含admin就能匹配到
  • %admin: 任意关键字开头,只要是admin结尾的数据都能匹配到
  • admin%:必须是admin开头,其他的随意,这样的数据就能匹配到

更多的推荐采用这种方式,如果查询列设置了索引的话,其他方式会让索引失效

非空判断

查询当前表会发现,数据中的某些列是NULL值,如果我们在查询过程中向要过滤掉这些数据,我们可以这么做:

select * from tb_user where account is not null;
select * from tb_user where account is null;

is not null就是其中的关键点,与之相对的还有is null,意思正好相反

时间判断

很多情况下,如果我们想要通过时间段来匹配查询,那么我们可以这样做:

tb_user表没有时间字段,这里添加了一个字段:create_time

select * from tb_user where create_time between '2021-04-01 00:00:00' and now();
  • **now()**函数表示当前时间

between之后表示开始时间,and之后表示结束时间

行转列

我从一个面试题来聊一聊这个查询吧:

场景是一样的,但是SQL不一样 (关注重点,看题)

create table test(
   id int(10) primary key,
   type int(10) ,
   t_id int(10),
   value varchar(5)
);
insert into test values(100,1,1,'张三');
insert into test values(200,2,1,'男');
insert into test values(300,3,1,'50');

insert into test values(101,1,2,'刘二');
insert into test values(201,2,2,'男');
insert into test values(301,3,2,'30');

insert into test values(102,1,3,'刘三');
insert into test values(202,2,3,'女');
insert into test values(302,3,3,'10');

请写出一条SQL展示如下结果:

姓名      性别     年龄
--------- -------- ----
张三       男        50
刘二       男        30
刘三       女        10

对比常规查询,可以说我们需要重新定义新的属性列来展示,所以需要需要通过判断来完成属性列的转换

case

先一步一步的来,既然需要判断,那么就通过case .. when .. then .. else .. end

SELECT
	CASE type WHEN 1 THEN value END '姓名',
	CASE type WHEN 2 THEN value END '性别',
	CASE type WHEN 3 THEN value END '年龄'
FROM
	test

看看,最终成了这个德行

再下一步,我们就需要对全部数据进行聚合,根据前面了解到的聚合函数,我们可以选择使用max()

SELECT
	max(CASE type WHEN 1 THEN value END) '姓名',
	max(CASE type WHEN 2 THEN value END) '性别',
	max(CASE type WHEN 3 THEN value END) '年龄'
FROM
	test
GROUP BY
	t_id;

-- 第二种语法
SELECT
	max(CASE WHEN type = 1 THEN value END) '姓名',
	max(CASE WHEN type = 2 THEN value END) '性别',
	max(CASE WHEN type = 3 THEN value END) '年龄'
FROM
	test
GROUP BY
	t_id;

这样我们就完成了行转列,之后如果有遇到这样的需求,我们也可以使用相同的方式来实现:

  • 主要的是要找到其中数据的规律

如果单纯的只是聚合的话,那么最终只能展示出一条数据,所以这里我们需要进行分组

GROUP BY不了解没关系,后面我们会详细聊到

if()

除了采用case之外,还有其他的方式我们来看看

SELECT
	max(if(type = 1, value, '')) '姓名',
	max(if(type = 2, value, '')) '性别',
	max(if(type = 3, value, 0)) '年龄'
FROM
	test
GROUP BY
	t_id

if()表示如果条件满足,就返回第一个值,否则就返回第二个值

除此之外,如果我们想要给NULL值的数据查询出默认值,可以通过ifnull()来操作

-- 如果`account`为`null`,那么显示为0
select ifnull(account, 0) from tb_user;

分页排序

常规分页

现在上面的查询都是匹配出符合条件的全部数据,如果在实际开发中数量很大的情况下这种方式很可能会将服务器拖垮,所以这里我们要将数据一页一页的显示出来

在MySQL中,通过limit关键字来进行分页

select * from tb_user limit 0,2

前一个参数表示开始位置,后一个参数表示显示条数

分页优化

有这么一个场景:MySQL中有2000W的数据,现在要分页显示第1000W之后的10条数据,那么通过常规的方式是这样的:

select * from tb_user limit 10000000,10

这里我们来说一说limit是如何进行分页的

  • limit在分页的时候会查询到需要显示的开始位置,然后丢弃掉查询出的数据,从那个位置开始,继续向后读取显示条数的数据
  • 所以说如果开始位置越大,那么需要读取的数据就越多,查询时间也就越长

这里给出一个优化方案:给定数据的查询范围,最好是索引列(索引列可以加快查询效率)

select * from tb_user where id > 10000000 limit 10;
select * from tb_user where id > 10000000 limit 0 10;

limit后如果只跟一个参数,那么这个参数只表示显示条数

关联查询

目前我们的查询都是单表查询,我们在工作中的查询SQL基本上都涉及到多表间的操作,这样我们就需要进行多表关联查询

下面我们再简单创建一张表,然后再看看如果进行多表关联查询

create table tb_order(
	id bigint primary key auto_increment,
    user_id bigint comment '所属用户',
    order_title varchar(50) comment '订单名称'
) comment '订单表';

insert into tb_order(user_id, order_title) values(1, '订单-1'),(1, '订单-2'),(1, '订单-3'),(2, '订单-4'),(5, '订单-5'),(7, '订单-71');

等值查询

想要进行关联查询的话,SQL是这么操作的

select * from tb_user, tb_order where tb_user.id = tb_order.user_id;

等值查询也就是说:两个表中包含相同的列名,在查询的时候匹配相同列名

对比等值查询,还存在非等值查询:两个表中没有相同的列名,但是某一个列在另一张表的列的范围之中

范围查询我们已经介绍过了,通过 **between … and …**来查询

子查询

所谓的子查询我们可以理解为:

  • 嵌套在其他SQL语句中的完整SQL语句

还是上面的查询,我们换一种方式

select * from tb_order where user_id = (select id from tb_user where id = 1);
select * from tb_order where user_id in ( select id from tb_user);

根据子查询返回结果的不同,子查询也可以分为不同类型

  • SQL1只返回了一条数据,而且在查询的时候通过等值来判断的,就可以称为单行子查询
  • SQL2很明显,就是多行子查询

子查询除了用在where条件之后,也可以用在显示列中

select od.*, (select login_name from tb_user where id = od.user_id ) from tb_order od;

左关联

左关联查询已left join为主要关键点,两表中的关键字段通过on来进行关联,通过这种方式查询出的数据已左侧表为主,如果其关联的表中不存在数据,那么就返回NULL

select
	user.*, od.user_id, od.order_title
from tb_user user
left join tb_order od on user.id = od.user_id;

右关联

右关联已right join为主要关键点,数据已右侧的关联表为主,其他的操作方式和左关联一样

select
	user.*, od.user_id, od.order_title
from tb_user user
right join tb_order od on user.id = od.user_id;

而且可以看出来,在数据的展示上,右侧表没有在左侧表有对应数据的话,那么左侧表的数据是不会显示出来的

如果在实际工作中的查询都是这么简单的话,简直不要太舒服

聚合查询

前面聊到了聚合函数,聚合函数对一组数据执行计算,并返回单条值。

很多情况下,如果我们想通过聚合函数对表中数据进行分组操作的话,那么就需要采用group by来进行查询

就目前表中的数据,我们可以做一个场景:

  • 计算出表中每个登录账号有多少条记录
select count(*), login_name from tb_user group by login_name

其实每个查询语法的使用都非常简单

如果想要对聚合查询出来的数据进行条件筛选,不能使用where来查询,需要通过having来筛选

select count(*), login_name from tb_user group by login_name having login_name = 'admin1';

还需要注意的是:

  • 当前列没有通过group by 分组,那么无法通过having来查询

语法问题

如果我们在操作的时候遇到了这样的问题:这是由于显示列中包含没有分组的列,由sql_mode的模式来决定的。先来查看下默认设置

主要的是语法不规范

-- ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
select @@sql_mode;

set sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

根据提示修改就好

总结

到此这篇关于深入学习MySQL表数据操作的文章就介绍到这了,更多相关MySQL表数据操作内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 删除mysql数据表如何操作

    MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失. 语法 以下为删除MySQL数据表的通用语法: DROP TABLE table_name ; 在命令提示窗口中删除数据表 在mysql>命令提示窗口中删除数据表SQL语句为 DROP TABLE 方法扩展: 在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句.DELETE语句可以通过WHERE对要删除的记录进行选择.而使用TRUN

  • Mysql学习之创建和操作数据库及表DDL大全小白篇

    目录 1.操作数据库 1.1创建数据库 1.2查询数据库 1.3修改数据库 1.4删除数据库 1.5使用数据库 2.操作表 2.1MySQL数据类型 2.2创建表 2.3查询表 2.4删除表 2.5修改表 1.操作数据库 1.1创建数据库 create + database + 数据库名称 当然如果我们不知道数据库是否存在,如果存在就不创建,不存在就创建可以用以下语句 create + database + if not exists + 数据库名称 我们还可以在创建数据库的时候指定字符集 cr

  • MySQL数据库操作DQL正则表达式

    前言: 正则表达式(regular expression)描述了一种字符串匹配的规则,正则表达式本身就是一个字符串,使用这个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串.在开发中,正则表达式通常被用来检索.替换那些符合某个规则的文本. MySQL通过REGEXP关键字支持正则表达式进行字符串匹配. -- ^ 在字符串开始处进行匹配 SELECT 'abc' REGEXP '^a'; -- 1 -- $ 在字符串末尾开始匹配 SELECT 'abc' REGEXP 'a$';

  • MySQL之导出整个及单个表数据的操作

    导出单个表 mysqldump -u user -p dbname tablename > db.sql 导入单个表 mysql>drop tablename; mysql -u user -p dbname < db.sql 导出整个表 mysqldump --opt -d dbname -u dbuser -p > db.sql mysqldump dbname -udbuser -p > db_dt.sql 补充知识:mysql导入导出sql文件:导出整个数据库,导出一

  • MySQL数据库设计概念及多表查询和事物操作

    目录 数据库设计概念 数据库设计简介 表关系(多对多) 表关系(一对多) 表关系之一对一 多表查询 笛卡尔积现象 内连接查询 嵌套查询(子查询) 事务操作 事务的概念 手动提交事务 自动提交事务 事务原理和四大特征 事务原理 事务的四大特征 事务的并发访问引发的三个问题(面试) 事务的隔离级别 数据库设计概念 数据库设计简介 1.数据库设计概念 数据库设计就是根据业务系统具体需求,结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型. 建立数据库中的表结构以及表与表之间的关联关系的过

  • mysql数据库表增添字段,删除字段,修改字段的排列等操作

    目录 一.mysql修改表名 二.mysql修改数据的字段类型 三.mysql修改字段名 四.mysql添加字段 1.添加没有约束性的字段 2.添加一个有约束性的字段 3.在表的第一列添加一个字段 4.在数据表中指定列之后添加一个字段 五.mysql删除字段 六.mysql修改字段的排列位置 1.修改字段为表的第一个字段 2.修改字段为指定列后面 七.mysql更改表的存储引擎 修改表指的是修改数据库之后中已经存在的数据表的结构.​​mysql​​​使用​​alter table​​语句修改表.

  • MySQL 数据库中数据表超详细的基本操作

    目录 1. 查看当前数据库中的表 2. 创建表 3. 查看指定表结构 4. 删除表 5. 往表中新增数据 6. 查找表中的数据 6.1 全列查询 6.2 指定列查询 6.3 查询字段为表达式 6.4 给某个列指定常量 6.5 给查询的表达式指定别名(as) 6.6 去重查询(distinct) 6.7 对查询结果进行排序(order by) 6.8 条件查询(where) 6.9 分页查询(limit) 7. 修改表中的数据 8. 删除表中的数据 前言: 库名.表名.列名等等不能和关键字相同,如

  • 深入学习MySQL表数据操作

    目录 前言 正式上菜 插入数据 全部字段插入单条数据 指定字段插入多条数据 ON DUPLICATE KEY UPDATE 修改数据 删除数据 查询数据 简单查询 聚合函数 条件查询 等值查询 批量查询 模糊查询 非空判断 时间判断 行转列 case if() 分页排序 常规分页 分页优化 关联查询 等值查询 子查询 左关联 右关联 聚合查询 总结 前言 这一节我们基于表来做数据方面的操作,同样的,无非就是C(创建)R(读取)U(修改)D(删除)四种操作,但是在R上总能玩出多种花样 正式开始操作

  • MySQL 表数据的导入导出操作示例

    本文实例讲述了MySQL 表数据的导入导出操作.分享给大家供大家参考,具体如下: 数据导出 1.  使用 SELECT ...INTO OUTFILE ...命令来导出数据,具体语法如下. mysql> SELECT * FROM tablename INTO OUTFILE 'target_file' [option]; 其中 option 参数可以是以下选项: FIELDS TEMINATED BY 'string' (字符分断符) FIELDS [OPTIONALLY] ENCLOSED

  • Mysql表数据比较大情况下修改添加字段的方法实例

    前言 如果一张表在后期的维护中,发现需要加字段以满足当下的需求,但是数据量很大有百万甚至千万级的数据,要如何修改表字段呢. 直接执行使用alter语句肯定是不现实的,这涉及到锁表重建表结构等操作,假设这时候还有其他线程在跑,等一天都改不过来. 这里整理一个比较简单的方法 1.对照要操作的表结构创建一张临时表 CREATE TABLE product_copy LIKE product; 2.将要修改的表结构改在临时表上面 3.导出表product数据,并导入到零时表product_copy 4.

  • Python增量循环删除MySQL表数据的方法

    需求场景: 有一业务数据库,使用MySQL 5.5版本,每天会写入大量数据,需要不定期将多表中"指定时期前"的数据进行删除,在SQL SERVER中很容易实现,写几个WHILE循环就搞定,虽然MySQL中也存在类似功能,怎奈自己不精通,于是采用Python来实现 话不多少,上脚本: # coding: utf-8 import MySQLdb import time # delete config DELETE_DATETIME = '2016-08-31 23:59:59' DELE

  • 将MySQL的表数据全量导入clichhouse库中

    目录 一.环境 二.创建测试库表写入测试数据 一.环境 tidb06 mysql5.7.32 tidb05 clickhouse20.8.3.18 二.创建测试库表写入测试数据 tidb06库创建复制账户: GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'click_rep'@'172.16.0.246' identified by 'jwts996';flush privileges; Query OK, 0 row

  • Mysql表的七种类型详细介绍

    学习Mysql数据库,Mysql表类型都有哪些是一定需要知道的,下面就为您介绍七种Mysql表类型,希望能对您学习Mysql表类型有所帮助. MySQL作为当前最为流行的免费数据库服务引擎,已经风靡了很长一段时间,不过也许也有人对于MySQL的内部环境不很了解,尤其那些针对并发性处理的机制.今天,我们先了解一下Mysql表类型,以及它们的一些简单性质. 截至目前,MySQL一共向用户提供了包括DBD.HEAP.ISAM.MERGE.MyIAS.InnoDB以及Gemeni这7种Mysql表类型.

  • Mysql表的操作方法详细介绍

    目录 创建表 查看表结构 修改表 删除表 创建表 语法: CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; 说明: field 表示列名 datatype 表示列的类型 character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准 collate 校验规则,如果没有指定校验规则,则以

  • 详解java封装实现Excel建表读写操作

    对 Excel 进行读写操作是生产环境下常见的业务,网上搜索的实现方式都是基于POI和JXL第三方框架,但都不是很全面.小编由于这两天刚好需要用到,于是就参考手写了一个封装操作工具,基本涵盖了Excel表(分有表头和无表头)的创建,并对它们进行读写操作.为方便大家,有需要者可以点击文后点解下载直接使用哦,当然也可以根据自己需求举一反三自己定制,相信对于聪明的你也不是什么难事.话不多说,直接贴源码 pom.xml 文件: <properties> <project.build.source

  • PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例

    本文实例讲述了PHP使用PDO创建MySQL数据库.表及插入多条数据操作.分享给大家供大家参考,具体如下: 创建 MySQL 数据库: <?php $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername", $username, $pas

随机推荐