Python操作MariaDB创建数据表及增删改查

2025-10-28 21:24:37

1、在CentOS7操作系统Shell,输入python,进入交互命令行,输入以下命令创建数据表:

>>> import MySQLdb

>>> conn = MySQLdb.connect(host='192.168.128.25',user='root',passwd='yourpassword',db='mysql')

>>> createsql='create table testtable(name varchar(20) not null ,id int,gender char(1))'

>>> cursor = conn.cursor()

>>> cursor.execute(createsql)

注意将passwd换成数据库密码,这样就在mysql的database创建了testtable数据表

Python操作MariaDB创建数据表及增删改查

2、是Navicat工具连接上数据库查看,表存在,表结构和定义的一致

Python操作MariaDB创建数据表及增删改查

3、下面像刚刚创建的数据表插入数据,代码如下:

>>> insertsql = 'insert into testtable(id,name,gender) values (1,"user1","M")'

>>> cursor.execute(insertsql)

1L

>>> conn.commit()

注意,增删改属于DML操作一定要commit

Python操作MariaDB创建数据表及增删改查

4、可以到Navicat查看刚刚插入的数据

Python操作MariaDB创建数据表及增删改查

5、删除数据操作,代码如下:

>>> delsql = 'delete from testtable where id = "1"'

>>> cursor.execute(delsql)

1L

>>> cursor.commit()

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

AttributeError: 'Cursor' object has no attribute 'commit'

>>> conn.commit()

注意,这里一开始写错了不能用cursor来commit,必须用连接conn

删除时最好使用where子句,不然会删除所有数据

Python操作MariaDB创建数据表及增删改查

6、在Navicat中查看刚刚插入的数据已经被删除了,数据表现在没有数据

Python操作MariaDB创建数据表及增删改查

7、查询数据操作前,先插入几条数据,完整代码如下:

>>> insertsql = 'insert into testtable(id,name,gender) values (1,"user1","M")'

>>> cursor.execute(insertsql)

1L

>>> insertsql = 'insert into testtable(id,name,gender) values (2,"user2","M")'

>>> cursor.execute(insertsql)

1L

>>> insertsql = 'insert into testtable(id,name,gender) values (3,"user3","M")'

>>> cursor.execute(insertsql)

1L

>>> conn.commit()

>>> selsql = 'select * from testtable'

>>> cursor.execute(selsql)

3L

>>> result = cursor.fetchone()

>>> print (result)

('user1', 1L, 'M')

插入了三条数据,fetchone只取查询结果的一条,返回一个列表格式的数据。

Python操作MariaDB创建数据表及增删改查

8、继续取出剩下的全部数据用fetchall(),代码如下:

>>> results = cursor.fetchall()

>>> for i in results:

...     print i

... 

('user2', 2L, 'M')

('user3', 3L, 'M')

Python操作MariaDB创建数据表及增删改查

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