MySQL安装包:https://dev.mysql.com/downloads/installer/
安装教程:https://blog.csdn.net/bobo553443/article/details/81383194(引用一篇好文章)
参考网站:https://www.w3cschool.cn/sql/

对数据库常用命令

1、连接数据库
mysql -u用户名 -p密码
2、显示已有数据库

show databases;

3、创建数据库

create database sqlname;

4、选择数据库

use sqlname;

5、显示数据库中的表(先选择数据库)

show tables;

6、显示当前数据库的版本信息以及连接用户名

select version(),user();

7、删除数据库(删除时没有提示直接删除)

drop database sqlname;

8、查看当前使用的数据库名称

select database();

2020年11月10号,更新

使用MySQL Shell基本命令

1、连接命令

\connect root@localhost:3306

2、使用SQL命令操作

\sql

3、帮助命令

\h

4、查看数据库支持的存储引擎

show engines;

5、查看mysql的版本

select version();

6、查看表结构

desc table_name;

7、显示表的创建语句

show create table table_name;

8、显示表的当前状态

show table status like 'table_name';

创造数据

我在MySQL8.0里运行,所需要的数据库代码,首先创建一个数据库,然后进入数据库,再运行下面的SQL代码,创建需要的tables和数据。

CREATE TABLE EMP(EMPNO integer NOT NULL,ENAME VARCHAR(10),JOB VARCHAR(9),MGR integer,HIREDATE DATE,SAL integer,COMM integer,DEPTNO integer);INSERT INTO EMP values (7369, 'SMITH',  'CLERK',     7902, '1980-12-17',  800,  NULL, 20);
INSERT INTO EMP values (7499, 'ALLEN',  'SALESMAN',  7698, '1981-2-20',   1600, 300,  30);
INSERT INTO EMP VALUES (7521, 'WARD',   'SALESMAN',  7698, '1981-2-22',   1250, 500,  30);
INSERT INTO EMP VALUES (7566, 'JONES',  'MANAGER',   7839, '1981-4-2',    2975, NULL, 20);
INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN',  7698, '1981-9-28',   1250, 1400, 30);
INSERT INTO EMP VALUES (7698, 'BLAKE',  'MANAGER',   7839, '1981-5-1',    2850, NULL, 30);
INSERT INTO EMP VALUES (7782, 'CLARK',  'MANAGER',   7839, '1981-6-9',    2450, NULL, 10);
INSERT INTO EMP VALUES (7788, 'SCOTT',  'ANALYST',   7566, '1982-12-9',   3000, NULL, 20);
INSERT INTO EMP VALUES (7839, 'KING',   'PRESIDENT', NULL, '1981-11-17',  5000, NULL, 10);
INSERT INTO EMP VALUES (7844, 'TURNER', 'SALESMAN',  7698, '1981-9-8',    1500,    0, 30);
INSERT INTO EMP VALUES (7876, 'ADAMS',  'CLERK',     7788, '1983-1-12',   1100, NULL, 20);
INSERT INTO EMP VALUES (7900, 'JAMES',  'CLERK',     7698, '1981-12-3',   950,  NULL, 30);
INSERT INTO EMP VALUES (7902, 'FORD',   'ANALYST',   7566, '1981-12-3',   3000, NULL, 20);
INSERT INTO EMP VALUES (7934, 'MILLER', 'CLERK',     7782, '1982-1-23',   1300, NULL, 10);CREATE TABLE DEPT(DEPTNO integer,DNAME VARCHAR(14),LOC VARCHAR(13) );INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH',   'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES',      'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');CREATE TABLE T1 (ID INTEGER);INSERT INTO T1 VALUES (1);CREATE TABLE T10 (ID INTEGER);INSERT INTO T10 VALUES (1);
INSERT INTO T10 VALUES (2);
INSERT INTO T10 VALUES (3);
INSERT INTO T10 VALUES (4);
INSERT INTO T10 VALUES (5);
INSERT INTO T10 VALUES (6);
INSERT INTO T10 VALUES (7);
INSERT INTO T10 VALUES (8);
INSERT INTO T10 VALUES (9);
INSERT INTO T10 VALUES (10);CREATE TABLE T100 (ID INTEGER);INSERT INTO T100 VALUES (1);
INSERT INTO T100 VALUES (2);
INSERT INTO T100 VALUES (3);
INSERT INTO T100 VALUES (4);
INSERT INTO T100 VALUES (5);
INSERT INTO T100 VALUES (6);
INSERT INTO T100 VALUES (7);
INSERT INTO T100 VALUES (8);
INSERT INTO T100 VALUES (9);
INSERT INTO T100 VALUES (10);
INSERT INTO T100 VALUES (11);
INSERT INTO T100 VALUES (12);
INSERT INTO T100 VALUES (13);
INSERT INTO T100 VALUES (14);
INSERT INTO T100 VALUES (15);
INSERT INTO T100 VALUES (16);
INSERT INTO T100 VALUES (17);
INSERT INTO T100 VALUES (18);
INSERT INTO T100 VALUES (19);
INSERT INTO T100 VALUES (20);
INSERT INTO T100 VALUES (21);
INSERT INTO T100 VALUES (22);
INSERT INTO T100 VALUES (23);
INSERT INTO T100 VALUES (24);
INSERT INTO T100 VALUES (25);
INSERT INTO T100 VALUES (26);
INSERT INTO T100 VALUES (27);
INSERT INTO T100 VALUES (28);
INSERT INTO T100 VALUES (29);
INSERT INTO T100 VALUES (30);
INSERT INTO T100 VALUES (31);
INSERT INTO T100 VALUES (32);
INSERT INTO T100 VALUES (33);
INSERT INTO T100 VALUES (34);
INSERT INTO T100 VALUES (35);
INSERT INTO T100 VALUES (36);
INSERT INTO T100 VALUES (37);
INSERT INTO T100 VALUES (38);
INSERT INTO T100 VALUES (39);
INSERT INTO T100 VALUES (40);
INSERT INTO T100 VALUES (41);
INSERT INTO T100 VALUES (42);
INSERT INTO T100 VALUES (43);
INSERT INTO T100 VALUES (44);
INSERT INTO T100 VALUES (45);
INSERT INTO T100 VALUES (46);
INSERT INTO T100 VALUES (47);
INSERT INTO T100 VALUES (48);
INSERT INTO T100 VALUES (49);
INSERT INTO T100 VALUES (50);
INSERT INTO T100 VALUES (51);
INSERT INTO T100 VALUES (52);
INSERT INTO T100 VALUES (53);
INSERT INTO T100 VALUES (54);
INSERT INTO T100 VALUES (55);
INSERT INTO T100 VALUES (56);
INSERT INTO T100 VALUES (57);
INSERT INTO T100 VALUES (58);
INSERT INTO T100 VALUES (59);
INSERT INTO T100 VALUES (60);
INSERT INTO T100 VALUES (61);
INSERT INTO T100 VALUES (62);
INSERT INTO T100 VALUES (63);
INSERT INTO T100 VALUES (64);
INSERT INTO T100 VALUES (65);
INSERT INTO T100 VALUES (66);
INSERT INTO T100 VALUES (67);
INSERT INTO T100 VALUES (68);
INSERT INTO T100 VALUES (69);
INSERT INTO T100 VALUES (70);
INSERT INTO T100 VALUES (71);
INSERT INTO T100 VALUES (72);
INSERT INTO T100 VALUES (73);
INSERT INTO T100 VALUES (74);
INSERT INTO T100 VALUES (75);
INSERT INTO T100 VALUES (76);
INSERT INTO T100 VALUES (77);
INSERT INTO T100 VALUES (78);
INSERT INTO T100 VALUES (79);
INSERT INTO T100 VALUES (80);
INSERT INTO T100 VALUES (81);
INSERT INTO T100 VALUES (82);
INSERT INTO T100 VALUES (83);
INSERT INTO T100 VALUES (84);
INSERT INTO T100 VALUES (85);
INSERT INTO T100 VALUES (86);
INSERT INTO T100 VALUES (87);
INSERT INTO T100 VALUES (88);
INSERT INTO T100 VALUES (89);
INSERT INTO T100 VALUES (90);
INSERT INTO T100 VALUES (91);
INSERT INTO T100 VALUES (92);
INSERT INTO T100 VALUES (93);
INSERT INTO T100 VALUES (94);
INSERT INTO T100 VALUES (95);
INSERT INTO T100 VALUES (96);
INSERT INTO T100 VALUES (97);
INSERT INTO T100 VALUES (98);
INSERT INTO T100 VALUES (99);
INSERT INTO T100 VALUES (100);

