目录

一.DBMS分为两类

二.show

1.显示 show

2.显示表结构 desc,describe

三.select

1. 起别名as。

2.去重distinct

3.限制结果limit

4.可以指定数据库

5.数值运算 +

6.连接符concat

7. between A and B

8. 不等于和等于 <>, <=>

9.排序order by

10.将值与串比较需要加引号,值与值比较不需要加引号;

四.where

1.and or in not

2. 空置NULL检测

3.通配符———转义字符escape

五.正则表达式:regexp

六.数据库utf8

七.函数

1.length 求字符长度

2.concat 连接操作

3.upper,lower 大小写操作

4.substr ,substring一样  截取字符

5.instr 返回子串的首个索引位置。

6.trim   去前后空格,或者字符,(中间的不去)

7.lpad 左填充 。rpad右填充

8.replace  替换

八.数学函数。

1.round 四舍五入

2.ceil 向上取整

3.向下取整。

4.truncate 截断几位小数。

5.mod取余

九.日期函数

1.select now(); 返回当前日期

2.获取指定年月日小时分钟。

3.将指定格式转换成日期

4.date_format 将日期转化成字符

十. 流程控制

1.if

2.case when then 流程控制

十一.聚集函数

1.sum, avg, 只支持数值型

max, min,count;可以处理任何类型

2.count详解

十二.分组筛选

1.分组前的筛选

2.分组后的筛选

3.按多个字段分组


一.DBMS分为两类

基于共享文件系统的DBMS :Access

给予客户机——服务器的DBMS:  MySQL Oracle、SqlServer.

二.show

1.显示 show

show status;   // 用于显示广泛的服务器状态信息
show create database;    //显示创建特定的数据库
show create table;       //显示创建特定的数据表
show grants;             //用来显示授予用户的安全权限
show errors;             //显示服务器错误
show warning;           //显示服务器警告
help show;               //显示可支持的show语句

2.显示表结构 desc,describe

显示表departments 的结构。

DESC departments;

三.select

1. 起别名as。

如果别名有特殊符号。比如说空格可以用双引号把别名引起来例如“first name”

SELECT first_name,last_name AS name FROM employees;

2.去重distinct

不能部分使用distinct

SELECT DISTINCT vend_id,prod_price FROM products;  //对后面两列都是distinct

select distinct 字段名 from 表名;

3.限制结果limit

SELECT last_name FROM employees LIMIT 5;
//显示五行
SELECT last_name FROM employees LIMIT 5,6;
//从第五条记录开始,显示六行, 注意首条记录是:0

4.可以指定数据库

SELECT products.prod_name FROM crashcoutse.products;

5.数值运算 +

作用:做加法运算
select 数值+数值; 直接运算
select 字符+数值;先试图将字符转换成数值,如果转换成功,则继续运算;否则转换成0,再做运算
select null+值;结果都为null

6.连接符concat

+只能做运算符不能做连接符。所以用CONCAT作为连接符。

SELECT CONCAT(first_name,last_name) AS name FROM employees;

7. between A and B

不能调转两个数AB,如果调转不会报错,显示的结果为空。包括端点的临界值。

8. 不等于和等于 <>, <=>

<>  不等于

<=>安全等于      如果等于返回true 不等于返回false

9.排序order by

SELECT prod_id ,prod_price FROM products ORDER BY prod_price DESC,prod_name;
//默认升序排列asc,可设置为降序desc排列。
//desc只能作用于他前面的参数。区别于distinct
//排序顺序可以不在查找的内容里。比如说上面的order by prod_name。

10.将值与串比较需要加引号,值与值比较不需要加引号;

SELECT prod_name,prod_price FROM products WHERE prod_price >= 20;
//不需要单引号
SELECT prod_name,prod_price FROM products WHERE prod_name = 'fuses';
//需要加单引号

四.where

1.and or in not

and 运算次序比or的高 为了提高可读性,在运算的时候多使用括号。

select first_name, salary from employees where salary in(2500,3500);
//只会查找2500,和3500这两个salary的值的数据select first_name, salary from employees where salary in(2500,3500,2600);
//可以这样用。select first_name, salary from employees where salary between 2500 and 3500;
//会查找2500~3500所有salary值的数据

MYSQL 支持NOT 对IN ,BETWEEN ,和EXISTS 句子取反。和大多数DBMS允许NOT对各种条件取反有很大差别。

2. 空置NULL检测

ifnull函数
功能:判断某字段或表达式是否为null,如果为null 返回指定的值,否则返回原本的值

select ifnull(commission_pct,0) from employees;

isnull函数
功能:判断某字段或表达式是否为null,如果是,则返回1,否则返回0

is NULL   只能用来判断是不是null不能用来判断数值。大多用在where语句里

select  id from employees where age is 20;
这样写是错误的

is不能单独拿出来

 ​

有null第二条就不返回了

3.通配符———转义字符escape

//查询员工名中第二个字符为_的员工名。
SELECT last_name FROM employees WHERE last_name LIKE '_\_';
SELECT last_name FROM employees WHERE last_name LIKE '_$_'ESCAPE '$';

