数据库的介绍
- 用于储存和管理数据的仓库
- 存储空间很大,可以存放百万条、千万条、上亿条数据
- 使用一种统一的方式操作数据库——SQL
- 关系型数据库是将数据保存在不同的数据表中,而不是将所有的数据放在一个大仓库内,而且表与表之间还可以有关联关系,这样就提高了访问速度以及提高了灵活性
- MySQL所使用的SQL语句是用来访问数据库最常用的标准语言
DDL 操作数据库和数据表
- SQL:结构化查询语言,是定义操作所有关系型数据库的一种规则
通用语法规则
SQL语句可以单行或多行书写,以分号结尾;
使用空格和缩进来增强语句的可读性;
SQL语句不区分大小写,关键字建议使用大写;
- 查询所有数据库
SHOW DATABASES;
- 查询数据库的创建语句
SHOW CREATE DATABASES 数据库名称;
- 创建数据库
CREATE DATABASES;
- 判断;如果不存在则创建数据库
CREATE DATABASES IF NOT EXISTS 数据库名称;
- 创建数据库(指定字符集)
CREATE DATABASEA 数据库名称 CHARATER SET 字符集名称;
DDL修改、删除、使用数据库
- 修改数据库(修改字符集)
ALERT DATABASE 数据库名称 CHARACT 字符集名称;
- 删除数据库
DROP DATABASE 数据库名称;
- 判断;如果存在则删除数据库
DROP DATABASE 数据库名称;
- 使用数据库
USE 数据库名称
- 查看当前使用的数据库
SELECT DATABASE();
DDL 查询数据表
- 查询所有的数据表
SHOW TABLES;
- 查询表结构
DESC 表名;
- 查询表字符集
SHOW TABLE STATUS FORM 库名 LIKE '表名';
DDL创建
- 数据表
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
# 单精度浮点数,非准确小数值,m是数字总个数,d是小数点后个数
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]
#双精度浮点数,非准确小数值,m是数字总个数,d是小数点后个数
char(m)
#定长字符串,m代表字符串的长度,一般是用于固定长度
varchar(m)
#变长字符串
- 列类型
python代码操作
- 查看当前数据库 show databases;
- 创建数据库:create database 数据库名 defult charset utf-8
- 删除数据库:drop database 数据库名;
- 进入数据(进入文件):use 数据库;
使用python操作MySQL
增删改查
当数据库和数据表创建完成之后,就需要对数据表中的内容进行:增、删、改、查。
- 新增数据
insert into 表名 (列名,列名,列名)value(对应列的值,对应列的值,对应列的值);
insert into tb1(name,password) value('齐怡妮','123123');
insert into tb1(name,password) value('齐怡妮','123123'),('alex','123');
insert into tb1 values('齐怡妮','123123'),('alex','123'); --如果表中只有两对
- 删除数据
delete from 表名;
delete from 表名 where 条件;
delete from tb1;
delete from tb1 where name='qiyini';
delete from tb1 where name='qiyini' and password='123';
delete from tb1 where id>9;
清空表 delete from 表名; 或truncate table 表名;(速度快,撤销后无法恢复)
删除表:drop table 表名;
- 修改数据
修改某一列的默认值,ALTER TABLE 表名 ALTER 列名 SET DEFAULT 1000;
update 表名 set 列名=值;
update 表名 set 列名=值 where 条件;
update tb1 set name='qiyini' where id=1;
update tb1 set age=age+1 where id=2;
update
- 查找数据
select * from tb1;
select 列名,列名,列名 from 表名;
select id,name as N,age, from tb1;
create table tb1(
id int primary key, --主键(不允许为空,不能重复)
name varchar(16) not null, --不允许为空
email varchar(32) null, --允许为空
age int default 3 --插入数据时,如果不给age列设置值,默认3
)default charset=utf8;
主键一般用于表示当前数据的ID编号(类似于人的身份证),需要我们自己来维护一个不重要的值,比较繁琐,所以,在数据库中一般会将主键和自增结合。
一个表中只能有一个自增列(自增列,一般都是主键)