查看: 362|回复: 0

Mysql常用的增删改查语法

[复制链接]

0

威望

1903

金钱

2482

积分

金牌会员

Rank: 6Rank: 6

积分
2482

活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2019-4-13 14:04:34 | 显示全部楼层 |阅读模式
[color=rgba(0, 0, 0, 0.74902)]APPle-system, &quot">Mysql常用的增删改查语法
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!1. 表的增删改1. 创建表create table 表名( 列名 数据类型 [约束类型] [comment [color=rgb(0, 153, 0) !important]'备注'], [color=rgb(0, 0, 136) !important]..., constraint 约束名 约束类型(列名)   )engine=innodb defalut charset=utf8;
  • 1
  • 2
  • 3
  • 4
  • 5
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
    IType_1">
  • 从其他表查询几列数据生成新的表
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!create table 表名1 as select 列1,列2 from 表名2
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
2. 向表中添加数据
  • 按列名添加一行数据
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!insert into 表名[(列名1,列名2...)] values(列1数据,列2数据...);
  • 从其他表中复制数据
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!insert into 表名1 select 列名 from 表名2
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
3. 修改表中的数据
  • 按条件修改数据
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!update 表名 set 列名=列值,列2名=列2值...where 选择条件
  • 将子查询结果赋值给表中数据
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!update 表名 set 列名=(子查询)
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
4. 删除表中的数据
  • 按条件删除指定数据
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!delete from 表名 where 选择条件
  • 销毁整张表或约束
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!drop table 表名;
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!drop index 约束名;
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
5. 修改表的结构
  • 添加列
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!alter table 表名 add 列名 数据类型;
  • 添加约束
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!alter table 表名 add [constraint 约束名] 约束类型(列名);
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
约束名
添加语法
撤销语法

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!外键约束
alter table 表名 add [constraint 约束名] foreign key(外键列) references 主键表名(主键列);
alter table 表名 drop foreign key 约束名

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!默认约束
alter table 表名 alter 列名 set default ‘默认值’
alter table 表名 alter 列名 drop default

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!检查约束
alter table 表名 add [CONSTRAINT 约束名] check (列名10)
alter table 表名 drop check 约束名

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!唯一约束
alter table 表名 add [CONSTRAINT 约束名] unique (列名)
alter table 表名 drop index 约束名

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!主键约束
alter table 表名 add [CONSTRAINT 约束名] primary key (列名)
alter table 表名 drop primary key

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!

3. 修改表名
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!alter table 表名 rename 新表名
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!4. 修改列的字段名
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!alter table 表名 change cloumn 列名 新列名 新列数据类型
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!5. 修改列的数据类型
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!alter table 表名 alter column 列名 数据类型;
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!6. 添加一列到表中
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!alter table 表名 add 列名 数据类型;
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!7. 删除表中一列
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!alter table 表名 drop column 列名
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!7. 查看表的结构
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!desc 表名

乡知网,商道、电商、乡村知识分享!2. 表的查询1. 查询的基本语法select 列名1 [as] [列别名],列名2 from 表1 [as] [表别名] [left] join 表2 on 连接条件 [left] join 表3 on 连接条件 where 检索条件(不可用统计函数) group by 分组列1,列2 having 检索条件(可用统计函数min,max,sum,avg) order by 排序列 [desc降序] limit 起始行号,显示行数
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
2. 查询分类专有名词
含义

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!选择
选择不同行

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!投影
选择不同列

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!连接
多表联合查询

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!3. 连接分类连接名称
语法
含义

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!内部连接
a join b on …
只显示符合连接条件记录

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!外部连接
a left join b on …
a表显示不符合条件记录

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!自身连接
a join a on …
a表自身列存在关联

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!全外连接
a full outer join b on …
ab表都显示不符合条件记录

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!交叉连接
a cross join b on …
a*b产生笛卡尔积,生成a行*b行记录

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!自然连接
a natural join b
自动判断连接条件

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!4. 子查询
  • 使用子查询的目的
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
    • 数据库连接耗时长,避免多次连接数据库
    • 尽可能减少次数
    • 提升数据库性能
    • 能用连接解决时,不使用子查询
      乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
  • 无关子查询
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
    • 常用于where/having后用于约束父查询的条件,先执行子查询语句一次,父子查询间字段无关
      乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!select * from emp where sal > (select avg(sal) from emp)
    • 用于select后直接输出列,可以添加别名
      乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!select ename,(select avg(sal) from emp) as asal from emp
      乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
  • 相关子查询
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
    • 常用于where后,子查询返回字段与父查询字段相关联,父查询每次要执行子查询中的条件一次
      乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!select * from emp f where sal > (select avg(sal) from emp where deptno=f.deptno)
    • 表示比与自己所在部门的平均工资相比更高的记录被选择
      乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
  • 嵌套子查询
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
    • 常用于from后,把子查询返回结果看作一个表与父查询的表做连接
      乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!select * from emp a join (select deptno from emp) b on a.deptno = b.deptno
      乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
  • 多列查询
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
    • 表示列1,列2分别与子查询返回的第一列,第二列值相同的记录被选择
      乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!select * from emp where (列1名,列2名) in (子查询)
      乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
  • 多行查询
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
    • 字段 in(子查询) 与任意返回值相同
    • 字段 <或或= any(子查询) 比最小返回值大或比最大返回值小或同in
    • 字段 <或或= all(子查询) 比最小返回值小或比最大返回值大或完全相同
      乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!select * from emp where 列名 in/<=any/<=all (子查询)
      乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
  • 当子查询出现null时
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
    • 子查询返回null会造成比对时结果全部为null,任意字段与null比对后均返回null
      乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!(select comm from emp where comm is not null)
    • 去除子查询返回结果集中的null值
      乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!

    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
5. 纵向合并union
  • 无all:一行记录
  • 有all:28行相同记录
  • 合并列仅限两列数据类型相同时,mysql环境下不同数据类型也可以合并但不正规
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
select 1,2 from emp union [all]select 1,2 from emp
  • 1
  • 2
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
6. mysql分页函数limit
  • 从x+1行开始向下显示d行记录,放在select子句最后使用
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!limit x,d
  • 从第3行显示到第8行结束
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!select * from emp limit 2,5
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
7. 索引
  • 主键自增长用作索引时,删除的记录会被记住索引号,新添加的记录将跳过删除的索引号,为其恢复记录保留表的空间,也可在添加新记录时指定索引号,但在重启mysql服务后删除的索引失效
  • 如插入主键值1,2,3,删除2,3行,再添加记录将从4开始添加索引号
    乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享![color=rgba(0, 0, 0, 0.74902)]
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!

乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!
乡知网,商道、电商、乡村知识分享! 乡知网,商道、电商、乡村知识分享!乡知网,商道、电商、乡村知识分享!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

推荐阅读 More>
广告位
快速回复 返回顶部 返回列表