185****1226

2020-06-02   阅读量: 607

Mysql

真的不想打标题

扫码加入数据分析学习群

修改数据表

修改数据库中已经存在的数据表的结构

修改表名: alter table 原表名 rename 新表名;

修改字段名: alter table 表名 change 原字段名 新字段名 数据类型 [自增/非空/默认] [字段位置];

修改字段类型: alter table 表名 modify 字段名 新数据类型 [自增/非空/默认] [字段位置];

添加字段: alter table 表名 add 新字段名 数据类型;

修改字段的排列位置:

alter table 表名 modify 字段名 数据类型 first;

alter table 表名 modify 要排序的字段名 数据类型 after 参照字段;

删除字段: alter table 表名 drop 字段名;

插入数据

字段名与字段值的数据类型、个数、顺序必须一一对应

• 指定字段名插入:

insert into 表名(字段名1[,字段名2,...]) values(字段值 1[,字段值 2,...]);

• 不指定字段名插入:

insert into 表名 values(字段值 1[,字段值 2,...]);

需要为表中每一个字段指定值,且值的顺序须和数据表中字段顺序相同

• 批量导入数据:(路径中不能有中文,并且要将‘\’改为‘\\’或‘/’)

load data infile ‘文件路径.csv’into table 表名[ fields terminated

by ‘,' ignore 1 lines];

更新数据

• update 表名 set 字段名1=字段值1[, 字段名2=字段值2[,…]][ where 更新条件];

删除数据

• delete from 表名[ where 删除条件];

• truncate 表名;(与delete from 表名一样,都是删除表中全部数据,保留表结构

• delete和truncate的区别:

delete可以添加where子句删除表中部分数据, truncate只能删除表中全部数据

delete删除表中数据保留表结构, truncate直接把表删除(drop table)然后再创建一张新表(create table),执行速度比delete快。

单表查询

• 全表查询: select * from 表名;

• 查询指定列: select 字段1[,字段2,…] from 表名;

• 别名的设置: select 字段名[ as] 列别名 from 原表名 [as ]表别名;

• 查询不重复的记录: select distinct 字段名 from 表名;

• 条件查询: select 字段1[,字段2,…] from 表名 where 查询条件;

• 空值查询: select 字段1[,字段2,…] from 表名 where 空值字段 is[ not] null;

• 模糊查询: select 字段1[,字段2,…] from 表名 where 字符串字段[ not] like 通配符;

百分号(%)通配符:匹配多个字符

下划线(_)通配符:匹配一个字符

模糊查询只能用于字符串类型的字段

单表查询

• 查询结果排序: select 字段1[,字段2,…] from 表名 order by 字段1[ 排序方向,字段2 排序方向,…];

多字段排序时,先按第一个字段排序,第一个字段值相同时再按第二个字段排序

指定排序方向: asc升序, desc降序(没有指定排序方向时,默认是asc升序)

• 限制查询结果数量: select 字段1[,字段2,…] from 表名 limit [偏移量,] 行数;

limit接受一个或两个数字参数,参数必须是一个整数常量

第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目

如果只给定一个参数,表示返回最大的记录行数目

初始记录行的偏移量是0(而不是1)

单表查询

• 分组查询: select 字段1[,字段2,…] from 表名[ where 查询条件] group by 分组字段1[,分组字段2,…];

将查询结果按照一个或多个字段进行分组, 字段值相同的为一组,对每个组进行聚合计算

• 分组后筛选: select 字段1[,字段2,…] from 表名[ where 查询条件][ group by 分组字段1[,分组字段2,…]] having 筛选条件;

• where与having的区别:

where子句作用于表, having子句作用于组。

where条件查询的作用域是针对数据表进行筛选,而having条件查询则是对分组结果进行过滤。

where在分组和聚合计算之前筛选行,而having 在分组和聚合之后筛选分组的行,因此where子句不能包含聚合函数。

多表查询

通过不同表中具有相同意义的关键字段,将多个表进行连接,查询不同表中的字段信息

连接方式

• 内连接和外连接(左连接和右连接)

多表连接的结果通过三个属性决定

• 方向性:在外连接中写在前边的表为左表、写在后边的表为右表

• 主附关系:主表要出所有的数据范围,附表与主表无匹配项时标记为null,内连接时无主附表之分

• 对应关系:关键字段中有重复值的表为多表,没有重复值的表为一表

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
13.7805 2 2 关注作者 收藏

评论(0)


暂无数据

推荐课程