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

(0)

相关推荐