Python与sql交互入门(mysql和sqlite)

本文详细介绍了如何在终端中进行MySQL数据库操作,包括连接、创建与删除数据库、表的增删改查等。接着讲解了Python如何与MySQL和SQLite进行交互,包括安装模块、建立连接、执行SQL语句。还提到了SQL注入问题和索引的重要性,强调了正确处理用户输入和提升查询效率的策略。
摘要由CSDN通过智能技术生成

(以下所有操作使用的均为Mac系统+pycharm为IDE,需要有数据库理论基础和sql语法知识)

目录

1.终端sql操作(mysql数据库)

--连接数据库

--退出数据库

--查看所有数据库

--显示时间

--显示数据库版本

--创建数据库

--查看创建数据库语句

--删除数据库

--查看当前使用的数据库

--使用数据库

--(选择需要修改的数据库后)创建表

--查看所有表

--查看表结构

--查看系统创建表语句(格式化你新建表的语句)

--修改表结构

--插入数据

--查询后的结果一列中显示多种信息

--分页

--读取数据

--子母表同时更新数据

--创建用户并授予权限

--备份

--恢复

2.mysql和python交互

安装模块

引入模块

Connection对象

Cursor对象

mysql命令参数

3.python与sqlite交互

 引入模块

连接数据库

操作数据库

4. sql注入

5. sql索引


1.终端sql操作(mysql数据库)

--连接数据库

mysql -uroot -p (后输入mysql密码即可)

--退出数据库

exit/quit/ctrl+d

(sql语句不区分大小写,每句后面都必须有;)

--查看所有数据库

mysql>show databases;

--显示时间

select now();

--显示数据库版本

select version();

--创建数据库

create database python-04;

--查看创建数据库语句

show create database python04;

--删除数据库

drop database python-04;(会报错,因为系统默认将-04识别为新的一部分数据,而我们需要python-04作为整体)

改为:drop database `python-04`;

--查看当前使用的数据库

select database();

--使用数据库

use python-04;

--(选择需要修改的数据库后)创建表

create table lilho(id int unsigned primary key not null auto_increment, name varchar(20));(可换行)

create table lilho(

        id int primary key not null auto_increment,

        name varchar(20)

        gender enum("male","female","secret") default "secret"

);

--查看所有表

show tables;

--查看表结构

desc lilho;

--查看系统创建表语句(格式化你新建表的语句)

show create table lilho;

--修改表结构

①重命名:alter table 表名 change 原名 新名 类型及约束;

②不重命名:alter table 表名 modify 列名 类型及约束;

③增加列:alter table 表名 add 列名 类型及约束;

④删除列:alter table 表名 drop 列名;

⑤增删外键:alter table 表名 add foreign key (外键名) references 引用表名(引用列名);

                       alter table 表名 drop foreign key 外键名;

--插入数据

insert into lilho values(0,"sdhg");  整体插入,一一对应

insert into lilho (name) values("shjgd");  部分插入,先写列名,再输入数值;并且可以同时添加多个

如果是从另一个表中选择数据插入到新表中,不需要values关键字:

insert into lilho (name, age) select cname,cage from anther_table;

--查询后的结果一列中显示多种信息

select group_concat(name,"_",id) from lilho;

--分页

limit start,num;(从start+1开始显示,num为显示的个数,无论查询的个数是多少,只显示不超过num个,start可以省略,默认从0开始搜索)

 用limit语句实现分页:limit (第N页-1)*每页的个数, 每页的个数;

顺序:where,order by, limit&#

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值