MySQL DQL

1、什么是表?
表:table
表:table是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强

一个表包括行和列:
行:被称为数据/记录(data)
列:被称为字段(column)

学号(int) 姓名(varchar) 年龄(int)
110 张三 20
120 李四 21

varchar—String
bigint------long
每一个字段应该包括哪些属性?
字段名、数据类型、相关的约束
2、学习MySQL主要还是学习通用的SQL语句,SQL语句包括增删改查,SQL语句怎么分类

DQL(Data Query Language 数据查询语言):凡是select语句都是DQL
DML(Data Manipulation Language 数据操作语言):insert delete update,对表当中的数据增删改
DDL(Data Definition Language 数据定义语言):creat drop alter,对表结构的增删改。
TCL(Transaction Control Language 事物控制语言):commit提交事物,rollback回滚事物
DCL(Data Control Language数据控制语言):grant授权、revoke撤销授权等
root超管–>创建其他用户zs(为张三用户授权和撤销权限都需要使用DCL)

3、导入数据
第一步:登录mysql数据库管理系统
dos命令窗口:mysql -uroot -p密码
第二步:查看有哪些数据库
show database;(这个不是SQL语句,属于MySQL的命令。)
±--------------------------- +
| Database |
±----------------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
±----------------------------+
第三步:创建属于我们自己的数据库
creat database lm;(这个不是SQL语句,属于MySQL的命令)
第四步:使用lm数据
use lm;(这个不是SQL语句,属于MySQL的命令)
第五步:
show tables;查看当前数据库有哪些表格
第六步:初始化数据
source 拖入文件;

5、bjpowernode.sql,这个文件以sql结尾,这样的文件被称为“sql脚本”。什么是sql脚本呢?
当一个文件的扩展名是.sql,并且该文件中编写了大量的sql语句,我们称这样的文件为sql脚本。
注意:直接使用source命令可以执行sql脚本。

sql脚本中的数据量太大的时候,无法打开,请使用source命令完成初始化。

6、删除数据库:drop database bjpowernode;

dept在这里插入图片描述
DEPTNO 部门编号
DNAME 部门名称
LOC 部门位置

emp
在这里插入图片描述
EMPNO 员工编号
ENAME 员工姓名
JOB 工作岗位
MGR 上级领导编号
HIREDATE 入职日期
SAL 月薪
COMM 补助/津贴
DEPTNO 部门编号

salgrade
在这里插入图片描述
GRADE 等级
LOSAL 最低薪资
HISAL 最高薪资

9、常用命令
select database();查看当前使用的数据库
select version();查看版本
\c 结束一条语句
exit 退出mysql

10、查看创建表的语句
show create table emp;

11、简单的查询语句(DQL)
语法格式:
select 字段名1,字段名2,…from 表名;
提示:
1、任何一条sql 语句以";"结尾。
2、sql语句不区分大小写。

查询员工的年薪?(字段可以参与数学运算)
select ename,sal*12 from emp;

给查询结果的列重命名
select ename,sal12 as yearsal from emp;
别名中有中文?
select ename,sal
12 as 年薪 from emp;//错误
select ename,sal*12 as ‘年薪’ from emp;
加单引号
注意:标准sql语句中要求字符串使用单引号括起来。虽然mysql支持双引号,尽量别用,不通用。

as关键字可以省略

查询所有字段?
select * from emp;//实际开发中不建议使用*,效率较低。

12、条件查询。
语法格式:
select
字段,字段…
from
表名
where
条件;
在这里插入图片描述
执行顺序:先from,然后where,最后select

查询工资等于或5000的员工姓名
select ename from emp where sal=5000;

查询SMITH的工资
select sal from emp where ename=‘SMITH’;

找出工资高于3000的员工
select ename from emp where sal>3000;
工资不等于3000的员工
select ename from emp where sal!=3000;
select ename from emp where sal<>3000;

找出工资在1100和3000之间的员工,包括1100和3000
select ename,sal from emp where sal>=1100 and sal <=3000;

select ename,sal from emp where sal between 1100 and 3000;//闭区间
between and 使用的时候必须左小右大

between and 除了可以使用在数字方面之外,还可以使用在字符串方面。
select ename from emp where ename between ‘A’ and ‘C’;
左闭右开
几乎用不到

找出哪些人没有津贴?
在数据库当中NULL不是一个值,代表什么也没有,为空。
空不是一个值,不能用等号衡量
必须使用 is null 或者 is not null
select ename,comm from emp where comm is null;

找出哪些人津贴不为NULL
select ename,comm from emp where comm is not null;
在这里插入图片描述
0.00不是null

找出哪些人没有津贴
select ename,comm from emp where comm is null or comm=0;

找出工作岗位是MANAGER和SALESMAN的员工
select ename,job from emp where job=‘manager’ or job=‘salesman’;

and和or联合起来用:找出薪资大于1000的并且部门编号是20或30部门的员工。

执行:select ename,deptno,sal from emp where sal>1000 and deptno=20 or deptno=30;
在这里插入图片描述
出现错误 薪资950的也查找出来了
and 优先级高 sal>1000 and deptno=20组队
所以部门编号为30的都查找出来了

select ename,deptno,sal from emp where sal>1000 and (deptno=20 or deptno=30);
加括号
注意:当运算符的优先级不确定的时候加小括号。

in等同于or:找出工作岗位是MANAGER和SALESMAN的员工
select ename,job from emp where job=‘manager’ or job=‘salesman’;
或者
select ename,job from emp where job in(‘manager’,‘salesman’);

in后面的值不是区间,是一个值
select ename,sal from emp where sal in(800,5000);
在这里插入图片描述

not in:不在这几个值当中。
select ename,sal from emp where sal not in(800,5000);
在这里插入图片描述

模糊查询like
找出名字中含有o的(在模糊查询当中,必须掌握两个特殊的符号,一个是%,一个是_)
%代表任意多个字符
_代表任意一个字符

select ename from emp where ename like ‘%o%’;
在这里插入图片描述

找出第二个字母是A的
select ename from emp where ename like ‘_A%’;
在这里插入图片描述
找出名字中有下划线的
select ename from emp where ename like ‘%斜杠_%’;

找出名字中最后一个字母是t的
select ename from emp where ename like ‘%t’;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值