搜索
首页数据库mysql教程Select语句,join,union用法

一、基本的SELECT语句

    1. “*”的注意事项:在SELECT语句中,用*来选取所有的列,这是一个应该抵制的习惯。

    虽然节省了输入列名的时间,但是也意味着获得的数据比真正需要的数据多的多。相应的,也会降低应用程序的性能及网络性能。

    良好的规则是只选所需。


    2. join子句

    jion是用来定义如何从多个表中选取数据并组合成一个结果集。

    jion必需是因为(1)我们所要获取的所有信息并不都在一个表中,或者(2)所要返回的信息都在一个表中,但是其上设置的条件信息却在另一个表中。

    jion的共同点是通过记录的连接列,把一条记录同一条或者多条其他记录进行匹配,从而产生出是这些记录的超级的记录。

        2.1 INNER JOIN

    INNER JOIN只返回进行联接的字段上匹配的记录。INNER JOIN是在做排除。

    自引用是为了某种原因把一个表联接回它自身。

    INNER JOIN是默认的联接方式。

        2.2 OUTER JOIN

    OUTER JOIN有左右联接之分,而INNER JOIN没有左右联接之分。

    RIGHT(LEFT) OUTER JOIN是既想要包含右侧表中的所有行,以及左侧表中有匹配记录的行。

        2.3 FULL JOIN

    FULL JOIN联接,就是要包含位于联接两侧的表中所有的行。

        2.4 CROSS JOIN

    CROSS JOIN没有ON联接符,并且将join一侧表中的每一条记录与另一侧的表中所有的记录联接起来。即联接表中的笛卡尔积。

    CROSS JOIN可用于提供样本数据和科学数据


    3. WHERE子句

    一些常用且不太熟悉的操作符:

    BETWEEN: BETWEEN num1 AND num2

    LIKE: LIKE "ANY%" %代表0个或者多个任意字符。_代表单个任意字符。[]表示括号中包含的任意单个字符。^排除下一个。

    EXISTS: EXISTS 查询语句。


    4. ORDER BY

    你知道吗?查询的返回结果通常是以字母或者数字顺序方式给出,这是偶然的。

    以何种方式给出,在没有指定的情况下,通常取决于SQLServer认为哪一种汇集数据的方式开销最小。因此,返回的结果通常是基于表中数据的物理顺序或者SQLServer用来找寻数据所使用的某个索引。

    默认降序DESC,升序是ASC

    ORDER BY 子句可以基于查询中使用的任何表中的任何字段来进行排序,无论该列是否包含在SELECT列表中。


    5. 使用GROUP BY 子句聚集数据

    一旦在查询语句中使用了GROUP BY,SELECT列表中的每一列要么包含在GROUP BY列表中,要不包含在聚集中。

    当聚集不与GROUP BY一起使用时,聚集只能与其他聚集一起位于SELECT列表中,而不能与列名搭配出现在SELECT列表中。

    除了COUNT(*) 之外,任何聚集函数都会忽略NULL值。


    6. HAVING子句

    仅当查询语句中有GROUP BY子句时使用HAVING子句。

    WHERE子句应用到形成组的每一行上,HAVING子句应用到组的聚集上。

    7. DISTINCT子句

    DISTINCT消除重复数据。如果值是相同的,则该值出现一次。

    DISTINCT出现在列表的开始处,或者出现在COUNT中。

    二、基本的INSERT语句

    1. 基本结构

    INSERT [INTO] table_name [table_column_list] VALUES (data_value_list)

    INTO是可以省略的。

    table_column_list建议都显式给出,一是增强可读性,二是以后即使是表的结构发生改变,也不会有所影响。

    2. INSERT INTO ... SELECT语句

    批量插入数据。

    INSERT [INTO] []


    三、UPDATE语句更改现有数据

    UPDATE

    SET = [, = ]

    [FROM ]

    [WHERE ]

    UPDATE 可以从一个表中生成数据,但是只影响一个表。


    四、DELETE语句

    DELETE

    [FROM]

    [FROM]

    WHERE

    有关DELETE的一个小例子:

    films表                                                           actors表

    filmId   |   filmname   |   yearmade                    filmId   |   firstname   |   lastname

    1               'host'           1984                            1                'li'               'si'

    2               'shit'            1999                            2               'wang'          'wu'

                                                                           3               'liu'               'li'

    从actors表中删除在films表中没有匹配的行:

    DELETE FROM actors

    FROM actors a

    LEFT JOIN films f on a.filmId = f.filmId

    WHERE f.filmname is null;

    MySQL 语法:delete a.* from actors a left join films f  on a.yearmade = f.yearmade where f. yearmade is null

    MySQL不支持双FROM。


    五、UNION

    UNION可以让两个或者更多个查询产生单个结果集。

    JOIN水平的合并数据,而UNION垂直的合并数据。

    UNION的几个要点:

    1. 要进行UNION的SELECT 列表中列的数量是相通的。

    2. 合并的结果集返回的标头仅取第一个查询。

    3. 数据类型必须相同或者隐式兼容。

    4. 返回默认是DISTINCT而非ALL。

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
在MySQL中使用视图的局限性是什么?在MySQL中使用视图的局限性是什么?May 14, 2025 am 12:10 AM

