Python SQL 语法简单入门
Python SQL 语法简单入门
大家好,今天给大家分享一些python中基本的sql语法。基本是按照sqlite3 来写的。
引题
为什么要使用数据库?
- 持久化 ,内存中的变量当程序重启和电脑断电时丢失数据,而硬盘可以长时间、持久地存储数据。数据存储到硬盘上的过程叫持久化。
- 数据库更加专业强大 ;远比纯文本文档、excel表格强大,增删改查和统计函数。
建表操作 “CREATE TABLE”
import sqlite3 # 首先。我们要引入sqlite3 的包,这个包是在python中内置的。
connect = sqlite3.connect("test.db") # 这里是连接上一个数据库“test.db”如果没有这个数据库的话就会创建一个
cursor = connect.cursor() # 获取游标cursor
sql = """CREATE TABLE student(id INT PRIMARY KEY,name VARCHAR); """ # 创建sql 语句 create table 加表名 (字段名 加字段类型 )字段名之间以逗号分隔,这里将id设置成主键,具有非空、自增、不重复的功能,也可在字段类型后加上not null 表示非空。
cursor.execute(sql) # 执行sql语句
connect.commit() # 进行数据库语句的提交操作,不提交则无法生效,每次执行后都要提交
cursor.close() # 关闭游标
connect.close() # 关闭数据库连接,在进行完操作之后需要将游标和连接关闭
到目前这个表就已经创建好了,就是长这个样子
这里要注意的是这个表名之前是没有的,如果表名存在而你又创建一个一样的表名,这个时候是会报错的,因此更安全的方法就是在“CREATE TABLE ”的后面加上“IF NOT EXISTS” 再加上表名,意思是如果没有这个表名就创建。 因为现在没有用函数和类的方法来写。所以没有加上这个。
sql = """CREATE TABLE IF NOT EXISTS student(id INT PRIMARY KEY,name VARCHAR(10)); """
插入信息操作"INSERT INTO"
sql = """INSERT INTO student (name) VALUES ( "小明");
""" # 插入语句是insert into 加表名 (字段名, 字段名)values (对应的值, 对应的值)因为id是主键自增,所以就没有添加他的值
cursor.execute(sql) # 执行sql 语句,连接数据库和提交关闭数据库的操作都是一样的,这里就不再做说明
插入之后表就变成了这样
查询数据库操作"SELECT * FROM"
sql = """SELECT id,name from student;""" #查询语句select 加字段名 查找表中字段的信息 加* 查找所有的信息 from 表名
cursor.execute(sql)
student_list = cursor.fetchall() # 用一个变量来接受fetchall()查询所有这个函数返回的值。
print(student_list) # 打印出查询的结果
下面是添加限定条件的查询
sql = """SELECT * FROM student WHERE name="小明";
""" # select * from 表名 where 加上条件,不加的话就是查询所有
cursor.execute(sql)
student = cursor.fetchone() # fetchone ()是查询一个,只有一个结果和fetchall有区别
print(student)
更新数据库操作“UPDATE”
sql = """UPDATE student SET name="大红" WHERE id=1;
""" #更新数据库语句 update 加表名 set 字段名=要更新的值 where 限定条件 ,如果不加where 和后面的条件,将会全部生效
cursor.execute(sql)
这样id为1 的这条信息中的“name”字段就变成了大红
删除数据库操作“DELETE”
sql = """DELETE FROM student WHERE id = 1;
""" # 删除语句 delete from 表名 where 范围,不加where将会删除整个表但是表的结构还存在就是相当于回到了刚刚建立表的时候cursor.execute(sql)
丢弃表“DROP”(慎用)
sql = """DROP TABLE student;
""" # 丢弃表(此操作比delete更加严重,会删除表的结构)drop table 加上表名
cursor.execute(sql)
到这里数据库的一些基本操作就算介绍完毕了,下面总结一下sql语句中的字段类型
- 整数
整数:常用INT INTEGER 占4个字节,2**32,可以表示常用范围整数。
(不常用)TINYINT(1字节) SMALLINT(2字节) MEDIUMINT(3字节)
BIGINT(8字节) 适用身份证号、VIP号码比较长的编号。 - 浮点数
常用 FLOAT(4字节) 单精度小数 。 即使是单精度,范围也不小。
DOUBLE(8字节) 双精度小数。
场景 金钱计算,轨道计算。 - 字符串
CHAR char(10) 可以存储长度(字节长度)不超过10的字符串。例如"hello"。但由于长度按照字节判断,存unicode编码的中文只能存3个。
常用 VARCHAR 0-65535字节,variable char 可变字符串。VARCHAR(5) 可以存储5个中文或5个英文字母。场景 用户名、家庭住址。
TEXT TINYTEXT medium longtext , 场景 大文本存储,书籍文章、用户反馈。
BLOB medium longblob ,二进制文件, 场景 图片、视频。但一般不在数据库中存储图片和视频,因为会增加数据库的计算压力和带宽传输压力和备份还原的难度和用户信息静态资源耦合到一起,解决方案是 图片视频存到普通文件目录下,数据库中存储文件路径。 - 日期
DATE 日期, 形如"2018-11-08"
常用 DATETIME 日期时间, “2018-11-08 16:52:30” “2018-11-08 16:52:30.123” “2018-11-08 16:52:30 GTM+8”
常用 TIMESTAMP 时间戳, 1541667270 1541667270.7252207 1541667270725
感谢观看,欢迎您给出意见和建议!
Python SQL 语法简单入门相关推荐
- 使用ANTLR做一个简单的Python SQL语法解析器 - 推酷
使用ANTLR做一个简单的Python SQL语法解析器 - 推酷 使用ANTLR做一个简单的Python SQL语法解析器 - 推酷 posted on 2016-11-14 13:11 lexus ...
- python代码用c语言封装_使用C语言扩展Python程序的简单入门指引
一.简介 Python是一门功能强大的高级脚本语言,它的强大不仅表现在其自身的功能上,而且还表现在其良好的可扩展性上,正因如此,Python已经开始受到越来越多人的青睐,并且被屡屡成功地应用于各类大型 ...
- python少年_python简单入门
一. 初识python. 1. 认识计算机 CPU(大脑) 3GHZ + 内存(DDR4) + 主板 + 电源(心脏)+ 显示器 + 键盘 +鼠标+ 显卡 + 硬盘 80MB/s 操作系统 windo ...
- python爬虫简单实例-这个Python爬虫的简单入门及实用的实例,你会吗?
利用爬虫可以进行数据挖掘,比如可以爬取别人的网页,收集有用的数据进行整合和划分,简单的就是用程序爬取网页上的所有图片并保存在自己新建的文件夹内,还有可以爬社交网站的自拍图,将几十万张的图片合在一起,就 ...
- Python正则表达式语法快速入门
文章目录 1 正则符号初阶 代码举例1:不同符号的组合 代码举例2:符号加`+`,代表连续的一个或多个 代码举例3:匹配字符串开始 代码举例4:匹配字符串结束 代码举例5:匹配单词边界 2 正则符号进 ...
- 【Python】Numpy简单入门
Numpy Numpy是Python中科学计算的核心库.Numpy提供了高性能的多维数组对象,还有用于处理这些数组的工具. 数组 Numpy的主要数据类型是ndarray即多维数组,可以用嵌套 ...
- python 语音播报 简单入门
# coding: utf-8 import pyttsx3 import time # 初始化 pt = pyttsx3.init() # 说什么 pt.say("你好,dbirder&q ...
- 关系代数和SQL语法
数据分析的语言接口 OLAP计算引擎是一架机器,而操作这架机器的是编程语言.使用者通过特定语言告诉计算引擎,需要读取哪些数据.以及需要进行什么样的计算.编程语言有很多种,任何人都可以设计出一门编程语言 ...
- python简短语法_python 简单语法入门
人生苦短,我用python python之所以比较容易入门就是它的语法相对来说比较简单 下面就以一个简单hello,world为例来简单说下python中语法 import os #导入系统模块 de ...
最新文章
- python密码学编程pdf-Python密码学编程 PDF 下载
- C#在后台运行操作:BackgroundWorker的用法
- 人生哲理---你值得借鉴
- Spring系列(五):@Lazy懒加载注解用法介绍
- day1作业二:多级菜单操作
- java2019 数据结构算法面试题_2019年JVM最新面试题,必须收藏它
- 云原生时代,谁是容器的最终归宿?
- 半夜,滴滴司机问我会LRU吗?
- 小米怎么设置语音识别权限 | 手游网游页游攻略大全
- java保护性拷贝(effective java)
- python对象、引用
- CTPN论文翻译——中英文对照
- Redhat7.5安装谷歌浏览器
- 节假日查询,一个简单很暴力的idea
- 在kaggle的论坛上上传图片
- php与hls,转: 基于nginx的hls直播系统
- Java之简单的图片动态显示(实现类似GIF动画结果)
- 自学软件测试1个半月上岸拿5个offer
- gregorian(格里高力)历转换公历
- rpm提示:XXX conflicts with file form package XXX