首页技术sql必知必会,SLQ必知必会电子版

sql必知必会,SLQ必知必会电子版

编程之家2026-05-171048次浏览

今天给各位分享sql必知必会的知识,其中也会对SLQ必知必会电子版进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

sql必知必会,SLQ必知必会电子版

SQL必知必会(第五版)

去重:使用DISTINCT关键字,它必须直接放在列名的前面。

检索前5行数据:

LIMIT 5 OFFSET 5指示MySQL等DBMS返回从第5行起的5行数据。第一个数字是检索的行数,第二个数字是指从哪儿开始。

2.1排序数据

注意: ORDER BY子句的位置在指定一条ORDER BY子句时,应该保证它是 SELECT语句中最后一条子句。如果它不是最后的子句,将会出错。

ORDER BY 2, 3表示先按prod_price,再按prod_name进行排序。

sql必知必会,SLQ必知必会电子版

好处在于不用重新输入列名。

缺点。首先,不明确给出列名有可能造成错用列名排序。其次,在对SELECT清单进行更改时容易错误地对数据进行排序(忘记对ORDER BY子句做相应的改动)。最后,如果进行排序的列不在SELECT清单中,显然不能使用这项技术。

DESC是DESCENDING的缩写,这两个关键字都可以使用。与DESC相对的是 ASC(或ASCENDING),在升序(A→Z)排序时可以指定它。但实际上,ASC没有多大用处,因为升序是默认的(如果既不指定ASC也不指定DESC,则假定为ASC)。

DESC关键字只应用到直接位于其前面的列名。如果想在多个列上进行降序排序,必须对每一列指定DESC关键字。

在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后给出。

在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后,否则将会产生错误。

sql必知必会,SLQ必知必会电子版

提示:单引号用来限定字符串。如果将值与字符串类型的列进行比较,就需要限定引号。用来与数值列进行比较的值不用引号。

操作符(operator)用来联结或改变WHERE子句中的子句的关键字,也称为逻辑操作符(logicaloperator)。

AND用在WHERE子句中的关键字,用来指示检索满足所有给定条件的行。

一个AND子句,只有两个过滤条件。可以增加多个过滤条件,每个条件间都要使用AND关键字。

ORDER BY子句,放在WHERE子句之后。

OR: WHERE子句中使用的关键字,用来表示检索匹配任一给定条件的行。

SQL(像多数语言一样)在处理OR操作符前,优先处理AND操作符。

圆括号具有比AND或OR操作符更高的优先级。

任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。

IN:WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当。

IN操作符一般比一组OR操作符执行得更快。

IN的最大优点是可以包含其他SELECT语句,能够更动态地建立WHERE子句。

NOT: WHERE子句中用来否定其后条件的关键字。

通配符(wildcard)用来匹配值的一部分的特殊字符。

搜索模式(search pattern)由字面值、通配符或两者组合构成的搜索条件。

说明:区分大小写根据DBMS的不同及其配置,搜索可以是区分大小写的。如果区分大小写,则’fish%’与Fish bean bag toy就不匹配。

除了能匹配一个或多个字符外,%还能匹配0个字符。%代表搜索模式中给定位置的0个、1个或多个字符。

'%’不会匹配名称为NULL的行。

下划线的用途与%一样,但它只匹配单个字符,而不是多个字符。

与%能匹配多个字符不同,_总是刚好匹配一个字符,不能多也不能少。

此语句的WHERE子句中的模式为’[JM]%'。这一搜索模式使用了两个不同的通配符。[JM]匹配方括号中任意一个字符,它也只能匹配单个字符。因此,任何多于一个字符的名字都不匹配。[JM]之后的%通配符匹配第一个字符之后的任意数目的字符,返回所需结果。

也可以使用NOT操作符得出类似的结果。^的唯一优点是在使用多个WHERE子句时可以简化语法:

例如:

拼接(concatenate)

将值联结到一起(将一个值附加到另一个值)构成单个值。

操作符可用加号(+)或两个竖杠(||)表示。

