sql语句,筛选条件、聚合分组、连接查询
筛选条件、聚合分组、连接查询
mysql三:表结构修改、约束条件、python交互
一.表结构修改 --- alter
1.修改表名: alter table 原名 rename to 新名;
2.修改字段名:alter table 表名 change 原名 新名 类型; 要写类型
alter table tb change n2 age int; 不能修改!!
n2是char类型, 只能同一类型修改 (没有数据可以修改)
3.修改字段类型 -- modify
alter table tb modify name2 char(10);
4.添加字段
alter table 表名 add 列名 类型;
日期字段: alter table tb add tdate datetime;
插入数据:insert tb values(1, 'zs', 18, '2021-12-14 23:24:25');
返回当前的日期时间: now()
insert tb values(1, 'zs', 18, now());
enum字段:alter table tb add sex enum('F', 'M'); F/M是固定值,自己设置
插入数据:insert into tb values(2, 'we', 18, now(), 'F');
5.删除字段:
alter table tb drop sex;
二、约束条件
1.默认default
create table a(id int default 9);
2.非空 not null
create table c(id int not null);
3.唯一 unique key
create table d(id int unique key);
4.主键 primary key 非空 唯一 每张表最多只允许一个主键
create table a(id int primary key, name varchar(20));
4.1 自增长 auto_increment
create table b(
-> id int auto_increment,
-> name varchar(20),
-> primary key(id)
-> );
insert b values(), (),(); id会自动增加
4.2 设定初始值
create table c(id int auto_increment, primary key(id))auto_increment=10;
insert b values(), (),(); id会自动增加 ,从10开始
5.外键: foreign key
假设一个字段是某个表的外键时,那么该字段必须是主键
作用: 使两张表关联,保证数据的一致性和实现一些级联操作
a表: id int 主键 ; name varchar(20)
create table a(id int primary key, name varchar(20));
b表: b_id int 主键; age int; foreign key(b_id) references a(id)
references 关联的是表名及字段
foreign key(b_id) 中的b_id是外键id, 有外键的是从表
create table b(b_id int primary key, age int, foreign key(b_id) references a(id));
插入数据:
外键里面能够插入的一定是主键里面有的数据
insert a values(1, 'Object'), (2, '自律的峰峰'), (3, '啦啦啦');
insert b values(1, 18), (2, 20), (3, 22);
insert b values(4, 24); 错误,因为主表a表里面没有id=4的值
添加数据:先操作主表再去从表添加
删除数据:先删除从表再去主表删除
6.删除主外键约束:
6.1删除外键约束:
先获取外键名再去删除外键约束
查看表创建语句: show create table b;
出现的是:CONSTRAINT `b_ibfk_1` FOREIGN KEY (`b_id`) REFERENCES `a` (`id`)
b_ibfk_1是外键名,系统自动分配
语法:alter table 表名 drop foreign key 外键名;
alter table b drop foreign key b_ibfk_1;
6.2 删除主键约束
alter table a drop primary key;
如果跟其他表有关联,要先删除从表的外键,再删除主表的主键
6.3 主外键区别:
主键:唯一标识,不能有重复,不能为空
外键:是另一个表的主键
三、python交互
import pymysql