主流数据库的使用教程

前言

我的个人网站:https://www.gentlecp.com

本文仅就个人使用中常见的数据库使用方法进行介绍,内容简练,拒绝废话。

一. sqlite

开源的嵌入式关系数据库,相较其他数据库安装运行非常方便,实现一个文件即数据库。

1.1 安装

python2.5以上版本中自带sqlite3,只要安装了python直接就可以import sqlite3使用
其他的具体可参考此网站

1.2 DDL(数据定义语言)

创建数据库

CREATE DATABASE db_name

删除数据库

DROP DATABASE db_name

创建新表

CREATE TABLE table_name(
				column1 [type] (PRIMARY KEY) (NOT NULL),
				column2 [type],
				....

注:用[]包围的意为多类型变量,实际使用需要用具体类型替换,用()包围的意为可有可无的语句,用{}包围的意为具体值
SQL语句不区分大小写,个人建议写代码的时候已有关键字采用大写,其他如表名,列名由自己编写的名称采用小写,直观便于区分理解。
下面是具体可选的type(数据类型)与对应含义

type 含义
INTEGER(size)
INT(size)
SMALLINT(size)
TINYINT(size)
整数类型,size代表最大的位数,也可以不写,有趣的是即便你存储位数超过你限定的位数,一般也会
正常显示,具体可以看看这篇文章
DECIMAL(size,d)
NUMERIC(size,d)
小数类型,size同整数类型,d为小数点右侧的最大位数
VARCHAR(size) 可变长的字符串,即根据字符串实际大小分配长度(空间),一般字符串的用这个就行了
date(yyyymmdd) 日期类型,形式为year+month+day

修改表

ALTER TABLE table_name ADD column_name [type]  #添加列
ALTER TABLE table_name ALTER COLUMN column_name [type] #修改某列数据类型
ALTER TABLE table_name DROP COLUMN column_name #删除表中某列

删除表

DROP TABLE table_name 

1.3 DML(数据操作语言)

查数据

SELECT * FROM table_name #获取某表中所有数据
SELECT (DISTINCT) column1,column2,... FROM table_name #查询某表中特定列的数据,DISTINCT用于去除表中重复值
SELECT column1,column2,... FROM table_name WHERE column [operator] {value} #带条件的查询,value若是字符串需加''
SELECT column1,column2,... FROM table_name WHERE 
		column1 [operator1] {value1} AND column2 [operator2] {value2} #多条件查询,AND可用OR替换
SELECT column1,column2,... FROM table_name 
		ORDER BY column1 (DESC), column2 (ASC) #排序,先按照column1降序排列,再按照column2升序排列

查询数据还有许多复杂的语句,但是没必要贪多,以上几条能熟练运用就可以了。
下面是具体可选的条件语句中的操作符[operator]

operator 含义
= 等于
<> 不等于,有些数据库可以用 != 但是建议统一用这个
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在此范围内搜索
LIKE 按某种模式搜索,用法可参考此文章

插入数据

INSERT INTO table_name(column1,column2,...) VALUES({value1},{value2},...) #往特定表的特定列中插入数据

实际代码中编写插入数据的时候{value}一般用%s替代,代表可变的数据,进行excute执行SQL语句操作的时候将数据作为参数传入。
更新数据

UPDATE table_name SET column1 = {value1} WHERE column2 = {value2} 
			#修改指定表column2的值为value2的column1的值为value1,好绕口- -|||

删除数据

DELETE FROM table_name WHERE column = {value} #删除指定表中column值为value的单条数据

1.4 python操作sqlite

创建数据库

import sqlite3

#创建数据库
con = sqlite3.connect('test.db') #在硬盘上创建数据库,生成.db文件
#con = sqlite3.connect(':memory') #在内存中创建临时数据库,程序结束后自动销毁

cur = con.cursor() #游标对象,用于支持sql语句的执行以及记录的获取

建表

SQL_CREATE_TABLE = '''
    CREATE TABLE person(
        id INTEGER PRIMARY KEY NOT NULL,
        name VARCHAR(30),
        age INT(4)
        )
''' #SQL语句的编写建议像这样分行,增强可读性

cur.execute(SQL_CREATE_TABLE)

插入数据

data_single = (1,"GentleCP",100)
SQL_INSERT_DATA = '''
    INSERT INTO person(id,name,age) 
        VALUES(?,?,?)
''' #注意这里我采用了占位符,这种方式能够规避SQL注入,建议统一
cur.execute(SQL_INSERT_DATA, data_single)
try:
    con.commit() #插入数据后只是在缓冲区,需要提交事务才能写到数据库
except:
    con.rollback() #如果提交失败,则回滚之前的插入操作

data_multiple = [
    (2,"HappyCP",10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值