笔记参考:
最新Python的web开发全家桶(django+前端+数据库)
Django web开发(二) - Mysql数据库_ShangCode的博客-CSDN博客
简单认识数据库结构
数据库可以看作文件夹,表就可以看作文件
1.数据库管理
查看现有数据库
show databases;
创建数据库
create database 数据库名字 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
因为utf-8是常用的编码方式,所以可以在创建数据库时直接声明默认编码为utf-8
删除数据库
drop database 数据库名字;
进入数据库
use 数据库名字;
查看数据库下所以表
show tables;
2.数据表管理
创建表
create table 表名称(
列名称 类型 属性,
列名称 类型 属性,
列名称 类型 属性
) default charset=utf8;
属性是对当前列元素的限制,可以不写
例子
create table tb1(
id int auto_increment primary key,
name varchar(64) not null,
email char(64) null,
age tinyint default 22,
salary decimal(10,2)
create_time datetime
) default charset=utf8;
常见属性
null #可以为空
not null #不允许为空
default N #默认数据为N
primary key #主键,不允许为空,不允许有重复
auto_increment primary key #自增主键,系统根据数据插入自动维护主键
常用数据类型
整型
tinyint
有符号, 取值范围: -128 ~ 127(有正有负)
无符号, 取值范围: 0 ~ 255(只有正)
int
有符号, 取值范围: -2147483648 ~ 2147483647(有正有负)
无符号, 取值范围: 0 ~ 4294967295(只有正)
bigint
有符号, 取值范围: -9223372036854775808 ~ 9223372036854775807(有正有负)
无符号, 取值范围: 0 ~ 18446744073709551615(只有正)
浮点型
float-单精度浮点型
double-双精度浮点型
decimal-精度可控,四舍五入
声明方式
decimal(m,d)
m:当前数一共有几位
d:当前数在小数点后有几位
字符串
char
声明方式
char(N)
定长字符串, 固定用 N个字符串进行存储,哪怕字符串个数不足,也按照N个字符存储
最多能存储255个字节的数据
查询效率高
varchar
声明方式
varchar(N)
变长字符串,最长 N 个字符,真实数据多长就按多长存储
最多能存储 65535 个字节的数据,中文可存储 65535/3 个汉字
相对 char 类型,查询效率低,节省空间
text
声明方式
text
保存变长的大字符串,可以最多到 65535 个字符
一般用于文章和新闻
mediumtext
longtext
时间
datetime
YYYY-MM-DD HH:MM:SS (1000-01-01 00:00:00/9999-12-31 23:59:59)
date
YYYY-MM-DD (1000-01-01/9999-12-31)
删除表
drop table 表名称;
查看表中各列属性
desc 表名称;
添加数据
insert into 表名称(字段1, 字段2, ...) values(字段1的值, 字段2的值, ...);
#批量添加多行
insert into 表名称(字段1, 字段2, ...) values(字段1的值, 字段2的值, ...),(字段1的值, 字段2的值, ...),(字段1的值, 字段2的值, ...);
例子:
insert into tb1(name,age) values("张三",25);
查询数据
select 字段名(或者*) from 表名称;
select 字段名(或者*) from 表名称 where 条件;
例子:
mysql> select * from tb1;
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | 张三 | 25 |
+----+--------+------+
mysql> select name from tb1;
+--------+
| name |
+--------+
| 张三 |
+--------+
mysql> select * from tb1 where id = 1;
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | 张三 | 25 |
+----+--------+------+
删除数据
delete from 表名称; #--删除所有数据
delete from 表名称 where 条件; #--删除指定数据
例子:
delete from tb1 where id = 1;
delete from tb1 where id = 1 and name = "张三";
delete from tb1 where id = 1 or id = 100;
delete from tb1 where id > 100;
delete from tb1 where id != 50;
delete from tb1 where id in (10,15);
修改数据
update 表名称 set 列 = 值; #--修改一列
update 表名称 set 列 = 值, 列 = 值; #--修改多列
update 表名称 set 列 = 值 where 条件; #--修改某行某列
例子:
update tb1 set name="李四" where id = 1;
update tb1 set age=19 where id > 10;
update tb1 set age=age+10 where name=""李四;
小结
平时开发系统时,一般情况下:
- 创建数据库
- 创建表结构
都是提前通过工具+命令创建
但是,数据维护都是通过代码来实现增删改查