mysql学习笔记

目录

    • SELECT
        • 命令语法:
        • 命令含义:
      • distinct(去重)
        • 命令语法:
        • 命令含义:
      • alias(别名)
        • 表语法:
        • 列语法:
      • LIMIT
        • 命令语法:
        • 命令含义:
    • WHERE
        • 命令语法:
        • 命令含义:
      • IN
        • 命令语法:
        • 命令实例:
      • 运算符
      • LIKE
        • 命令语法:
        • 命令实例:
      • between
      • and & or
      • order by(排序)
      • join
      • union
        • union 语法:

基本结果有 SELECT 子句,FROM 子句,WHERE 子句组成的查询块
SELECT <字段名>
/ntl&FROM <表或视图名>
WHERE <查询条件>

SELECT

命令语法:

SELECT  [ALL| DISTINCT]
                 {*|table.*|[table.] field1 [as alias1] [,[table.] field2 [as alias2]][...]}
FROM    表名 [] ,表2

命令含义:

从数据库表里查询数据
结果被存在一个结果集中,称为结果集

(1)从“t_persons”表中选取所有的列
SELECT * FROM t_persons;
mysql学习笔记_第1张图片

(2)查询字段名为“last_name”和“first_name”的列内容(从名为“t_persons”的数据库表)
SELECT last_name,first_name FROM t_persons;
mysql学习笔记_第2张图片

distinct(去重)

命令语法:

select distinct 列名称 from 表名称;

命令含义:

去掉查询列名称中的重复数据

例如:
select DISTINCT city from t_persons;
从 t_persons 表里面查询所有不相同的城市名
关键字 DISTINCT 用于返回唯一不同的值
mysql学习笔记_第3张图片
select city from t_persons;
mysql学习笔记_第4张图片

alias(别名)

通过使用 SQL ,可以为列名称和表名称指定别名(Alias)

表语法:

SELECT 列名称 FROM 表名称 AS 别名;

表“t_persons”,我们指定别名“p”

SELECT p.last_name FROM t_persons AS p WHERE p.last_name='Adams' OR p.first_name='Carter';

mysql学习笔记_第5张图片

列语法:

SELECT 列名称 AS 别名 FROM 表名称;

表“t_persons”中列“last_name”和“first_name”,分别指定别名“Family”和“Name”

SELECT last_name AS Family, first_name AS Name FROM t_persons;

mysql学习笔记_第6张图片

LIMIT

命令语法:

SELECT 列名称 FROM 表名称 LIMIT 偏移量;

命令含义:

查询返回指定的数目
例如:

SELECT * FROM t_persons LIMIT 3; //返回前3条

mysql学习笔记_第7张图片

SELECT * FROM t_persons LIMIT 3,1;//返回3条后的一条数据——即第四条数据

mysql学习笔记_第8张图片

WHERE

命令语法:

 SELECT  [ALL| DISTINCT]
              {*|table.*|[table.] field1 [as alias1] [,[table.] field2 [as alias2]][...]}
  FROM    表名 [] ,表2
  [WHERE ...]

命令含义:

根据条件从表中查询数据,如果有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句

IN

IN 操作符可以在 WHERE 子句中规定多个值

命令语法:

SELECT 列名称 FROM 表名称 WHERE 列名称 IN (值1, 值2,…);

命令实例:

1、从表“t_persons”中选取姓氏为“Adams”和“Carter”的人

select last_name from t_persons where last_name in('Adams','Carter');

select * from t_persons where last_name in('Adams','Carter');

mysql学习笔记_第9张图片mysql学习笔记_第10张图片

in 后面不仅仅可以是字符串,还可以是记录集
select * from t_persons where last_name in(select last_name from t_persons);

mysql学习笔记_第11张图片

运算符

mysql学习笔记_第12张图片注:在一些版本的SQL中,操作符 <> 可以写为 !=

SELECT * FROM t_persons WHERE year>1975;

mysql学习笔记_第13张图片

LIKE

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式
mysql学习笔记_第14张图片SQL 通配符必须与 LIKE 运算符一起使用


命令语法:

SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE 表达式

命令实例:

1、从“t_persons”表中选取居住在以“g”结尾的城市里的人:

select * from  t_persons where  city like "%g";     //错

select * from  t_persons where  city like "%g";      //对

如果报ERROR 1267 (HY000): Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'的错,可能是有什么符号的编码问题。比如我上面第一个就是%的问题。因此如果复制的时候出错了,可能自己手敲一遍就好了

mysql学习笔记_第15张图片
2、从“t_persons”表中选取居住不包含“eij”的城市里的人:

select * from t_persons where city not like '%eij%';
select * from t_persons where first_name like '_eij%';

mysql学习笔记_第16张图片

between

between 操作符在 where 子句中使用,作用是选取介于两个值之间的数据范围
操作符between … and 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期
命令语法:
SELECT 列名称 FROM 表名称 WHERE 列名称 BETWEEN 值1 AND 值2;

查询表中列值在值1与值2之间的数据

select * from t_persons where year between 1975 and '1985';

数字可加引号可不加
mysql学习笔记_第17张图片

select * from t_persons where last_name between 'b' and 'g';

字符必须加引号
b < bush < g < gates
所以产生这种“包前不包后”的现象
mysql学习笔记_第18张图片

不包含:select * from t_persons where last_name not between 'b' and 'g';
mysql学习笔记_第19张图片

and & or

and 两个条件都要成立
or 只要有一个条件成立就行

order by(排序)

默认按照升序对记录进行排序 asc
如果想要降序排序,使用 DESC 关键字
select * from t_persons order by city desc;
按照城市首字母,逆序输出
mysql学习笔记_第20张图片

join

JOIN 用于根据两个或多个表中的列之间的关系,从这些表中查询数据

连接分为:
INNER JOIN(JOIN 内连接):
如果表中有至少一个匹配,则返回行
SELECT 列名 FROM 表1 INNER JOIN 表2 ON 表1.列名=表2.列名

LEFT JOIN(左连接):
即使右表中没有匹配,也从左表返回所有的行
SELECT 列名 FROM 表1 LEFT JOIN 表2 ON 表1.列名=表2.列名

RIGHT JOIN(右连接):
即使左表中没有匹配,也从右表返回所有的行
SELECT 列名 FROM 表1 RIGHT JOIN 表2 ON 表1.列名=表2.列名

FULL JOIN(全连接):
只要其中一个表中存在匹配,就返回行
SELECT 列名 FROM 表1 FULL JOIN 表2 ON 表1.列名=表2.列名

union

用于合并两个或多个 SELECT 语句的结果集

union 语法:

SELECT 列名 FROM 表1 UNION SELECT 列名 FROM 表2

select last_name from t_persons  union select city from t_persons;

mysql学习笔记_第21张图片
如果要允许重复的值,得使用 union all。

select last_name from t_persons  union all select city from t_persons;

mysql学习笔记_第22张图片

你可能感兴趣的:(mysql,mysql)