第一章 检索记录

1.1 主要讲解select语句

查看所有行和列的数据
代码:

select * from emp;

*返回所有的列,但实际中最好指明查看的是哪一列

1.2 筛选行

只查看满足指定条件的行,使用where指明保留哪些行
查看部门编号为10的所有员工
代码:

select * from emp where deptno = 10

1.3 查看满足多个条件的行

使用or和and的语句
查看部门编号为10、有业绩提成的、部门编号为20、工资低于2000美元的所有员工
代码:

select *
from emp
where (deptno = 10
or comm is not null
or sal <= 2000 and deptno = 20)

1.4 筛选列

查看特定列的值
查看员工的名字、部门编号、工资
代码::

select ename,deptno,sal
from emp;

1.5 创建有意义的列名

sal是salary的缩写,但检索结果应该让人容易理解。
使用as关键字
代码:

select sal as salary, comm as commission
from emp;

1.6 在where语句中引用别名列

错误代码:

select sal as salary, comm as commission
from emp
where salary < 5000;

错误原因:where语句比select语句先执行
正确代码:(把查询包装成一个内嵌视图)

select *
from
(select sal as salary, comm as commission
from emp
) x
where salary < 5000

内嵌视图的别名为x

1.7 串联多列的值

使用concat函数
代码:

