一、数据库操作
- 查看所有数据库
show database;
- 使用数据库
use 数据库名;
- 查看当前使用的数据库
select database();
- 创建数据库
create database 数据库名 charset=utf8;
- 删除数据库
drop database 数据库名;
二、数据表操作
- 查看当前数据库的所有表
select tables;
- 查看表结构
desc 表名;
-
创建表
create table 表名(
字段1 类型 约束 ...(我一般第一个都是id为主键)
字段2 类型 约束 ...
...
);
- 约束:auto_increment表示自增长,primary_key表示主键,int\varchar等表示字段类型,unsigned表示约束数据范围针对整型可以增加数据长度,不允许为负数,binary用于区分大小写,针对于char和varchar
- char和varchar 的区别:
- char长度不可变,varchar长度可变;
- 例如定义一个char(10), 如果存入的数据不满足10 --“abcd”,那么char所占的字符依然是10,剩余的存入6个空格,而定义varchar(10)的话,同样是“abcd”,那么存入的就是4个数据,取数据的时候char类型的数据要用trim()去除多余的空格,varchar不需要
- 修改表
- 修改-添加字段 -- alter table 表名 add 字段名 类型;
- 修改-重命名字段 -- alter table 表名 change 原字段名 新字段名 类型及约束
- 修改-不重名修改字段 -- alter table 表名 modify 字段名 类型及约束
- 修改-删除字段 -- alter table 表名 drop 字段名
- 删除表
drop table 表名;
- curd
-
查询
查询所有列:select * from 表名
查询指定列:select 字段1,字段2 from 表名;
-
增加
插入数据:insert into 表名 values(
对应字段的插入数据
例如字段有id,name,age
1,‘张三‘,‘18‘,2,‘李四‘,‘20‘
);
-
修改
update 表名 set 字段1=值1,字段2=值2... where 条件;
-
删除
delete from 表名 where 条件;
逻辑删除:updata 表名 set isdelete=1 where 条件 ; *本质就是修改操作并不是真正的删除
-
数据备份
mysqldump -uroot -p 数据库名 > python.sql * 按提示输入密码 -
数据恢复
mysql -uroot -p 新数据库名 < python.sql * 按提示输入密码
- 条件
语法 :select * from 表名 where 条件;
where 后面支持多种运算符:
比较运算符 :<,<=,>,>=,=,!=
逻辑运算符 :and ,or ,not
模糊查询:like,%(表示任意多个字符),_(表示一个任意字符)
范围查询:in(表示在一个非连续性的范围内),between...and...(表示在一个连续性的范围内),null(空判断 is null / is not null )
优先级:
** 高到低:(),not ,比较运算符,逻辑运算符
and比or先运算,如果同时出现并希望先算or,需结合()使用