SQL牛客刷题易错点及八股总结

常用的6中数据类型

INT

DECIAML(m,n)

VARCHAR(n)

BLOB

DATE

TIMESTAMP

整型

m:总共几位,n小数占几位

字符串,最多能存放n个字符

binary large object,像图片影片等

日期 --YYYY/MM/DD

--YYYY/MM/DD HH:MM:SS 记录时间

 
CREATE DATABASE `sql_tutorial`; 
# 创建数据库,使用反引号将命名包起来,可以避免和关键字冲突 # 
CREATE DATABASE `database`; SHOW DATABASES;
# 显示数据库内容 # 
DROP DATABASE `database`; 
# 删除数据库 
USE `sql_tutorial`; CREATE TABLE `student`( `student_id` INT PRIMARY KEY, `name` varchar(20), `major` varchar(20) ); 
# 插入数据 
INSERT INTO `student` VALUES(1,"小白","历史"); 
# 列出全部资料 
SELECT * FROM `student`; INSERT INTO `student` VALUES(2,"小黑","生物"); INSERT INTO `student` VALUES(3,"小绿",NULL); 
# 不按照默认属性添加属性值 INSERT INTO `student`(`name`,`major`,`student_id`) VALUES("小蓝",'英语',4);
 INSERT INTO `student`(`major`,`student_id`) VALUES('英语',5);

增减属性

ALTER TABLE `student` ADD gpa DECIMAL(3,2);

使用add添加属性,前面使用

ALTER TABLE `student` DROP COLUMN gpa;

DROP OLUMN 属性名

限制

NOT NULL

属性值不能为空

UNIQUE

属性不能重复

DEFAULT “默认值“

设置默认值

AUTO_INCREMENT

创建唯一标识符,通常用于创建主键,默认从1开始

修改数据

Drop

删除表格或数据库

Delete from 表名

删除属性,一般搭配where语句

Insert into 表名

插入

update

更新

Insert into

将一张表的数据插入另一张表中

获取资料

Select 属性 from 表名 order by 属性1,属性2 [DESC]; // DESC:分别根据属性1和属性2逆序排名,默认是升序

Limit 数字 :限制返回的数据数量

in():相当于好几个or,只要某个属性在in中有出现就能选择

distinct:列出所有不重复的属性值

聚合函数

count()

avg()

sum()

min()

max()

计数函数

求平均数

求和函数

求最小值

求最大值

count(*)时,null值会计数,其他情况则不会

正则表达式

使用关键字 ` like` 触发

%

_

多个字符

单个字符

联集

union()

join(连接) on 条件

Left join on 条件

Right join on 条件

属性个数和类型需相同

连接两个表格

不论on之后的条件是否成立左边的表格都会返回

同理

日期函数

GETDATE()

DATEADD(interval, number, date)

DATEDIFF(interval, date1, date2)

DATEPART(interval, date)

获取当前日期和时间

按照指定的时间间隔(如day天、month月、year年等)增加或减少一个日期。

计算两个日期之间指定时间间隔的差值

提取日期中的特定部分,如年、月、日等

Case when关键字

语法

Case when 条件表达式 then 结果表达式 as

when 条件表达式 then 结果表达式 as

else then as

end as

having语句

在 SQL 中,HAVING 子句主要用于对分组后的数据进行筛选。

它与 WHERE 子句有一定相似性,但作用的阶段不同。WHERE 子句在对数据进行分组之前筛选行,而 HAVING 子句是在分组操作完成后,对分组的结果进行条件过滤。

通常与聚合函数(如 SUM、AVG、COUNT 等)结合使用,来确定哪些分组满足特定的条件。

例如,要找出某个表中按照某个字段分组后,分组内数据满足特定聚合条件的分组,可以使用 HAVING 子句。

这样可以更灵活地对分组数据进行有条件的筛选和分析。

Grant

1.GRANT 赋于权限 常用的系统权限集合有以下三个: CONNECT(基本的连接), RESOURCE(程序开发), DBA(数据库管理) 常用的数据对象权限有以下五个: ALL ON 数据对象名, SELECT ON 数据对象名, UPDATE ON 数据对象名, DELETE ON 数据对象名, INSERT ON 数据对象名, ALTER ON 数据对象名 GRANT CONNECT, RESOURCE TO 用户名; GRANT SELECT ON 表名 TO 用户名; GRANT SELECT, INSERT, DELETE ON表名 TO 用户名1, 用户名2;

REVOKE REVOKE 回收权限 REVOKE CONNECT, RESOURCE FROM 用户名; REVOKE SELECT ON 表名 FROM 用户名; REVOKE SELECT, INSERT, DELETE ON表名 FROM 用户名1, 用户名2

执行顺序

集合运算符

转载链接:https://www.itheima.com/news/20230816/143017.html

游标

 
DECLARE cursor_name CURSOR FORSELECT column1, 
column2 FROM table_name; OPEN cursor_name;
FETCH NEXT FROM cursor_name INTO @variable1, @variable2; WHILE @@FETCH_STATUS = 0BEGIN 
-- 在此处进行对每行数据的处理操作 
FETCH NEXT FROM cursor_name INTO @variable1, @variable2;ENDCLOSE cursor_name;
DEALLOCATE cursor_name;

视图

创建视图

查询视图

正则表达式

用户定义的函数

不同的数据库中不可以直接使用,仅可在定义的数据库中调用,只有数据库的内置标准函数可以在不同数据库中使用。

字符串函数

DML(数据操纵语言(Data Manipulation Language))

COALESCE

select into和insert into的区别

stuff函数

round和truncate函数

round

truncate

round(表达式,保留位数)

truncate(表达式,保留位数))

会进行四舍五入

直接截断

count和sum函数易错点

count函数会对非null值都计数,而sum函数时,0和null都不会改变求和结果

例子

如计算姓氏人数时,下列表达式就错误,0和1都会参与计数,因此计算的是总行数

而sum函数时null函数不会改变求和结果,所以计算的和是正确的,并不会发生报错

length函数易错点

首先length函数,对于null值的计算返回结果为null,而如果是‘’这种空字符,计算长度则为0

values和value的区别

总结values用于插入多行或一行值,而value用的很少,几乎不考虑使用value进行插值

power函数和mod函数

mod

取余函数

mod(a,b),Mod(a,b) 意思是 a / b 的余数

power

幂函数

power(a,b),a的b次方

4种事务隔离级别

 
select @@global.tx_isolation,@@tx_isolation;

图片截图转载链接:https://www.cnblogs.com/vipstone/p/16422573.html 

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值