select基本查询
SELECT语句返回的结果叫做结果集(RESULTSET)。它是一个表格
语句:
SELECT *|{[DISTINCT] column [alias],...} FROM table;
参数含义:
SELECT标识要显示的列。
FROM标识包含这些列的表。
术语:
语句(statement):一条语句由多个子句构成
子句(clause):子句是一条语句的组成部分
SQL语句的语法表示规则:
大写字母表示关键字(保留字)
{}大括号表示里面的内容必须写一个
[]中括号表示里面的内容是可选的
| 表示二选一
, …表示前面的内容可重复若干个
小写字母表示此处应该使用实际的名称
SQL语句编写注意事项
SQL语句不区分大小写。
可以在一行或多行上输入SQL语句。
关键字不能缩写或跨行分割。
子句通常放在单独的行上。
缩进用于增强可读性。
每条语句以分号结束
空值
空值是不可用,未分配,未知或不适用的值。
空不等于零或空格。
列别名:
重命名列标题
对计算有用
紧随列名之后(列名和别名之间也可以有可选的AS关键字)
如果包含空格或特殊字符,或者区分大小写,则需要双引号
连接符操作 || :
SELECT t.department_name ||'is a '|| t.department_id FROM hr.departments t where
t.department_id='10';
输出结果:
Administration is a 10
将列或字符串链接到其他列
用两个竖线(||)表示
创建作为字符表达式的结果列
SET@@sql_mode=‘STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT’;
注:SELECT ‘abc’||‘def’; --默认||是or操作
查看表结构
使用DESCRIBE命令显示表的结构。
DESC 表名
用MySQL数据库desc 表名时,我们看到Key那一栏,可能会有4种值,即 ’ ',‘PRI’,‘UNI’,‘MUL’。
1、如果Key是空的,那么该列值的可以重复,表示该列没有索引,或者是一个非唯一的复合索引的非前导列;
2、如果Key是PRI,那么该列是主键的组成部分;
3、如果Key是UNI,那么该列是一个唯一值索引的第一列(前导列),并别不能含有空值(NULL);
4、如果Key是MUL,那么该列的值可以重复,该列是一个非唯一索引的前导列(第一列)或者是一个唯一性索引的组成部分但是可以含有空值NULL。
基本字符匹配(regexp)
regexp与like类似,都来用于匹配字符,但是比like具有更强大的功能
regexp匹配字符串中是否含有某些文本
语句:
匹配内容:
SELECT * FROM hr.employees e where e.first_name REGEXP 'D'
语句:
匹配内容:
select * from hr.employees e where e.employee_id regexp '163';
like和regexp的区别
regexp的查询比like更精准更加灵活