五.正则表达式:regexp

大致就是like 加上通配符就和regexp一样

'.'点是正则表达式:匹配任意一个字符,不能匹配空字符。

 ​

'|'类似于or

SELECT prod_name FROM products WHERE prod_name REGEXP '1000|2000'
ORDER BY prod_name;
//可匹配prod_name 中有1000或者有2000的名字

[123]定义一组字符,可从1,2,3中任意匹配一个都符合

[^123]匹配除了这些字符以外的。

SELECT prod_name FROM products WHERE prod_name REGEXP '[123] Ton' ORDER BY prod_name;
//可以匹配含有'1 Ton'或者'2 Ton'或者'3 Ton'的数据。
//相当于|  'or'

六.数据库utf8

utf8 一个汉字三个字节

GBK一个汉字两个字节。

七.函数

1.length 求字符长度

SELECT LENGTH('john');          //四个字符
SELECT LENGTH('刘清风hahaha');   //十五个字符  utf8一个中文三个字符

2.concat 连接操作

SELECT CONCAT(last_name,' ',first_name)  as 'new name' FROM employees;
//concat 组合的时候可以添加字符,可以有别名。

3.upper,lower 大小写操作

SELECT UPPER('john');
//改为大写
SELECT LOWER('JOHN');
//改为小写

4.substr ,substring一样  截取字符

SELECT SUBSTR('今夜月色真美',5);
//输出  真
//索引中从1开始不是零区别于limit。
SELECT SUBSTR('今夜月色真美',3,2);
//月色select concat(upper(substr(first_name,1,1)),substr(first_name,2),' ',upper(substr(last_name,1,1)),substr(last_name,2))  as 'new name' from employees;
//把姓首字母大写,名首字母大写合并在一块,名和姓,中间空格取别名输出

5.instr 返回子串的首个索引位置。

select instr('今晚月色真美,月色绮丽','月色');

 ​

6.trim   去前后空格,或者字符,(中间的不去)

select length(trim('     刘 清风     ')) as out_put;select length(trim( 'a' from ' aaa刘aa清风aaa'));

7.lpad 左填充 。rpad右填充

select lpad('刘清风', 10,'*') as out_put;select lpad('刘清风', 2,'*') as out_put;

8.replace  替换

select replace('曾经我也想过一了百了,一了百了','一了百了','再活五百年');

八.数学函数。

1.round 四舍五入

select round(3.33);select round(-2.59);

2.ceil 向上取整

select ceil (3.00);
select ceil(3.09);

3.向下取整。

mysql> select floor (-9.9);
+--------------+
| floor (-9.9) |
+--------------+
|          -10 |
+--------------+
1 row in set (0.07 sec)

4.truncate 截断几位小数。

mysql> select truncate(1.699999,1);
+----------------------+
| truncate(1.699999,1) |
+----------------------+
| 1.6                  |
+----------------------+
1 row in set (0.07 sec)

5.mod取余

mysql> select mod(10,-3);
+------------+
| mod(10,-3) |
+------------+
|          1 |
+------------+
1 row in set (0.07 sec)

九.日期函数

1.select now(); 返回当前日期

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2020-12-05 19:12:49 |
+---------------------+
1 row in set (0.07 sec)mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2020-12-05 |
+------------+
1 row in set (0.07 sec)
mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 19:13:19  |
+-----------+
1 row in set (0.07 sec)

2.获取指定年月日小时分钟。

mysql> select year(now());
+-------------+
| year(now()) |
+-------------+
|        2020 |
+-------------+

3.将指定格式转换成日期

mysql> select str_to_date('1998-3-2','%Y-%c-%d');
+------------------------------------+
| str_to_date('1998-3-2','%Y-%c-%d') |
+------------------------------------+
| 1998-03-02                         |
+------------------------------------+

4.date_format 将日期转化成字符

SELECT DATE_FORMAT(now(),'%y-%m-%d');

十. 流程控制

1.if

SELECT IF(10>5,'larger','small');

2.case when then 流程控制

②case情况1
case 变量或表达式或字段
when 常量1 then 值1
when 常量2 then 值2
...
else 值n
end

③case情况2
case 
when 条件1 then 值1
when 条件2 then 值2
...
else 值n
end

十一.聚集函数

1.sum, avg, 只支持数值型

max, min,count;可以处理任何类型

五个函数都忽略了null值,都支持distinct

SELECT SUM(salary) FROM employees;
SELECT AVG(salary) FROM employees;
SELECT MAX(salary) FROM employees;
SELECT MIN(salary) FROM employees;
SELECT COUNT(salary) FROM employees;    //为空的值有几个

2.count详解

SELECT COUNT(*) FROM employees;
SELECT COUNT(1) FROM employees;
SELECT COUNT(字段) FROM employees;
//都是求数据量, 前两者差不多。
//第三个要判断字段值是不是空,比较慢,求得数也不是所有字段的总量,是某字段不为null的总量
//因为一条数据总有一个不是null,所以第一个第二个都是。所有字段总量。

