MySQL学习笔记5-----SQL规则和基本的SELECT语句

==============【康师傅的Day3笔记】=================

目录

1. SQL分类

DDL ( Data Definition Languages ) 数据定义语言

DML ( Data Manipulation Languages ) 数据操作语言

DCL ( Data Control Languages ) 数据控制语言

2. SQL语言规则与规范

2.1 基本规则

2.2 SQL大小写规范

2.3 SQL注释

2.4 命名规则

3.基本SELECT语句

3.1 最基本的查询语句:单独使用 SELECT

 3.2 给列起别名

3.3 删除重复行 

 3.4 空值参与运算

 3.5 ``````着重号`````

 3.6 查询常数

 4.显示表的结构

 5. 过滤数据*


1. SQL分类

DDL ( Data Definition Languages ) 数据定义语言

进行的一系列操作

CREATE 创建 \ ALTER 修改 \ DROP 删除 \ RENAME 重命名 \ TRUNCATE 清空

DML ( Data Manipulation Languages ) 数据操作语言

对表中的一条条记录进行操作

INSERT 增加 \ DELETE 删除 \ UPDATE 修改 \ SELECT 查询

DCL ( Data Control Languages ) 数据控制语言

COMMIT \ ROLLBACK 事务操作相关 \ SAVEPOINT \ GRANT \ REVOKE

2. SQL语言规则与规范

2.1 基本规则

1.可以写成一行,也可以分行写,要以 或者 \g 或者 \G 结尾

2.关键字不能被缩写,也不能被分行

3.必须使用英文半角模式

4.字符串型、日期时间类型数据可是使用 ‘ ’ 表示

5.列的别名,尽量使用 “ ” 表示,不建议省略 as

2.2 SQL大小写规范

1. 在windows环境下对大小写不敏感,自动忽略大小写

2.在Linux环境下对大小写敏感,严格区分大小写

        数据库名、表名、表的别名、变量名 严格区分大小写

        关键字、函数名、列名(或字段名)、列的别名忽略大小写

3.推荐的书写规范

        数据库名、表名、表别名、字段名等都小写

        SQL关键字、函数名、绑定变量都大写

2.3 SQL注释

        单行注释用 "#"  或者 "-- ", --后面一定要加一个空格才行!

        多行注释用 / *  * /

2.4 命名规则

1. 数据库、表名不得超过30个字符,变量名限制为29个字符

2.必须只能包括A-Za-z0-9_共63个字符

3.数据库名、表名、字段名中间不能包含空格

4.同一个MySQL软件中,数据库不能同名;同一个数据库中,表不能同名;同一个表中,字段不能同名

5.必须保证字段等没有个系统保留字冲突。如果坚持使用,请在SQL语句中使用 ` 引起来

6.保持字段名和类型的一致性

3.基本SELECT语句

3.1 最基本的查询语句:单独使用 SELECT

 SELECT基本语句是:

 SELECT 字段1,字段2,... FROM 表名;

        字段可以理解为 列 ,这个语句意在节选出整个大表中的这三项进行显示

  

* ”代表表中所有字段(列),即显示整个表:

 SELECT * FROM 表名;

单独执行一个非常简单的语句时,可以不用表或者使用伪表: 

SELECT ... ;
SELECT ... FROM DUAL; #DUAL是伪表,用来维持结构平衡

 3.2 给列起别名

黄色表出的是列的名字,也称字段,想给字段起一个别名有三种方式

1.用空格分隔开

SELECT 原名 别名 FROM 表名; 

 2. 用AS分隔,这里的AS不是介词,而是alias(别名)的简称

SELECT 原名 AS 别名 FROM 表名;

3.用 “ ” 把别名引起来。这种主要是可以解决起的别名里希望有空格的情况

SELECT 原名 “别名” FROM 表名;

         黄色的部分还可以生成一个新列!(太好玩了!)

         注意一下,当我们执行完起别名的语句后,会发现下面的字段都被修改成别名了,并且可能还会出现新的列。但是这个操作仅会在本次显示,并不会修改原来的表中字段

3.3 删除重复行 

         如果想要得到员工表中都涉及到哪些部门,单独查询出部门会出现大量的重复,这种情况下需要去重

         去重语句,加一个DISTINCT

SELECT DISTINCT 字段 FROM 表名;

         这次就没有重复信息啦!

 如果在这个语句中添加了多个字段,则拣选出来的是字段组合不重复的信息

 3.4 空值参与运算

        空值:NULL   不是0的意思,代表一种未定义,不知道的意思

        NULL参与运算时,无论加减乘除,结果也为NULL。即未知加已知=未知

这里由于commission_pct(奖金率)中有大量的NULL导致的  

解决方案:用IFNULL

IFNULL (可能含有NULL的字段,将NULL替代成什么)

 3.5 ``````着重号`````

        当表名或者字段名不小心用到了关键字的时候,要用着重号

        比如在atguigudb中有一个表名为order,我们想查询这个表的时候会出现报错。还发现这个表名也变成关键字的蓝色了,这就说明它占用了关键字的名字0.0

 用着重号引一下就好啦:

 3.6 查询常数

 可以用于添加一列表里没有的重复信息。字符串用 “ ” 引起来

 4.显示表的结构

 显示表中字段的详细信息,字段类型,约束等等

DESCRIBE 表名;
DESC 表名;

 5. 过滤数据*

        当我们只需要固定条件的某个信息时,需要过滤拣选数据

        过滤条件语句:

SELECT * FROM 表名 WHERE 条件;

过滤一下工资17000的员工信息:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值