MySQL--day2--基本的select语句

(以下内容全部来自上述课程)

SQL概述

结构化查询语句

1. SQL分类

  • DDL:数据定义(definition)语言:create、drop、alter...

  • DML:数据操作(manipulation)语言:insert、delete、update、select...

  • DCL:数据控制(control)语言:grant、revoke、commit、rollback、savepoint...

  • DQL:数据查询语句:select

  • TCL:事务控制语句:commit、rollback

2 SQL的规则和规范

2.1 规则

  • SQL可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进
  • 每条命令以;或\g或\G结束
  • 关键字不能被缩写也不能分行
  • 关于标点符号
    。必须保证所有的()、单引号、双引号是成对结束的
    。必须使用英文状态下的半角输入方式
    。字符串型和日期时间类型的数据可以使用单引号(')表示。列的别名,尽量使用双引号(""),而且不建议省略as

2.2 规范(建议)

  • 数据库名、表名、表别名、字段名、字段别名等都小写
  • SQL关键字、函数名、绑定变量等都大写

2.3 注释

  • 单行注释:#
  • 单行注释:-- 注释文字 --(--后面必须包含一个空格。)
  • 多行注释:/**/

3 基本的select语句

3.1 select...

sql 复制代码
select 1;
select 1+1 from daul;#daul  伪表

3.2 select...from

select 字段1,字段2,...from 表名;

sql 复制代码
# *:表中的所有的字段(或列)
select * from emp;

3.3 列的别名

sql 复制代码
# as:全称: alias(别名),可以省略
# 列的别名可以使用一对""引起来,不要使用''。
select employee_id emp_id,last_name as Lname,department_id "部门id",salary * 12 as "annual sal"
from employees;

3.4 去除重复行

sql 复制代码
#查询员工表中一共有哪些部门id呢?
#错误的:没有去重的情况 
SELECT department_id FROM employees;
#正确的:去重的情况
SELECT DISTINCT department_id FROM employees;
#错误的:
SELECT salary,DISTINCT department_id FROM employees;
#仅仅是没有报错,但是没有实际意义。 
SELECT DISTINCT department_id, salary FROM employees;

3.5 空值参与运算

sql 复制代码
# 1.空值: null
# 2. null不等同于0,", 'null' 
SELECT * FROM employees;
#3.空值参与运算:结果一定也为空。
SELECT employee_id,salary"月工资",salary *(1 + commission_pct) * 12 "年工资",commission_pct 
FROM employees;
#实际问题的解决方案:引入IFNULL
SELECT employee_id,salary "月工资",salary* (1 + IFNULL(commission_pct,0)) * 12 "年工资",commission_pct
FROM employees;

3.6 着重号 ' '

sql 复制代码
# order是关键字,所以要用着重号表示它是表名
select * from 'order';

3.7 查询常数

sql 复制代码
# 123是常数,后面查询有多少行它自己也会匹配相应行数
select 123,employee_id,last_name
from employees;

4 显示表结构

sql 复制代码
desc employees;

5 过滤数据

sql 复制代码
SELECT *
FROM employees 
#过滤条件
WHERE department_id = 90;
#练习:查询last_name为'King'的员工信息 
SELECT *
FROM employees
WHERE last_name = 'King';
相关推荐
Channing Lewis41 分钟前
sql server如何创建表导入excel的数据
数据库·oracle·excel
秃头摸鱼侠41 分钟前
MySQL安装与配置
数据库·mysql·adb
UGOTNOSHOT1 小时前
每日八股文6.3
数据库·sql
行云流水行云流水1 小时前
数据库、数据仓库、数据中台、数据湖相关概念
数据库·数据仓库
John Song1 小时前
Redis 集群批量删除key报错 CROSSSLOT Keys in request don‘t hash to the same slot
数据库·redis·哈希算法
IvanCodes1 小时前
七、Sqoop Job:简化与自动化数据迁移任务及免密执行
大数据·数据库·hadoop·sqoop
tonexuan2 小时前
MySQL 8.0 绿色版安装和配置过程
数据库·mysql
JohnYan2 小时前
工作笔记- 记一次MySQL数据移植表空间错误排除
数据库·后端·mysql
我最厉害。,。2 小时前
Windows权限提升篇&数据库篇&MYSQL&MSSQL&ORACLE&自动化项目
数据库·mysql·sqlserver
远方16092 小时前
20-Oracle 23 ai free Database Sharding-特性验证
数据库·人工智能·oracle