SQL常用命令

一、概述

SQL是一种介于关系代数与关系演算之间的结构化查询语言,全称是Structured Query Language,包括:

  • DDL(Data Definition Language)数据定义语言,主要命令包括create、alter、drop等。
  • DML(Data Manipulation Language)数据操纵语言,主要命令包括insert、delete、update、select等。
  • DCL(Data Control Language)数据控制语言,主要包括grant、revoke等。
SQL常用命令

二、DDL

创建表

create table `sales_info` (

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',

`sku_id` varchar(32) NOT NULL COMMENT '商品ID',

`sale_date` varchar(32) NOT NULL COMMENT '销售日期yyyy-MM-dd',

`sale_num` int(11) NOT NULL DEFAULT 0 COMMENT '销量',

`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

PRIMARY KEY (`id`),

KEY `idx_key_biz` (`sku_id`,`sale_date`) USING BTREE COMMENT '业务索引'

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品销量表'

修改表

基本格式:

ALTER TABLE <表名>

[ADD <列名><数据类型><完整性约束>]

[DROP <完整性约束>]

[MODIFY <列名><数据类型>]

  • 修改列属性

alter table `sales_info` modify sale_date datetime;

  • 增加列

在sku_id列后面追加shop_code字段:

alter table `sales_info` add `shop_code` varchar(32) not null default '' comment '店铺编码' after sku_id;

  • 删除列

alter table `sales_info` drop shop_code;

  • 添加索引

alter table `sales_info` add index `idx_sale_date` (`sale_date`) using btree comment '日期索引';

  • 删除索引

基本格式:

DROP INDEX 索引名称 ON 表名;

删除索引idx_sale_date

drop index `idx_sale_date` on `sales_info`;

  • 修改索引

MySQL中没有真正意义上的修改索引,只有先删除之后再创建新的索引才可以达到修改的目的,原因是mysql在创建索引时会对字段建立关系长度等,只有删除之后创建新的索引才能创建新的关系保证索引的正确性;

将idx_key_biz索引修改成唯一索引;

drop index `idx_key_biz` on `sales_info`;

alter table `sales_info` add UNIQUE `idx_key_biz`(`sku_id`,`sale_date`) using btree comment '业务唯一键';

删除表

drop table `sales_info`

三、DML

  • 添加数据

insert into `sales_info` (`sku_id`,`sale_date` ,`sale_num` ) values ('12345', '2022-06-17', '1000');

  • 修改数据

基本格式:

UPDATE <表名> SET <列名>=<表达式>

WHERE<条件>

update `sales_info` set sale_num=2000 where sku_id='12345' and sale_date='2022-06-17';

  • 删除数据

基本格式:

DELETE FROM <表名> WHERE <条件>

delete from `sales_info` where sku_id='12345' and sale_date='2022-06-17';

  • 查询数据

基本格式:

SELECT <列名> FROM <表名>

WHERE <条件表达式>

GROUP BY <列名> [HAVING <条件表达式>]

ORDER BY <列名> [ASC|DESC];

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章