python修炼——MySQL 库基本使用!

MySQL-基本使用

客户端——服务器——数据库

数据库优点

  • 持久化存储
  • 读写速度极高
  • 保证数据的有效性
  • 对程序支持性非常好,容易扩展

RDBMS:这是一个程序,用来管理数据库

SQL:结构化查询语言,是一种用来操作RDBMS的数据库语言

SQL语句不区分大小写

数据类型
  • 使用数据类型的原则是:够用就行、尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间
  • 常见的数据类型
    • 整数:int、bit
    • 小数:decimal
    • 字符串:varchar、char
    • 日期时间:date、time、datetime
    • 枚举类型(enum)
  • 特别类型
    • decimal 表示浮点数,如 decimal(5,2) 表示共存 5 位数,小数占 2 位。
    • char 表示固定长度的字符串,varchar 表示可变长度的字符串
    • 字符串 text 表示存储大文本,字符大于 4000 是推荐使用
    • 对于图片、音频、视频等文件,不存储在数据库中 ,而是上传到某个服务器上,然后在表中存储这个文件的保存路径
    • unsigned 整数无负数类型
  • 约束
    • 主键 primary key:物理上存储的顺序
    • 非空 not null:此字段不允许填写空值
    • auto_increment: 自动增长
    • 惟一 unique:此字段的值不允许重复
    • 默认 default:当不填写此值时会使用默认值,如果填写时以填写为准
    • 外键 foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
    • 外键不推荐使用
数据库的操作命令
  • ENGINE=InnoDB 表示使用该引擎
  • 数据库支持函数
--操作
mysql -uroot -p密码;  --登录数据库

exit/quit/ctrl + d   -- 退出登录

show databases;  --查看数据库

use 数据库名;  --使用数据库

select version();  --查看数据库版本

select database(); -- 查看当前使用的数据库

create database 库名 charset=utf8;  --创建数据库,并指定编码

show tables;  --查看数据库中的所有表

create table 表名(列名 类型 约束);  --创建数据表

insert into 表名 values(插入的数据);  --向表中插入数据

select * from 表名;  -- 查看表中所有内容

desc 表名;  --查看表的结构

show create table 表名; -- 查看表的创建语句

drop database 数据库名;  --删库跑路

drop table 表名;  --删除数据表



--解决 windows 的 DOS 窗口中中文乱码
-- 查看MySQL内部设置的编码
-- 查看包含 character 开头的全局变量
show variables like "character%";

--解决方案
--1.在 DOS 窗口输入命令 ’chcp 65001‘ 可以将窗口编码格式变为 utf-8格式
chcp 65001

--2.修改内部编码。注意:退出DOS窗口就会失效,需要每次都重新配置
set names gbk;



--修改表
--alter 和 drop 不建议在工作中使用

alter table 表名 add 列名 类型;  -- 添加字段

alter table 表名 change 原名 新名 类型及约束;  --修改字段,重命名

alter table 表名 modify 列名 类型及约束;  --修改字段,不重命名

alter table 表名 drop 列名;  -- 删除字段


--增删改查
--增加
--自动增长项插入时可以填 0、null、default
--枚举项插入时可以根据枚举中的下标来指定,下标从 1 开始

insert into 表名 values(要插入的值 对于表结构);  --全列插入

insert into 表名(列名,...) values(值,...);  --指定列插入


--修改
update 表名 set 列名=要改成的值;  --全列修改

update 表名 set 列名=要改成的值 where 指定修改;  --指定修改


--删除
--物理删除  慎用
delete from 表名;  --清空数据表   不要使用

delete from 表名 where 指定条件删除;  --指定删除

--逻辑删除   一般使用
--给表中添加一个 is_delete 字段为 bit 类型 只有 0 和 1,

alter table 表名 add is_delete bit default 0;
update 表名 set is_delete=1 where 指定条件;


--查询
select * from 表名;  --显示表中所有内容

select * from 表名 where 指定条件;   --指定条件查询

select1 as 别名,列2 as 别名,... from 表名;  --查询指定列,可以使用as起别名 

猜你喜欢

转载自blog.csdn.net/qyf__123/article/details/82154086