sql常用九大命令语句

哎,听你这么一说,好像SQL挺复杂的?但老实说,如果你经常使用它,这就是你所需要的。

我自己也遇到过的坑是,刚开始学这些命令的时候我都记住了,但是当我遇到真正的问题的时候却很困惑。
例如,2 02 3 年,我正在上海的一个购物中心做一个项目。
一个客户问我为什么写了一个简单的SELECT语句,数据库就卡住了。
后来发现,他没有加WHERE条件,就把表里几百万条数据都查了。
这说明仅仅了解命令是不够的,还需要知道如何使用它们。

我曾经做过实习生,他问我过多使用 GRANT 和 REVOKE 是否会搞乱权限。
我给他讲了一个例子。
2 02 2 年,在北京一家公司做系统时,一名老员工对系统进行了随意授权。
结果,新员工不小心让别人修改了核心表,数据最终变成了一片混乱。
所以你必须非常小心这部分。

想一想,create、select、insert是用得最多的三个。
2 02 3 年我在广州培训的时候统计过,新人写的SQL语句9 0%都是这三个命令。
尤其是有了SELECT,各种花样都能玩出,单表查询、多表连接、分组排序……都能玩出花样。

更新和删除也很常见,但是你一定要特别小心,特别是删除。
如果没有 WHERE 条件就删除所有数据将是一场灾难。
记得2 02 2 年在深圳做项目的时候,有同事写了一条DELETE语句,忘记加条件了。
幸好他们发现得及时,不然数据就无法恢复了。
所以执行前一定要确认一下,或者先用WHERE 1 =0运行看看。

ALTER 和 DROP 相对较少使用,但也是必要的。
比如ALTER,改变表结构有时很麻烦,尤其是大表。
2 02 3 年我在杭州做一个项目的时候,有一次加了一个字段,把整个表锁了好几个小时。
我差点被老板骂了。

Grant和Revoke与权限管理相关,用得不多,但是非常重要。
尤其是REVOKE,有时候授予权限后想收回,但操作不当会出大问题。
记得2 02 2 年我在上海做一个项目的时候,有一次在收集权限的时候没有输入正确的用户名。
结果整个部门的操作权限都被撤销了,我满头大汗。

归根结底,这些命令是基础,但知道怎么用和用好是两码事。
你需要多练习,多阅读错误日志。
我还在想这个问题如何快速判断哪个SQL语句慢它会发生还是不会发生?无论如何,这取决于你。

有关数据库的作业·~~SQL语句题

有意思的是,面试的时候我对这道题做了SQL,特别是写程序,必须仔细解释。

第一个问题: sql 选择 X. 产品代码、X. 类别名称、X. 数量、X. 品牌 来自产品表 1 X,产品表 2 Y 但是,每个细节都必须注意。
如果两个表中抽取数量的重复率特别高,研究性能可能会受到影响。
由于之前计划要改变表的结构,因此,一步步进行了分层搜索。

第二个问题: sql SELECT 专业,count() 作为专业数量 一名学生 按职业分组 按主数字降序排序
这个问题非常明显,但也是一个很容易被忽视的领域。
例如,如果专业名称中没有特殊的价值或特征,它可以是群体收获。
当时他有一个客户数据库。
中文职业名称是全角空格。
如果我直接用GROUP BY的话,就会报错。
添加到没有过滤器的个人资料中。

第三个问题: sql course.course number, course.course name, count() 作为正在阅读该课程的学生人数 当然是精选 WHERE 课程.课程编号 = 课程选择.课程编号 GROUP BY course.course number, course.course name
这种写法是经典的外链写法。
我在大学的培训体系管理工作中积累了很多经验。
但这只是一小部分。
如果课程表中的课程号是字符串类型,则条件课程.课程号=课程选择.课程号必须改写为课程号=CAST(课程选择.课程号AS VARCHAR),否则会直接向SQL报错。

问题4 : sql 选择产品代码 来自产品列表 1 按产品代码分组 金额(数量)> 1 0
老实说,我在采访中已经尽力回答了这个问题,但有一点我必须更加小心。
如果产品表1 中的产品代码对应的数量为空,则总计函数将跳至零。
之前尝试系统的时候,我发现某个事实的金额明明是1 1 ,但是搜索不出来。
安装后发现过程没有问题。

问题5 : sql 选择 来自产品列表 1 WHERE 单价 > (SELECT AVG(单价) FROM 产品列表 1 )
这个方法特别难写。
我在采访中偶然发现了答案。
后来我发现了其中的窍门。
比如产品表1 有2 0万条数据,每次执行这个查询都要计算AVG,速度非常慢。
后来我改用临时表; sql 当平均价格为AS时(从产品列表1 中选择AVG(单价)) 选择 FROM产品清单1 ,平均价格 WHERE 产品表 1 . 单价 > 平均价格。
平均值
这样查询的速度会快很多。
但有一个坑。
如果单价有空值,AVG将计算平均函数,而单价> NULL条件将始终为假。
在这种情况下,可能需要额外的处理。

这些问题其实并不难,但是在写代码的时候,细节特别容易出问题。
我在教新人的时候,专门用这些问题来测试他们。
正好网上很多人在写第一题的时候忘记使用JOIN优化,第二题忘记加UB过滤空值,第五题直接使用子查询,没有考虑任何流程。
所以写SQL就像手工活一样,每一个细节都要照顾到。

用SQL语句完成下列问题。

您列出的大多数 SQL 语句都是不正确的。

第二题是错误的。
学生ID、平均分(分数)应根据学生ID从表名组中选择。

第七题也错了。
学生 ID、平均(成绩)应从表名称中选择,其中成绩 > 2 5 0 按学生 ID 分组,按平均(成绩)asc 排序。

第九题就更错了。
从表名称中选择 max(grade)、课程、学生姓名,其中 max(grade) >= 9 0 按课程、学生姓名分组。
这种写法是完全错误的。

第1 0题也错了。
从表名称中选择学生,其中 avg(grade) > 8 5 且 min(grade) >= 6 0 按 avg(grade) desc 排序。
这种写法也是错误的。

其他问题也有问题。
你最好再检查一下。

用SQL语句解答?

1 、查询平均年薪1 0000以上的部门,直接写: “在这个查询中,查找部门名称,平均年薪在1 万以上。

2 . 查询各部门负责的项目数量。
简单地说: “如果你想要每个部门的项目数量,就用COUNT来统计即可。

3 . 列出年薪最低的员工,只需点击: “年薪最低的员工就是工资最低的员工。

4 . 查一下没有项目的部门,直接说: “对于没有项目的部门,使用 NOT IN 将其排除。