说明:是+还是||?SQL Server使用+号。DB2、Oracle、PostgreSQL和SQLite使用||。在MySQL和MariaDB中,必须使用特殊的函数。

说明: TRIM函数大多数DBMS都支持 RTRIM()(去掉字符串右边的空格)、 LTRIM()(去掉字符串左边的空格)以及 TRIM()(去掉字符串左右两边的空格)。

SQL支持列别名。别名(alias)是一个字段或值的替换名。别名用 AS关键字赋予。

AS关键字可选,最好用它。

提示:如何测试计算

SELECT语句为测试、检验函数和计算提供了很好的方法。虽然SELECT通常用于从表中检索数据,但是省略了FROM子句后就是简单地访问和处理表达式,例如SELECT 3*2;将返回6,SELECT Trim(' abc');将返回abc,SELECT Curdate();使用Curdate()函数返回当前日期和时间。

UPPER()函数:将文本转换为大写。

SQL函数不区分大小写,因此upper(), UPPER(), Upper()都可以,substr(), SUBSTR(), SubStr()也都行。

sql必知必会第四版和第五版区别

就好比你开车一样,SQL就相当于你的驾驶技术,而mysql就相当于你的车。而你会驾驶技术不一定能开好所有的车,因为每种车都会有自己的不同之处。就好比MySQL和Oracle与SQLServer的不同之处一样。

内容简介

《SQL必知必会》(第3版)SQL是目前使用最为广泛的数据库语言之一。本书没有涉及理论,而是从实践出发,由浅入深地讲解了广大读者所必需的SQL知识,适用于各种主流数据库。

实例丰富,便于查阅。本书涉及不同平台上数据的排序、过滤和分组,以及表、视图、联结、子查询、游标、存储过程和触发器等内容,通过本书读者可以系统地学习到SQL的知识和方法。

作者简介

BenForta是世界知名的技术作家,也是Adobe技术界最为知名的专家之一,目前担任Adobe公司的高级技术推广专家。他具有计算机行业20多年工作经验,多年来撰写了十几本技术图书,其中不少是世界畅销书,已被翻译为十几种文字。除本书外,他撰写的《正则表达式必知必会》也即将由人民邮电出版社出版。

Pandas 必知必会的18个实用技巧,值得收藏!

干净整洁的数据是后续进行研究和分析的基础。数据科学家们会花费大量的时间来清理数据集,毫不夸张地说,数据清洗会占据他们80%的工作时间,而真正用来分析数据的时间只占到20%左右。

所以,数据清洗到底是在清洗些什么?

通常来说,你所获取到的原始数据不能直接用来分析,因为它们会有各种各样的问题,如包含无效信息,列名不规范、格式不一致,存在重复值,缺失值,异常值等.....

本文会给大家介绍一些Python中自带的Pandas和NumPy库进行数据清洗的实用技巧。

这是读取数据的入门级命令,在分析一个数据集的时候,很多信息其实是用不到的,因此,需要去除不必要的行或列。这里以csv文件为例,在导入的时候就可以通过设置pd.read_csv()里面的参数来实现这个目的。

先来感受一下官方文档中给出的详细解释,里面的参数是相当的多,本文只介绍比较常用的几个,感兴趣的话,可以好好研究一下文档,这些参数还是非常好用的,能省去很多导入后整理的工作。

当原始数据的列名不好理解,或者不够简洁时,可以用.rename()方法进行修改。这里我们把英文的列名改成中文,先创建一个字典,把要修改的列名定义好,然后调用rename()方法。

数据默认的索引是从0开始的有序整数,但如果想把某一列设置为新的索引,除了可以用read_csv()里的参数index_col,还可以用.set_index()方法实现。

另外补充,如果数据经过删除或结构调整后,我们可以重置索引,让索引从0开始,依次排序。

字符串str操作是非常实用的,因为列中总是会包含不必要的字符,常用的方法如下:

str.lower()是把大写转换成小写,同理,str.upper()是把小写转换成大写,将示例中用大写字母表示的索引转换成小写。

