数据查询的语法格式:
SELECT [ALL|DISTINCT] {*|<表达式>,…,<表达式>}
FROM <表名>[, <表名>…]
[WHERE <条件表达式>]
[GROUP BY <列名>[, <列名>…][HAVING <谓词>]]
[ORDER BY <列名> [ASC|DESC] [, <列名> [ASC|DESC]…]
查询的结果仍然是一个表
SELECT语句的执行过程为:
- 根据WHERE子句的检索条件,从FROM子句指定的基本表或试图中选取满足条件的元组,再按照SELECT子句中指定的列,投影到结果表中
- 如果有GROUP子句,则将查询结果按照<列名>相同的值进行分组
- 如果GROUP子句后有HAVING短语,则只需输出满足HAVING条件的分组
- 如果有ORDER子句,查询结果还需要按照<列名>的值进行排序
查询指定的列
select name
from instructor;

select dept_name
from instructor;

我们可以发现这里是存在重复的
select distinct dept_name
from instructor;

SELECT ID,name,dept_name,salary
FROM instructor;

select * from instructor;

select ID,name,dept_name,salary*1.1
from instructor;

select ID,upper(name),dept_name,salary
from instructor;

| 函数 | 作用 |
|---|---|
| CHAR_LENGTH(s) | 返回字符串s的长度 |
| CONCAT(s1,s2,….) | 连接s1,s2…字符串 |
| UPPER(s) | 将字符串s的所有字母都变成大写字母 |
| LOWER(s) | 将字符串s的所有字母变成小写字母 |
| LEFT(s,n) | 返回从字符串s开始的前n个字符 |
| TRIM(s) | 去掉字符串s开始处和结尾处的空格 |
| REPEAT(s,n) | 将字符串s重复n次 |
| REPLACE(s,s1,s2) | 用字符串s2代替字符串s中的字符串s1 |
| REVERSE(s) | 将字符串s的顺序反过来 |
| 函数 | 作用 |
|---|---|
| ABS(x) | 返回x的绝对值 |
| RNAD() | 返回0~1的随机数 |
| ROUND(x) | 返回离x最近的整数 |
| POW(x,y), POWER(x,y) | 返回x的y乘方的值 |
| EXP(x) | 返回e的x乘方后的值 |
| MOD(x,y) | 返回x除以y以后的余数 |
| LOG(x) | 返回x的基数为2的对数 |
| LOG10(x) | 返回x的基数为10的对数 |
| SIN(x) | 返回x的正弦 |
select ID,name,dept_name,salary*1.1 as
salary_increase from instructor;

Select "UC",ID,name,dept_name,salary
from instructor;


select name from instructor
where salary between 90000 and 100000;

select name from instructor
where salary<=100000 and salary>=90000;

select name from instructor
where dept_name = 'Comp.Sci.' and salary>70000;

这里注意Comp.和Sci.之间有空格
select name from instructor
where dept_name = 'Com. Sci.' or 'Physics'
and salary > 70000;

我们可以看到这么写是错误的,我们换种写法
select name from instructor
where dept_name = 'Com. Sci.' or dept_name = 'Physics'
and salary > 70000;

我们可以看到虽然可以运行出结果,但是少了两个人
select name from instructor
where dept_name IN (’Comp. Sci.’, ‘physics’)
and salary >70000;

这里具体是为甚麽,我也不太清楚,如果有明白原因的大佬请在评论区指出~
select * from instructor
where ID = '76543'
希望能够多多支持,后续将会继续更新