数据库知识预备
SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)
查询和更新指令构成了 SQL 的 DML 部分:
SELECT - 从数据库表中获取数据UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL 语句:CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
SQL语法
mysql> show databases; // 查看当前所有的数据库
mysql> use test; //作用与test数据库
mysql> show tables; //查看test库下面的表
mysql> CREATE TABLE user (name VARCHAR(20),password VARCHAR(20)); //创建user表
mysql> insert into user values('Tom','1321'); //向user表内插入数据
mysql> delete from user where name = 'Jack'; //删除name 等于Jack的数据
mysql> update user set password='1111' where name = 'Alen'; //修改name等于Alen 的password 为 1111
mysql> select 列名称 from 表名称; //参看表中列的数据
mysql> select * from 表名称; /查看表的所有数据
mysql> select distinct 列名称 from 表名称; //参看表中列的数据(过滤掉重复的)
mysql> select 列名称 from 表名称 where 列 运算符 值; //有条件地从表中选取数据
mysql> select * from Persons WHERE FirstName='Thomas' AND LastName='Carter' ; //可用and、or运算符, 可以用多次,并用括号区分优先级
SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber; //ORDER BY 语句用于根据指定的列对结果集进行排序。
mysql> use test; //作用与test数据库
mysql> show tables; //查看test库下面的表
mysql> CREATE TABLE user (name VARCHAR(20),password VARCHAR(20)); //创建user表
mysql> insert into user values('Tom','1321'); //向user表内插入数据
mysql> delete from user where name = 'Jack'; //删除name 等于Jack的数据
mysql> update user set password='1111' where name = 'Alen'; //修改name等于Alen 的password 为 1111
mysql> select 列名称 from 表名称; //参看表中列的数据
mysql> select * from 表名称; /查看表的所有数据
mysql> select distinct 列名称 from 表名称; //参看表中列的数据(过滤掉重复的)
mysql> select 列名称 from 表名称 where 列 运算符 值; //有条件地从表中选取数据
mysql> select * from Persons WHERE FirstName='Thomas' AND LastName='Carter' ; //可用and、or运算符, 可以用多次,并用括号区分优先级
SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber; //ORDER BY 语句用于根据指定的列对结果集进行排序。
drop table <表名>;
//删除表
drop database <数据库名>; //删除数据库
drop database <数据库名>; //删除数据库
python进行数据库操作
# -*- coding: utf-8 -*-
import MySQLdb
#连接数据库
conn= MySQLdb.connect(
host='localhost',
port = 3306,
user='root',
passwd='123456',
db ='test',
)
#创建游标
cur = conn.cursor()
#创建数据表
cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")
#每次执行execute操作都会返回影响的数据条数
#插入一条数据
inser = "insert into student values(%s,%s,%s,%s)"
cur.execute(inser ,('3','Huhu','2 year 1 class','7'))
#插入多条数据
cur.executemany(inser,[
('3','Tom','1 year 1 class','6'),
('3','Jack','2 year 1 class','7'),
('3','Yaheng','2 year 2 class','7'),
])
#打印符合条件的数据条数
print cur.execute("select * from student")
#打印符合条件的数据
info = cur.fetchmany(cur.execute("select * from student"))
for ii in info:
print ii
#关闭游标
cur.close()
#进行提交
conn.commit()
#关闭数据库连接
conn.close()