设置首字母大写

str.replace("a","")替换特定字符。这里把列中的a去掉,替换成空字符。

去除字符串中的头尾空格、以及\n\t。

str.split('x')使用字符串中的'x'字符作为分隔符,将字符串分隔成列表。这里将列中的值以'.'进行分割。

str.get()选取列表中某个位置的值。接着上面分割后的结果,我们用str.get(0)取出列表中前一个位置的数值,生成新的一列。

str.contains()判断是否存在某个字符,返回的是布尔值。

str.find("-")检测字符串中是否包含"-",如果包含,则返回该子字符串开始位置的索引值;如果不包含,则返回-1。

学完基本的字符串操作方法,我们来看一下如何结合NumPy来提高字符串操作的效率。

我们可以将Pandas中的.str()方法与NumPy的np.where函数相结合,np.where函数是Excel的IF()宏的矢量化形式,它的语法如下:

如果condition条件为真,则执行then,否则执行else。这里的condition条件可以是一个类数组的对象,也可以是一个布尔表达式,我们也可以利用np.where函数嵌套多个条件进行矢量化计算和判断。

接下来就要对列中的字符串进行整理,除了利用循环和.str()方法相结合的方式进行操作,我们还可以选择用applymap()方法,它会将传入的函数作用于整个DataFrame所有行列中的每个元素。

先定义函数get_citystate(item),功能是只提取元素中的有效信息。然后,我们将这个函数传入applymap(),并应用于df3,看起来是不是干净多了,结果如下:

如果你没听说过它的话,我不得强调它的重要性。输入下面的命令:

你会发现df1已经发生了改变。这是因为df2= df1并不是生成一个df1的复制品并把它赋值给df2,而是设定一个指向df1的指针。所以只要是针对df2的改变,也会相应地作用在df1上。为了解决这个问题,你既可以这样做:

也可以这样做:

这个命令用于检查值的分布。你想要检查下“c”列中出现的值以及每个值所出现的频率,可以使用:

下面是一些有用的小技巧/参数:

lsin()用于过滤数据帧。Isin()有助于选择特定列中具有特定(或多个)值的行。

在SQL中我们可以使用 SELECT* FROM… WHERE ID in(‘A001’,‘C022’,…)来获取含有指定ID的记录。如果你也想在Pandas中做类似的事情,你可以使用:

select_dtypes()的作用是,基于 dtypes的列返回数据帧列的一个子集。这个函数的参数可设置为包含所有拥有特定数据类型的列,亦或者设置为排除具有特定数据类型的列。

pivot_table()也是 Pandas中一个非常有用的函数。如果对 pivot_table()在 excel中的使用有所了解,那么就非常容易上手了。

如果需要计算样本的缺失率分布,只要加上参数axis=1

分为分组中有重复值和无重复值两种。无重复值的情况。

先按Mt列进行分组,然后对分组之后的数据框使用idxmax函数取出Count最大值所在的列,再用iloc位置索引将行取出。有重复值的情况

对ID进行分组之后再对分数应用rank函数,分数相同的情况会赋予相同的排名,然后取出排名为1的数据。

介绍两种高效地组内排序的方法。

用这种方式转换第三列会出错,因为这列里包含一个代表 0的下划线,pandas无法自动判断这个下划线。为了解决这个问题,可以使用 to_numeric()函数来处理第三列,让 pandas把任意无效输入转为 NaN。

df= df.apply(pd.to_numeric, errors='coerce').fillna(0)

方法一:只读取切实所需的列,使用usecols参数

方法二:把包含类别型数据的 object列转换为 Category数据类型,通过指定 dtype参数实现。

希望本文的内容对大家的学习或者工作能带来一定的帮助,每天进步一点点,加油~

文章分享结束,sql必知必会和SLQ必知必会电子版的答案你都知道了吗?欢迎再次光临本站哦!

有源码怎么做app,安卓appcheckio编程游戏 编程小游戏scratch