SQL结构化查询语言

本文详细介绍了SQL的DDL(数据定义语言),包括create、drop、alter和truncate等操作,以及DML(数据操纵语言)的核心操作如insert、update、delete和select,涉及各种查询技巧和注意事项,如条件过滤、排序、分页和聚合函数等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                SQL结构化查询语言

DDL 数据定义语言

create 创建表、视图、索引...

drop    删除表、视图、索引...

alter    修改表

truncate 截断

1,alter(修改)

给已有表中添加一列:

alter table 表名 add (字段);

修改表中的字段:

alter table 表名 modify (修改的字段<主要修改其数据类型>);

2,truncate(截断)

delete from 表;     -- 如果和事务sql结合使用,是有机会恢复

truncate table 表;  -- 没法和事务结合,不能恢复,效率更高

DML 数据操控语言 (**)

insert    插入数据

update  修改数据

delete   删除数据

select   查询数据

标准语法:

insert into 表(多个列...) values (多个值...);

MySQL独有的:一次插入多行数据

insert into 表名 values(值),

(值),

(值),

...;

用insert插入另一张表的数据(列的个数和类型要一致)

insert into 表1(列1,列2...) select 列1,列2... from 表2;

update 对已有的数据进行更新

update 表名set 列名=更新的数据;

修改信息

update 表名set 修改的信息1,信息2 where 条件(需要被修改的字段信息);

注意:主键列主要用于查询条件,一般不会更新

删除

delete from 表; 全部删除

delete from 表 where 条件; 删除符合条件的记录

主键所在表可以称为`主表`,而外界所在表称为`从表`

主表中删除的记录,如果被从表引用,那么会删除失败,违反外键约束(外键约束默认行为)。

外键约束还有一种行为,主表记录删除,把从表中与之关联的记录一块删除(级联删除)

在外键约束后面加上on delete cascade关键字即可

select 查询

select 列名... from 表名 where 条件;

比较运算

表示相等的 =

大于 >

大于等于 >=

小于  <

小于等于 <=

不等于 !=

逻辑运算 and(并且) or(或者) not(取反)

null值

数据库中的null,比较特殊,不能使用=来比较,必须用is  null

like(模糊查询)

例如:

查询以s开头的数据信息

select * from 表名 where 列名 like's%';

通配符%识匹配0到任意个字符.

通配符_表示匹配一个任意字符.

between...and...范围匹配

语法:

select * from 表名 where 条件 and 条件.

必须按照从小到大的顺序

between 包含等于条件

limit(MySQL特有的)

用来限制返回的结果数

limit n; n 表示最多返回几条记录

limit m  n ; m代表偏移量,注意偏移量从0 开始.

order by(排序)

语法: order  by 列名 asc(升序)|desc(降序),列名 asc(升序)|desc(降序)......

如果不写asc|desc,默认升序.

select语句顺序:

select *from 表 where 条件 order by 排序  limit;

时间加减

date_add(原始时间, 时间间隔)

时间间隔的语法:  interval 数字 时间单位

数字可以是正数或负数  

select date_add(now(), interval 1 day );

 提取时间的某个部分

extract(时间部分 from 原始时间)

select extract(year from now());

select extract(year_month from now());

返回的结果是一个数字类型

类型转换

select cast('11' as signed)+1;

select cast('12.55555' as decimal(5,2));

拼接字符串

concat(值1, 值2, ... 值n)

select concat('a', 'b', 'c');

select concat('a', 18, 'c'); /*可以把其它类型当做字符串拼接*/

求长度的函数

char_length 按字符为单位统计长度

length      按字节为单位统计长度

utf8mb4编码下,汉字一个字符占三个字节,英文一个字符占一个字节

标准sql:

case

when 条件1 then 值1

when 条件2 then 值2

 ...

else 值n

end

整个case...end 最后返回一个值

组函数

最大值 max(列)

最小值 min(列)

和     sum(列)

个数   count(列)  会排除null值

count(*)   针对这次查询,看看一共有多少行

平均值 avg(列)

去除重复(distinct)

语法;select distinct 列名 from 表名;

select查询语句执行顺序:

执行从先到后:

where 进行一遍条件过滤 , 再执行 group by 分组,  再执行 having中的条件, 再执行select, 再执行order by, 执行limit

语法顺序:

select ... from ... where ... group by ... having ... order by ... limit;

 

 

 

 

                      

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值