mysqlviewshavelimitations:1)他们不使用Supportallsqloperations,限制DatamanipulationThroughViewSwithJoinSorsubqueries.2)他们canimpactperformance,尤其是withcomplexcomplexclexeriesorlargedatasets.3)

确保您的MySQL数据库:添加用户并授予特权确保您的MySQL数据库:添加用户并授予特权May 14, 2025 am 12:09 AM

porthusermanagementInmysqliscialforenhancingsEcurityAndsingsmenting效率databaseoperation.1)usecReateusertoAddusers,指定connectionsourcewith@'localhost'or@'%'。

哪些因素会影响我可以在MySQL中使用的触发器数量?哪些因素会影响我可以在MySQL中使用的触发器数量?May 14, 2025 am 12:08 AM

mysqldoes notimposeahardlimitontriggers,butacticalfactorsdeterminetheireffactective:1)serverConfiguration impactactStriggerGermanagement; 2)复杂的TriggerSincreaseSySystemsystem load; 3)largertablesslowtriggerperfermance; 4)highConconcConcrencerCancancancancanceTigrignecentign; 5); 5)

mysql:存储斑点安全吗?mysql:存储斑点安全吗?May 14, 2025 am 12:07 AM

Yes,it'ssafetostoreBLOBdatainMySQL,butconsiderthesefactors:1)StorageSpace:BLOBscanconsumesignificantspace,potentiallyincreasingcostsandslowingperformance.2)Performance:LargerrowsizesduetoBLOBsmayslowdownqueries.3)BackupandRecovery:Theseprocessescanbe

mySQL:通过PHP Web界面添加用户mySQL:通过PHP Web界面添加用户May 14, 2025 am 12:04 AM

通过PHP网页界面添加MySQL用户可以使用MySQLi扩展。步骤如下:1.连接MySQL数据库,使用MySQLi扩展。2.创建用户,使用CREATEUSER语句,并使用PASSWORD()函数加密密码。3.防止SQL注入,使用mysqli_real_escape_string()函数处理用户输入。4.为新用户分配权限,使用GRANT语句。

mysql:blob和其他无-SQL存储,有什么区别?mysql:blob和其他无-SQL存储,有什么区别?May 13, 2025 am 12:14 AM

mysql'sblobissuitableForStoringBinaryDataWithInareLationalDatabase,而alenosqloptionslikemongodb,redis和calablesolutionsoluntionsoluntionsoluntionsolundortionsolunsolunsstructureddata.blobobobsimplobissimplobisslowderperformandperformanceperformancewithlararengelitiate;

mySQL添加用户:语法,选项和安全性最佳实践mySQL添加用户:语法,选项和安全性最佳实践May 13, 2025 am 12:12 AM

toaddauserinmysql,使用:createUser'username'@'host'Indessify'password'; there'showtodoitsecurely:1)choosethehostcarecarefullytocon trolaccess.2)setResourcelimitswithoptionslikemax_queries_per_hour.3)usestrong,iniquepasswords.4)Enforcessl/tlsconnectionswith

MySQL:如何避免字符串数据类型常见错误?MySQL:如何避免字符串数据类型常见错误?May 13, 2025 am 12:09 AM

toAvoidCommonMistakeswithStringDatatatPesInMysQl,CloseStringTypenuances,chosethirtightType,andManageEngencodingAndCollat​​ionsEttingsefectery.1)usecharforfixed lengengters lengengtings,varchar forbariaible lengength,varchariable length,andtext/blobforlabforlargerdata.2 seterters seterters seterters seterters

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具