Python SQL 语法简单入门

Python SQL 语法简单入门

大家好,今天给大家分享一些python中基本的sql语法。基本是按照sqlite3 来写的。

引题

为什么要使用数据库?

  1. 持久化 ,内存中的变量当程序重启和电脑断电时丢失数据,而硬盘可以长时间、持久地存储数据。数据存储到硬盘上的过程叫持久化。
  2. 数据库更加专业强大 ;远比纯文本文档、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语句中的字段类型

  1. 整数
    整数:常用INT INTEGER 占4个字节,2**32,可以表示常用范围整数。
    (不常用)TINYINT(1字节) SMALLINT(2字节) MEDIUMINT(3字节)
    BIGINT(8字节) 适用身份证号、VIP号码比较长的编号。
  2. 浮点数
    常用 FLOAT(4字节) 单精度小数 。 即使是单精度,范围也不小。
    DOUBLE(8字节) 双精度小数。
    场景 金钱计算,轨道计算。
  3. 字符串
    CHAR char(10) 可以存储长度(字节长度)不超过10的字符串。例如"hello"。但由于长度按照字节判断,存unicode编码的中文只能存3个。
    常用 VARCHAR 0-65535字节,variable char 可变字符串。VARCHAR(5) 可以存储5个中文或5个英文字母。场景 用户名、家庭住址。
    TEXT TINYTEXT medium longtext , 场景 大文本存储,书籍文章、用户反馈。
    BLOB medium longblob ,二进制文件, 场景 图片、视频。但一般不在数据库中存储图片和视频,因为会增加数据库的计算压力和带宽传输压力和备份还原的难度和用户信息静态资源耦合到一起,解决方案是 图片视频存到普通文件目录下,数据库中存储文件路径。
  4. 日期
    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 语法简单入门)