mysql中的基础查询
基础查询
/*
语法:
select 查询列表/查询内容 from 表名;
有点类似于:System.out.println("打印内容");
特点:
1、查询列表/查询内容可以是:表中的字段、常量值、表达式、函数
2、查询的结果是一个虚拟的表格(你可以理解成查询结果是一个临时表格)
*/
注意:在select查询的时候,请先执行以以下USE 库名;比如 USE myemployees; 意思是我要使用employees库,或者说切换到myemployees库,以后我们写的sql语句,就全部是在操作myemployees库了。
USE myemployees;
案例:
#井号是单行注释
#1.查询表中的单个字段
SELECT email FROM employees;
#2.查询表中的多个字段
SELECT email, last_name, salary FROM employees; -- 使用,逗号把各个字段名隔开
#3.查询表中的所有字段
#方式1
SELECT
`employee_id`,
`first_name`,
`last_name`,
`phone_number`,
`last_name`,
`job_id`,
`phone_number`,
`job_id`,
`salary`,
`commission_pct`,
`manager_id`,
`department_id`,
`hiredate`
FROM
employees ;
哦,对了,还有一点要说一下:
SELECT `employee_id`, `first_name`, `last_name` from `employees`;
大家看上面的这条sql语句,每个字段名和表名都在两边加了`反引号,`符号叫反引号,就是着重号,为什么要在字段名和表名两边加上`反引号呢?
原因就是避免和 mysql 的本身的关键字冲突,下面我举个例子
你创建表的时候,定义了几个字段,其中有一个字段名叫from,那你查询数据的时候,写的sql语句如下
select from from 表名; -- 你的第一个from是字段名,第二个from才是mysql中的语法关键字,这样的话,有可能造成字段名、表名、数据库名等和mysql 的本身的关键字冲突,所以我们给字段名、表名、数据库名的两边加上`反引号,防止意外发生,所以我们给字段、表、数据库等取名字的时候,最好不要取和mysql中关键字相同的名字,别没事找事,别给自己找麻烦,而且你们看上面的那条sql语句多别扭,可读性/阅读性非常不好,别人看到你这条sql语句容易迷惑蒙圈,容易搞混搞糊涂。
为了便于阅读和理解,不建议使用关键字作为字段名、表名,同时,应该对数据库名、表名、字段名用一对反引号包含。
当然啦,SELECT `employee_id`, `first_name`, `last_name` from `employees`;这条语句你也可以不使用`反引号,可以写
成SELECT employee_id, first_name, last_name from employees;这样,都是ok的,只是如果你的字段名、表名、数据库名等如果是mysql关键字的话,就要用`反引号包起来
(`这个符号在mysql中的作用
` 是 MySQL 的转义符,避免和 mysql 的本身的关键字冲突,只要你不在列名、表名中使用 mysql 的保留字或中文,就不需要转义。
所有的数据库都有类似的设置,不过mysql用的是`而已。通常用来说明其中的内容是数据库名、表名、字段名,不是关键字。例如:
select from from table;
第一个from是字段名,最后的table表名,但是同时也是mysql关键字,这样执行的时候就会报错,所以应该使用
select `from` from `table`;
当然,为了便于阅读和理解,不建议使用关键字作为字段名、表名,同时,应该对数据库名、表名、字段名用一对反引号包含。
)
#方式2
SELECT * FROM employees;
#4.查询常量值、表达式、函数等
SELECT
last_name, `email`, "令狐冲", 'hellojack',
2 > 5,
2 < 5,
100 % 30,
"hello",
'okok',
666,
888.99,
'h',
TRUE,
FALSE,
'true',
NOW()
FROM
employees ;
#5.查询常量值
SELECT 888;
SELECT 'jack';
SELECT "令狐冲";
SELECT "tom";
#6.查询表达式
SELECT 100 % 30, 6 + 7, 20-3, 3*5;
#7.查询函数
SELECT
NOW(),
CURRENT_TIMESTAMP(),
VERSION(),
LOCALTIME(),
LOCALTIMESTAMP();
或者你也可以这样
SELECT
NOW(),
CURRENT_TIMESTAMP(),
VERSION(),
LOCALTIME(),
LOCALTIMESTAMP()
FROM
employees ;