1.登录mysql数据库命令:
mysql -uroot -p你的密码
2.SQL,DB,DBMS分别代表什么,以及他们之间的关系?
DB: Database(数据库,数据库实际上在硬盘上以文件的形式存在)
DBMS:Database Management System (数据库管理系统,常见的有:Mysql Oracle DB2 sybase Sqlserver..)
SQL:结构化查询语言,是一门标准通用的语言。标准SQL适合于所有的数据库产品。
DBMS负责执行SQL语句,通过执行SQL语句来操作DB当中的数据
DBMS→执行 → SQL→ 操作 → DB
3.表
Q:什么是表?
A:表是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强。
一个表包括行和列:
行:被称为数据/记录(data)
列:被称为字段(column)
学号(int) 姓名(varchar) 年龄(int)
-------------------------------------------------
111 小熊 22
112 小兔 23
113 小狗 18
Q:每一个字段应该包括哪些属性?
A:字段名、数据类型、相关的约束。
3.对SQL语句的分类
DQL(数据查询语言):查询语句,凡是select语句都是DQL
DML(数据操作语言):insert delete update,对表中的数据进行增删改
DDL(数据定义语言):create drop alter 对表进行增删改
TCL(事务控制语言):commit提交事务,rollback回滚事务。(TCL中的T是transactional)
DCL(数据控制语言):grant授权、rovoke撤销权限等。
4.导入数据:
第一步:登录mysql数据库管理系统
dos命令窗口:
mysql -uroot -p密码
第二步:查看有哪些数据库
show database;(Mysql命令,非SQL语句)
第三步:创建自己的数据库
create database xiaoxiongbingqilin;(Mysql命令,非SQL语句)
第四步:使用xiaoxiongbingqilin数据
ues xiaoxiongbingqilin;(Mysql命令,非SQL语句)
第五步:查看当前使用的数据库中有哪些表
show tables;(Mysql命令,非SQL语句)
4.SQL脚本
当一个文件的扩展名是.sql,并且该文件中编写了大量的sql语句,我们称这样的文件为sql脚本
SQL脚本中的数据量太大的时候无法打开,请使用source命令完成初始化。
5.常用命令
查看表结构
desc xxx;
查看表中的数据
select * from xxx;
查看当前使用的是哪个数据库
select database();
查看mysql的版本号
select version();
\c 命令,结束一条语句。
6.查看创建表的语句:
show create table emp;
7.简单的查询语句(SQL)
语法格式:
select 字段名1,字段名2,字段名3,... from 表名;
提示:
1.任何一条sql语句以“;”结尾
2.sql语句不区分大小写
查询员工的年薪?
select ename ,sal* 12 from emp;
给查询结果的列重命名?
select ename,sal *12 as yearsal from emp;
别名中有中文?
select ename,sal *12 as 年薪 from emp;
select ename,sal *12 as '年薪’ from emp;
注意:标准sql语句中要求字符串使用单引号括起来。虽然mysql支持双引号,但是尽量别用。
条件查询:
语法格式:
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 ,sal from emp where sal>3000;
找出工资不等于3000的员工?
select ename ,sal from emp where sal <> 3000;
找出工资在1100到3300的员工,包括1100和3300?
select ename,sal from emp where sal >=1000 and sal<= 3000;
select ename,sal from emp where sal between 1100 and 3300; //between ...and ...是闭区间[1100 ~3300]
select ename,sal from emp where sal between 3300 and 1100; //查询不到任何数据
between and在使用的时候必须左小右大。
select ename from emp where ename between ‘A“ and 'D’; //左闭右开
假设查询哪些人工资为NULL
在数据库中NULL不是一个值,代表什么也没有,为空。
空不是一个值,不能用等号来衡量。
必须使用is null或者is not null.
select ename,sal from emp where sal is null;
假设查询哪些人没有工资
select ename,sal from emp where sal is null or sal =0;
找出工作岗位是MANAGE和SALEMAN的员工?
select ename,job from emp where job ='MANAGE' or job ='SALEMAN';
and和or联合起来使用:找出薪资大于1000的并且部门编号是20或30部门的员工;
select ename,sal,deptno from emp where sal > 1000 and deptno = 20 or deptno = 30 ;//错误
select ename,sal,deptno from emp where sal > 1000 and (deptno = 20 or deptno = 30) ;//正确
in 等同于or:找出工作岗位是MANAGE和SALEMAN的员工?
select ename,job from emp where job='SALEMAN' or job = 'MANAGE';
select ename,job from emp where job in(‘SALEMAN','MANAGE’);
select ename,job from emp where job in(800,5000);//in后面不是区间,而是具体的值
模糊查询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';
8.排序(升序,降序)
按照工资升序,找出员工名和薪资?
select
ename,sal
from
emp
order by
sal;
注意:默认是升序,怎么指定升序或者降序呢?asc表示升序,desc表示降序。
select ename,sal from emp order by sal; //升序
select ename,sal from emp order by sal asc;//升序
select ename,sal from emp order by sal desc;//降序
按照工资的降序排列,当工资相同的时候再按照名字的升序排列。
select ename,sal from emp order by sal desc , ename asc;
注意:越靠前的字段越能起到主导作用。只有当前面的字段无法完成排序的时候,才会启用后面的字段。
找出工作岗位是SALEMAN的员工,并且要求按照薪资的降序排列。
select
ename,job sal
from
emp
where
job='SALEMAN'
order by
sal desc;
9.分组函数
count 计数
sum 求和
avg 平均值
max 最大值
min 最小值
记住:所有的分组函数都是对”某一组" 数据进行操作的。
找出工资总和?
select sum(sal) from emp;
找出最高工资?
select max(sal) from emp;
找出最低工资?
select min(sal) from emp;
找出平均工资?
select avg(sal) from emp;
找出总人数?
select count(*) from emp;
select count(ename) from emp;
分组函数一共5个。
分组函数还有另一个名字:多行处理函数
多行处理函数的特点:输入多行,最终输出的结果是1行。
分组函数自动忽略NULL。
10.单行处理函数
什么是单行处理函数?
输入一行,输出一行。
计算每个员工的年薪?
select ename,(sal + comm)*12 as yearsal from emp;
重点:所有数据库都是这样规定的,只要NULL参与的运算结果一定是NULL。
使用ifnull函数:
select ename,(sal + ifnull(comm,0))*12 as yearsal from emp;
ifnull()空处理函数?
ifnull(可能为NULL的数据,被当做什么处理):属于单行处理函数
select ename,ifnull(sal + comm)*12 as yearsal from emp;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端