Select语句
基本语法:
SELECT 查询列表 FROM 表名;
- 这里的select相当于Java中的 System.out.println(“要打印的东西”);
- 查询列表可以是:表中的字段、常量值、表达式、函数
- 查询的结果是一个虚拟的表格
举个栗子
查询表中的字段
eg1:查询表中的单个字段
SELECT age FROM student;
则将student 表中的所有age字段的值罗列出来
eg2:查询表中的多个字段
SELECT age,name,sex FROM student;
eg3:查询表中的所有内容
SELECT * FROM student;
注意点
在查询中如果字段名和关键字同名则可以使用“着重号”(键盘数字1左边的那个``)来进行区分
SELECT `NAME` FROM student;
查询常量值和字符值表达式及函数
要知道的:在MySQL中是没有“字符串”的概念,即只要是Java中的字符串在这里都被看作是字符,都用单引号
/**查询常量**/
SELECT 23;
/**查询字符**/
SELECT 'TOM';
/**查询表达式**/
SELECT 100%10;
/**查询函数**/
SELECT VERSION();
Select其他用法
-
起别名(提高了可读性)
方法①:
SELECT 100%10 AS 结果
SELECT firstName AS 姓, lastName AS 名 FROM student;
方法②:
SELECT firstName 姓, lastName 名 FROM student;
注意:当别名中有“空格、关键字”要用双引号或者单引号引注
SELECT salary AS “out put” FROM employees;
-
去重
SELECT DISTINCT department_id FROM employees;
-
加号(+)的作用
引入:Java中+号的作用:
①:运算符(两个操作数都为数值型)
②:连接符(只要有一个操作数为字符型)
MySQL中的+的作用:
在MySQL中+只有一个功能就是:具有运算符的作用
①:两个操作数都为数值型:进行加法运算
②:其中一个操作数为字符型:试图将字符型转换成数值型,如果转换成功则继续进行加法运算,若此字符无法转换成数值型则默认为0,然后在和其他数值型操作数进行加法运算;
注意:只要有一个操作数为null则运算结果是:null
既然+没有连接数据的作用,那么在MySQL中如果想要将数据连接在一起又该如何办呢?
CONCAT(参数1,参数2,…参数n);
SELECT
CONCAT(firstName,lastName)
AS 姓名
FROM student;
SELECT IFNULL(参数1,参数2);
参数1:用来判断是否为null
参数2:假如参数1为null,设置参数2为参数1的替代值
SELECT
IFNULL (age,0) AS 年龄
FROM student;