select concat(ename,'WORKS AS A',job) as msg
from emp
where deptno = 10;

1.8 在select语句里使用条件逻辑

如果员工的工资少于 2000 美元,就返回 UNDERPAID;如果超过 4000 美元就返回
OVERPAID;若介于两者之间则返回 OK。
代码:

select ename,sal,
case when sal <= 2000 then 'underpaid'when sal <= 4000 then 'overpaid'else 'OK'
end as status
from emp;

CASE 表达式能对查询结果执行条件逻辑判断。你可以为 CASE 表达式的执行结果取一个别
名,使结果集更有可读性。就本例而言,STATUS 就是 CASE 表达式执行结果的别名。ELSE
子句是可选的,若没有它,对于不满足测试条件的行,CASE 表达式会返回 Null。

1.9 限定返回行数

你想限定查询结果的行数。你不关心排序,任意 n 行都可以。
使用数据库的内置功能来控制返回的行数。
使用 LIMIT 子句。
代码:

select *
from emp limit 5;

1.10 随机返回若干行记录

你希望从表中获取特定数量的随机记录。
使用数据库的内置函数来随机生成查询结果。
在 ORDER BY 子句里使用该内置函数可以实现查询结果的随机排序。
代码:

select ename,job
from emp
order by rand() limit 5;

1.11 查找Null值

你想查找特定列的值为 Null 的所有行。
代码:

select *
from emp
where comm is null;

你也可以使用 IS NOT Null 来找到给定列的值不是 Null 的所有行。

1.12 把Null值转换为实际值

有一些行包含 Null 值,但是你想在返回结果里将其替换为非 Null 值。
使用 COALESCE 函数将 Null 值替代为实际值。
代码:

select coalesce(comm,0)
from emp;

1.13 查找匹配项

你想返回匹配某个特定字符串或模式的行。
你想从编号为 10 和 20 的两个部门中找到名字中含有字母 I 或职位以 ER 结尾的人。
结合使用 LIKE 运算符和 SQL 通配符 %。
代码:

select ename,job
from emp
where deptno in (10,20)
and (ename like '%I%' or job like '%ER');

被用于 LIKE 模式匹配操作时,运算符 % 可以匹配任意长度的连续字符。

本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/weixin_45092662。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。