十二.分组筛选

1.分组前的筛选

2.分组后的筛选

注意having 用来代替where

3.按多个字段分组

MySQL基础知识复习(一)相关推荐

  1. 2021 版 Spring Boot 基础知识复习手册(2w字,建议收藏)

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:分享一套基于SpringBoot和Vue的企业级中后台开源项目,这个项目有点哇塞!个人原创100W +访问量博客: ...

  2. JDBC基础知识复习

    JDBC基础知识复习 1.JDBC连接数据库 1.1.导入JDBC驱动 1.2.注册JDBC驱动程序 1.3.创建连接对象 1.4.关闭JDBC连接 1.5.每种数据库对应的驱动名和URL 2.JDB ...

  3. linux基础知识复习

    @(tigerfive)[linux,基础知识,复习笔记] linux基础复习(一) 今天只整理框架,具体内容之后详细整理吧 文件管理 文件基本操作 创建文件和目录 拷贝文件和目录 剪切文件和目录 删 ...

  4. Java基础知识复习(一)

    Java基础知识复习(一) 目录 Java简介 命名规则 八种基本的数据类型 字面量 类型转换 变量的形态 逻辑运算符 位运算 移位运算 习题知识点 目录 Java简介 Java是由Sun公司在199 ...

  5. MySQL工作中的实际用_总结工作中经常用到的mysql基础知识

    总结工作中经常用到的mysql基础知识 发布时间:2020-06-08 11:27:30 来源:51CTO 阅读:217 作者:三月 本文主要给大家介绍工作中经常用到的mysql基础知识,文章内容都是 ...

  6. 2011计算机等级考试二级c语言公共基础教程.doc,2011年全国计算机等级考试二级c语言公共基础知识复习100题及答案.doc...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp资格/认证考试&nbsp>&nbsp计算机等级考试 2011年全国计算机等级考试二级c语言公 ...

  7. mysql基础知识(二)

    这一篇是第二部分,要查看第一部分,请查看这个链接 mysql基础知识(一) DQL语言 1.1简单的单表查询 查询表的通用格式:select [distinct] [*] [列名1,列名] from ...

  8. mysql基础知识(一)

    mysql是主流的关系型数据库管理系统(RDBMS---relation database management system),操作是需要用SQL(Structured Query Language ...

  9. 计算机二级的公共基础课水平测试,计算机二级公共基础知识复习试题含答案

    计算机公共基础课程,是针对高校非计算机专业学生设立的一门必修计算机基础课程.以下是由学习啦小编整理关于计算机二级公共基础知识复习试题含答案的内容,希望大家喜欢! 计算机二级公共基础知识复习试题含答案( ...

  10. java基础知识复习(上半)

    java基础知识复习 java为什么被发明? Green项目的确立,应用于像电视盒一样的消费类电子产品,语言本身本身中立. java的三大版本? javaSE的定位在于客户端,只要用于桌面应用软件的编 ...

最新文章

  1. 实战 | 深度学习轻松学:如何用可视化界面来部署深度学习模型
  2. java多线程间的通讯
  3. js中const,var,let的区别
  4. linux命令学习之:curl
  5. 设计模式09-组合模式
  6. 7k7k游戏盒与逗游游戏库,你更喜欢哪个
  7. 电脑软件从通过运行开启(耍帅必会)
  8. Oracle 系列 统计信息详解(Statistic)
  9. 案例学习——创建你的第一个Substance Designer材质球
  10. docker的容器间通信
  11. Blend Shape Pose Animation
  12. dedecms 自定义表单html,dedecms自定义表单和自定义表单如何用自己模板教程
  13. 程序员是如何开灯的 白话闲聊mqtt协议
  14. 拼插机器人课和围棋课_开学第一课和机器人比围棋的人是谁
  15. Beyond Compare 4.3.7 使用
  16. 第十三届蓝桥杯模拟赛(第一期)题解
  17. 永恒之蓝黑脏牛提权范围
  18. 论文引用率为零是什么情况?
  19. C# Get和Post
  20. 每周推荐 - 稻盛和夫的《活法》

热门文章

  1. CSS 相对/绝对(relative/absolute)定位系列
  2. 《等你下课》让我们一起一步一步搭建RocketMQ可视化管理控制台
  3. 在springmvc的Filter过滤器中更改请求参数,servletRequest.getParameter或者servletRequest.getParameterMap的参数教程
  4. java版mc植物生长条件_幼儿园《植物生长所需条件》的教案
  5. 《龙文鞭影》 | 典故大全,不用扬鞭自奋蹄
  6. Windows10 本机电脑IPv4地址更改方法
  7. Feign接口封装成独立的模块对外提供能力
  8. 牛客——救救企鹅(string 的操作)
  9. 氰化提金一如既往出现泡沫氰化提金专用消泡剂真有效果!
  10. LeetCode 13.罗马数字转整数 每日一题