python中SQL语言与mysql
#mysql-基本使用
SQL也是一种编程语言
SQL注释 –
数据库是一种特殊文件,存在硬盘下
列,字段;行,记录;主键,能唯一标记某个字段就是主键
mysql关系型数据库
1.RDBMS,Mysql介绍
关系型数据库管理系统,一种程序的系统,通过表表示关系型,借助集合代数等处理数据库中的数据
主要产品:oracle,mysql,SQLite等
C/S 架构
RDBMS-Client通过SQL连接RDBMS-Server服务端创建修改数据库文件
SQL:结构化查询语言,支持多种数据库,不区分大小写
常用:数据的增删改差 DQL DML
2.mysql安装
安装server sudo apt-get install mysql-server
启动:sudo service mysql start
关闭: stop
重启 restart
配置
/ect/mysql/mysql.cnf
3.创建表
主键,钥匙?,唯一标记每一个记录
4.数据类型,约束
类型,约束是建一个新表需要考虑的
规则是够用就行,尽量使用取值范围小的
varchar 变长度的字符串,但是不允许超过;
char固定长度字符串
图片,视频等存在服务器里,数据库保存他的路径
没有布尔类型! 我们通常用bit表示布尔
支持的主要分为三类:
数值,字符串,时间
https://blog.****.net/anxpp/article/details/51284106
数值:整数,定点数
DECIMAL和NUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值
:DECIMAL(M,D),其中M表示十进制数字总的个数,D表示小数点后面数字的位数,上例中的取值范围为-999.99~999.99;
MySql中的浮点类型有float,double和real。他们定义方式为:FLOAT(M,D) 、 REAL(M,D) 、 DOUBLE PRECISION(M,D);
BIT数据类型可用来保存位字段值。BIT(M)类型允许存储M位值。M范围为1~64,默认为1。
整数:int,bit
小数:decimal
字符串:varchar,char
日期时间: date, time, datetime
枚举类型(enum) 枚举中的下标从一开始
约束:
外键,存储的是别的表的主键叫做外键
主键primary key:物理上存储的顺序
非空not null:此字段不允许填写空值
惟一unique:此字段的值不允许重复
默认default:当不填写此值时会使用默认值,如果填写时以填写为准
外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
5.命令操作数据库
登录:mysql -uroot -p[密码]
退出:exit/quit/ctrl+d
查看所有数据库:show databases;
显示当前数据库时间:select now(); #数据库支持函数
显示版本:select version();
创建数据库:create database 名字;
create database 名字 charset=utf8;
查看创建数据库的语句: show create database 名字;
删除数据库:drop database db_name;(要是删除不好使,加上``,说明他是一个整体)
使用数据库:use db_name
查看当前使用数据库:select database();
6.数据表的操作
查看所有的表:show tables;
创建表: creata table tb_name(字段 类型 约束[, 字段 类型 约束]*);可以拆成多行;
id int unsigned
查看表:desc 数据表名字;
插入数据:insert into table_name values(按照顺序插入数据)
修改表结构:增删改查
alter table table_name add ——————>增
修改:modify修改约束类型
alter table table_name modify
重命名名字和约束:change
删字段:drop —> alter table tb_name drop 列名
删表:drop table 表名
查看创建表语句: show create table 表名
7.数据表数据的操作
增删查改curd
增:
全部插入:insert into 表名 value();
如果insert value没有指明,必须全部插入,否则报错;
部分插入:insert into 表名(字段名,)value(值,);
多行插入 insert into 表名(字段,)value(值,),(值,);
更新,修改
update 表名 set 字段=值, 字段= , where 字段=(匹配符合的);
查询
select * from 表名;
select * from 表名 where 字段=(符合的条件);
select 想看的的字段[as xxx] 表名 where 字段=(符合的条件);
删除
delete from 表名 ; 清空表
delete from 表名 where 字段=(xxx);
假的删除 逻辑删除 加一个字段is_delete bit default 0;