SQL经典实例(第一章笔记)相关推荐

  1. sql经典实例_读书笔记 前三章

    sql经典实例_读书笔记 温故SQL以及数据库相关知识 1.检索记录 select * from emp //检索所有列 where dep = 10 //选择出指定行 or comm is not ...

  2. MySQL笔记(二)SQL经典实例(上)

    小明写这篇文章的目的是为了记录阅读<SQL经典实例>(安东尼-莫利纳罗著,刘春辉译)中的收获.这本书里面有MySQL.Oracle.Postgresql的语法实例.但本人目前用的是MySQ ...

  3. 《SQL Cookbook》 - 第一章 检索数据

    朋友推荐了一本书<SQL Cookbook>,翻译过来就是<SQL经典实例>,讲的都是SQL编写层面的案例,例如获得随机数.NULL值判断.求中位数.日期计算等,都是日常工作中 ...

  4. SQL经典实例(五)元数据查询

    列举模式中的表 Oracle select table_name from all_tables where owner = 'SCOTT'; MySQL select table_namefrom ...

  5. 《Python深度学习》第一章笔记

    <Python深度学习>第一章笔记 1.1人工智能.机器学习.深度学习 人工智能 机器学习 深度学习 深度学习的工作原理 1.2深度学习之前:机器学习简史 概率建模 早期神经网络 核方法 ...

  6. Spring第一章笔记

    Spring第一章笔记 第一步: 配置pom文件导入依赖 <dependencies><dependency><groupId>org.springframewor ...

  7. 计算机应用基础自学手写笔记,计算机应用基础第一章笔记.docx

    计算机应用基础第一章笔记 1.计算机工具的变迁 2.计算机的发展过程 3.冯.诺依曼计算机的工作原理 4.计算机系统的硬件和软件组成 5.计算机的性能指标 6.影响计算机的性能因素 7.数据在计算机中 ...

  8. 【智能计算系统笔记】第一章笔记及课后习题

    第一章笔记及课后习题 笔记 课后习题 1. 简述强人工智能和弱人工智能的区别. 2. 简述人工智能研究的三个学派. 3. 一个有两个输入的单个神经元构成的感知机能完成什么任务? 4. 深度学习的局限性 ...

  9. app研发录第一章笔记

    app研发录第一章笔记

最新文章

  1. auto关键字详解 C++
  2. EM不同气候条件下土壤稀有与丰富微生物类群的分化策略
  3. 施耐德电气推出 EcoStruxure 过程控制专家,IIOT 再添新利器
  4. CloudStack 制作window模板
  5. 007_Buzz事件
  6. linux7 rpmdb 修复,Linux[CentOS 7]rpmdb open failed错误修复
  7. 【转】C++11 并发指南五(std::condition_variable 详解)
  8. mysql定时执行存储过程
  9. Cracking the coding interview--Q1.4
  10. SAP CRM Category创建场景
  11. android EventBus 3.0 混淆配置
  12. 每个人都应该使用的Python 3中被忽略的3个功能
  13. 数据结构和算法练习网站_视频和练习介绍了10种常见数据结构
  14. java集群如何同步_Kafka 跨集群同步方案
  15. 连锁行业信息化的现状与问题
  16. HFSS19 官方中文教程系列 L06
  17. Python设计模式:命令模式
  18. httprunner 2.x学习4-测试用例分层
  19. 【数据集】PASCAL VOC2012数据集百度网盘链接
  20. Linux下屏幕亮度的调节

热门文章

  1. [附源码]计算机毕业设计网上书城网站Springboot程序
  2. python扩展tre
  3. 在 ASP.NET 網頁上加入浮水印
  4. 复杂网络代码_低代码的兴起,程序员要拒绝还是拥抱
  5. 中小型医院网络安全保障解决方案
  6. VirtualBox + Vagrant 安装虚拟机centos7
  7. 编写代码,实现信用卡诈检测。数据creditcard.csv。要求:使用多种机器学习算法训练模型,并对比结果。根据代和代码果,撰写作业。作业文件格式pdf,把源代码和输出结果拷贝到word文件中,根据
  8. python 画出函数的曲线与其中的切线
  9. 关于完美快速简单解决WIN11系统下IE浏览器直接跳转到EDGE浏览器问题的通知
  10. 运维基本功(五):Linux文件管理-用户管理