SQL经典实例(第一章笔记)
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经典实例(第一章笔记)相关推荐
- sql经典实例_读书笔记 前三章
sql经典实例_读书笔记 温故SQL以及数据库相关知识 1.检索记录 select * from emp //检索所有列 where dep = 10 //选择出指定行 or comm is not ...
- MySQL笔记(二)SQL经典实例(上)
小明写这篇文章的目的是为了记录阅读<SQL经典实例>(安东尼-莫利纳罗著,刘春辉译)中的收获.这本书里面有MySQL.Oracle.Postgresql的语法实例.但本人目前用的是MySQ ...
- 《SQL Cookbook》 - 第一章 检索数据
朋友推荐了一本书<SQL Cookbook>,翻译过来就是<SQL经典实例>,讲的都是SQL编写层面的案例,例如获得随机数.NULL值判断.求中位数.日期计算等,都是日常工作中 ...
- SQL经典实例(五)元数据查询
列举模式中的表 Oracle select table_name from all_tables where owner = 'SCOTT'; MySQL select table_namefrom ...
- 《Python深度学习》第一章笔记
<Python深度学习>第一章笔记 1.1人工智能.机器学习.深度学习 人工智能 机器学习 深度学习 深度学习的工作原理 1.2深度学习之前:机器学习简史 概率建模 早期神经网络 核方法 ...
- Spring第一章笔记
Spring第一章笔记 第一步: 配置pom文件导入依赖 <dependencies><dependency><groupId>org.springframewor ...
- 计算机应用基础自学手写笔记,计算机应用基础第一章笔记.docx
计算机应用基础第一章笔记 1.计算机工具的变迁 2.计算机的发展过程 3.冯.诺依曼计算机的工作原理 4.计算机系统的硬件和软件组成 5.计算机的性能指标 6.影响计算机的性能因素 7.数据在计算机中 ...
- 【智能计算系统笔记】第一章笔记及课后习题
第一章笔记及课后习题 笔记 课后习题 1. 简述强人工智能和弱人工智能的区别. 2. 简述人工智能研究的三个学派. 3. 一个有两个输入的单个神经元构成的感知机能完成什么任务? 4. 深度学习的局限性 ...
- app研发录第一章笔记
app研发录第一章笔记
最新文章
- auto关键字详解 C++
- EM不同气候条件下土壤稀有与丰富微生物类群的分化策略
- 施耐德电气推出 EcoStruxure 过程控制专家,IIOT 再添新利器
- CloudStack 制作window模板
- 007_Buzz事件
- linux7 rpmdb 修复,Linux[CentOS 7]rpmdb open failed错误修复
- 【转】C++11 并发指南五(std::condition_variable 详解)
- mysql定时执行存储过程
- Cracking the coding interview--Q1.4
- SAP CRM Category创建场景
- android EventBus 3.0 混淆配置
- 每个人都应该使用的Python 3中被忽略的3个功能
- 数据结构和算法练习网站_视频和练习介绍了10种常见数据结构
- java集群如何同步_Kafka 跨集群同步方案
- 连锁行业信息化的现状与问题
- HFSS19 官方中文教程系列 L06
- Python设计模式:命令模式
- httprunner 2.x学习4-测试用例分层
- 【数据集】PASCAL VOC2012数据集百度网盘链接
- Linux下屏幕亮度的调节
热门文章
- [附源码]计算机毕业设计网上书城网站Springboot程序
- python扩展tre
- 在 ASP.NET 網頁上加入浮水印
- 复杂网络代码_低代码的兴起,程序员要拒绝还是拥抱
- 中小型医院网络安全保障解决方案
- VirtualBox + Vagrant 安装虚拟机centos7
- 编写代码,实现信用卡诈检测。数据creditcard.csv。要求:使用多种机器学习算法训练模型,并对比结果。根据代和代码果,撰写作业。作业文件格式pdf,把源代码和输出结果拷贝到word文件中,根据
- python 画出函数的曲线与其中的切线
- 关于完美快速简单解决WIN11系统下IE浏览器直接跳转到EDGE浏览器问题的通知
- 运维基本功(五):Linux文件管理-用户管理