MySQL学习笔记整理:基本select语句(二)

前言

在MySQL学习笔记整理(一)中我们梳理了一些MySQL的基本概念,这篇文章则是从基本select语句入手,来进一步学习MySQL。

本系列课程链接:
MySQL学习笔记:基本概念(一)

SQL语言规则(一定遵守)

  1. SQL写在多行时,为了提高可读性,各子句分行写,必要时使用缩进。
  2. 每条语句以;结束,有时候也可以以/g, /G结束(结果与以;结束产生的东西不同)。
  3. 关键词不能被缩写或者分行。
  4. 字符串、日期、时间类型的数据用单引号’ '表示。
  5. 列的别名(alias)尽量用双引号" ",并且不建议省略as。

SQL语言规范(建议遵守)

由于MySQL在Windows环境下是大小写不敏感的,但是在linux环境下是大小写敏感的(对表名列名敏感,对关键字等不敏感)。
因此建议数据库名、表名、表别名、变量名等都小写。关键字、函数名、绑定变量等都大写。

导入语句

导入现有的数据表、表的数据: source 文件的全路径名

基本select语句

语句解释说明
SELECT field1, field2 FROM table;选择 field1field2 字段从 table 中。
SELECT field1 AS “alias1”, field2 AS “alias2”… FROM table;选择 field1field2 字段,并分别用别名 alias1alias2
SELECT DISTINCT field1 FROM table;选择 field1 字段中的唯一值。
IFNULL(field1,0)如果 field1null,则返回 0;否则返回 field1 的值。
SELECT ‘hi’ AS “alias1”,88, field1,… FROM table;选择常量 'hi'88,以及 field1 等字段。
DESCRIBE table; == DESC table;显示表 table 的结构信息。
SELECT * FROM table WHERE conditions;选择 table 中满足条件 conditions 的所有字段。
SELECT * FROM table ORDER BY feild1 ASC, alias DESC;选择 table 中的所有字段,并按 feild1 升序和 alias 降序排序。
SELECT … FROM … WHERE … ORDER BY … LIMIT …;选择满足条件的记录,并按指定顺序排序,最后限制返回的记录数。
SELECT … FROM … LIMIT start, pageSize;选择记录并分页显示,start=0 代表不偏移。
SELECT field1, field2 FROM table1, table2;选择 table1table2 中的 field1field2 字段,进行笛卡尔积操作。

null

  • null不等同于0, ‘’, ‘null’。
  • null参与运算的话,结果一律也为null

符号比较运算符

=, <=>, <> (!=), >=, <=, <, >
结果真为ture,假为false,其他情况为null。
如果数值和字符串比较,字符串会隐式转换。如果两个字符串相比较,则是按照字符串内容相同才为true。null参加比较结果为null。
<=>:安全等于,数值与null相比较,等于null的会为true。为null而设计的。

非符号类型运算符

IS NULL | IS NOT NULL | ISNULL()
LEAST() | GREATEST()
BETWEEN … AND … (包括边界)
NOT BETWEEN … AND … | OR
IN (set) | NOT IN (set)
LIKE 模糊查询,配合%使用(代表不确定个数的字符)配合_使用(代表一个不确定的字符)如果_要被当做本义使用,需要转义字符
REGEXP | RLIKE 正则表达式

逻辑运算符

逻辑运算符:在比较之前就是真或假,比较完后还是真或假。
NOT (!) | AND (&&) | OR (||)
XOR (异或,一真一假则为真)

位运算符

包含&,|,^,~,>>,<<

实践中需要注意的点

  • 字段名与关键字、保留字冲突,字段名要加上着重号``
  • DUAL: 伪表
  • 在SQL中 + 没有连接的作用,如果数值+‘字符串’,字符串会隐式转换为数值。如果数值+null,结果为null。分母为0,结果为null。

e.g.
100 + ‘1’ (结果为101)
100 + ‘a’ (结果为100,'a’看做0)
100 + null (结果为null)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值