基础语法
SELECT 查询列表 FROM 表名;
特点:
1、查询列表可以是:表中的字段、常量值、表达式、函数
2、查询结果是一个临时性的虚拟表格
1.查询表中单个字段
SELECT last_name FROM employees;
2.查询表中的多个字段
SELECT last_name,emaill FROM employees;
字段顺序不需要和表中一致
3.查询表中所有字段
SELECT * FROM employees;
4.查询常量值
SELECT 100;
SELECT 'john';
5.查询表达式
SELECT 5*6;
SELECT 100%10;
6.查询函数
SELECT VERSION();
7.起别名
1、便于对字段进行理解
2、如果查询的字段由重名情况,我们可以通过起别名的方式区分开来
#方式一:使用关键字"AS"
SELECT 100%10 AS "结果";
SELECT last_name AS "姓",first_name AS "名" FROM employees;
#方式二:使用空格
SELECT 100%10 "结果";
SELECT last_name "姓",first_name "名" FROM employees;
以上起别名时别名加双引号与单引号都可以,并且我发现不加引号也行。但建议加双引号。
8.去重——distinct
SELECT DISTINCT last_name FROM employees;
9.+号的作用
java中的+号:
1、运算符:两个操作数都为数值型
2、连接符:其中一个操作数为字符型
mysql中的+号:
1、只有一个功能——运算符
SELECT 100+90;-- 两个操作数都为数值型,作加法运算
SELECT "123"+93;-- 其中一方操作数为字符型时,mysql将试图把字符型数值转化为数值型。如果转换成功,则继续作加法运算;该查询结果为216
SELECT "john"+90;-- 如果转换失败,则将字符型数值转化为0,该查询结果为90
SELECT NULL+90;-- 只要一方为null,则执行结果为null
思考:如果两个相加的操作数都为字符型,那么执行结果是什么?
这里分三种情况:
1、两个操作数都是可转化为数值型的字符
结果正常运算
2、两个操作数其中一方是不可转化为数值型的字符
结果是0+另一方数值型字符。
3、两个操作数都是不能转化为数值型的字符
结果为0。
拼接函数——CONCAT(str1,str2,…..)
既然mysql中的+号不能像java中的+号那样有连接符的功能,那么我们在使用数据库的过程中需要使用的这样的功能时怎么办呢?mysql其实也贴心的为我们提供了函数来解决这个问题。
SELECT CONCAT("A","B","C");
SELECT CONCAT(last_name,first_name) AS "姓名" FROM employees;
注意:CONCAT函数和+号的一点特征很像,就是当被拼接字段值其中含有null时,结果会变为null。如果要避免这种情况发生,可以配合IFNULL(exp1,exp2)函数使用,将可能含有null值的列用这个函数做返回
操作数据库表时需要注意的
1、操作前需要先指定数据库
USE 数据库名称;
如果使用了数据库管理工具作查询一般不需要手动指定
2、字段名和Mysql系统关键字重名时,使用着重号`可以区分
SELECT `name` from employees;