数据库概念
MySql
DataBase是数据储存仓库,关系型数据库
安装与管理
-
手动
-
net start mysql服务名/net stop mysql服务名
-
登录:mysql -u用户名 -p密码
-
SQL:structured Query Language
分类:
1.DDL–数据定义语言,用于定义库,表,列
create database io123; show databases; use lqc_6; show tables; drop database io123;
2.
```vue
-- 1.创建表
create table stuinfo(
id int not null auto_increment, -- 非空自增
name varchar(255) not null,
sex tinyint null,
birth date null,
address varchar(255),
PRIMARY KEY(id) -- 主键
);
-- 2.查看表结构
show columns from stuinfo;
-- 3.修改表
alter table stuinfo change birth birthday date;
-- 增加字段class,类型为int
alter table stuinfo add class int;
-- 4.删除表
create table student(
id int,
name varchar(200)
);
show tables;
drop table student;
表结构图片展示:
- DQL查询语句
select * from stuinfo where id=1;
-- 排序查询
select id,name,birthday as bir from stuinfo order by id desc;
4.DML语句(管理表里面的数据)
-- 1.插入数据
insert into stuinfo
(name,sex,birthday,address,class)
values('张三',1,'1990-1-1','成都武侯',5);
select * from stuinfo;
-- 插入多条数据
insert into stuinfo values
(null,'李四',0,'1992-1-1','成都金牛',4),
(null,'王五',1,'1997-3-2','北京东城',3),
(null,'大王',0,'1995-5-1','广州白云',3);
-- 2.修改数据
update stuinfo set name="张二",sex=0 where id=1;
-- 3.删除数据
delete from stuinfo where name="王五";
python连接数据库
import pymysql
# 数据库连接得到一个数据库连接对象
db = pymysql.connect(host='localhost', user='root', password='123456',
database='studb', charset='utf8', port=3306)
# 创建游标对象
cur = db.cursor()
# 查询SQL版本
sql = "SELECT VERSION()"
res = cur.execute(sql)
ver = cur.fetchone()
print("读取的版本号是:%s" % ver)
# 插入数据
sql_insert = "insert into stuinfo(name,sex,birthday,address,class) values('侯美汐',0,'2001-5-2','广东中山中路',2)"
res = cur.execute(sql_insert)
# 提交到数据库执行
db.commit()
print("插入数据执行成功,插入了%d条数据" % res)
# 删除数据,删除姓名中包含二的数据,模糊查询,%表示任意多个任意字符
sql_delete = "delete from stuinfo where name like '%二%'"
res = cur.execute(sql_delete)
db.commit()
print("执行删除成功,删除了%d条数据" % res)
# 修改
sql_update = "update stuinfo set name='侯妤汐',address='四川成都天府大道' where name ='侯美汐'"
res = cur.execute(sql_update)
db.commit()
print("修改数据执行成功,修改了%d条数据" % res)
# 查询所有学生的姓名、出生日期和住址信息
sql_select = "select name,birthday,address from stuinfo"
res = cur.execute(sql_select)
# 获取所有查询结果
data = cur.fetchall()
print("查询数据结果为:", data)
# 关闭游标和数据库对象
cur.close()
db.close()
需要注意的是:
-
cur.execute(sql)
-
db.commit()
sql语句放在游标(搬运语句的工人),之后由db来进行运行(接受的厂家)
SELECT Name,Region FROM country LIMIT 10 显示前十条的数据
。%表示多个任意字符,_ 表示单个任意字符,模糊查询可能导致数据库放弃索引进行全表扫描,所以因谨慎使用。
数据库数值类型:tinyint,smallint,MEDIUMINT,int,bigint,float,double
日期和时间类型:date,datetime,year,time
字符串:char,varchar
(首先明确的是,char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的)
TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB
TINYTEXT,MEDIUMTEXT,TEXT,LONGTEXT
MongoDB
显示数据库 show dbs
使用数据库 use 数据库名
查看数据库信息 db.stats()
删除数据库 db.dropdatabase()
show connection或者 show dbs 显示集合
db.createconnection(集合名,可选参数)
db.collectionName.drop() 删除集合