MYSQL学习笔记

文章介绍了数据库的基本概念,包括数据库(DB)、数据库管理系统(DBMS)以及SQL语言的作用。详细讲述了如何在Windows系统中查看和管理MySQL服务,以及如何使用SQL进行数据的增删改查操作。此外,还讨论了数据库中的表结构、字段属性,并概述了SQL语句的分类,如DQL、DML、DDL等。
摘要由CSDN通过智能技术生成

MYSQL

day01

数据库:

  • DataBase,DB,按照一定格式存储数据的一些文件的组合。存储数据的仓库,实际上就是一堆文件,这些文件中存储; 具有特定格式的数据。

数据库管理系统:

  • DataBaseManagement DBMS。专门用来管理数据库中的数据的。数据库管理系统可以对数据库当中的数据进行增删改查。
  • 常用的数据库管理系统:MySQL、Oracle、MS sqlServer、DB2、sybase等

SQL:结构化查询语言

  • 程序员通过编写SQL语句,然后DBMS负责执行SQL语句,最终完成数据库中数据的增删改查操作。
  • SQL是一套标准,SQL可以在多种DBMS中使用

三者之间的关系?

DBMS执行SQL,SQL操作DB

查看MYSQL服务

计算机–》右键–》管理–》服务和应用程序–》服务–》MYSQL

启动和关闭MYSQL

net start mysql(服务名称)

net stop mysql(服务名称)

怎么使用客户端登录mysql数据库?

使用bin目录下的mysql.exe命令来连接mysql数据库服务器

mysql退出命令:exit

显示密码登录:mysql -uroot -p123456

隐藏密码登录:mysql -uroot -p 回车 123456

命令(不区分大小写)

查看数据库:show databases;

使用数据库:use 数据库名称;

创建数据库:create database 数据库名称;

查看数据库中有哪些表:show tables;

查看表中数据:select * from 表名;

不看表中数据,只看表的结构:desc 表名; describe的缩写

查看MYSQL数据版本号:select version( );

查看当前使用的数据库:select database( );

注意:mysql是不见分号不执行,分号表示结束。\c用来终止一条命令的输入。

数据库中最基本的单元——表(table)

表是存储数据的一种方式,数据库中是以表格的形式表示数据的,因为表比较直观。

任何一张表都有行和列:

  • 行(row):被称为数据、记录
  • 列(column):被称为字段

每个字段都有:字段名、数据类型、约束等属性。

字段名:普通名字、见名知意

数据类型:字符串、数字、日期

约束:唯一性约束(字段数据不能重复)

SQL语句的分类

DQL:

  • 数据查询语言(凡是带有select关键字的都是DQL)

DML:

  • 数据操作语言(凡是对表中数据进行增删改操作的都是DML,insert、delete、update)

DDL:

  • 数据定义语言(凡是带有create、drop、alter的都是DDL,DDL主要操作的是表的结构,不是表中数据)
  • create :新建等同于增、drop:删除、alter:修改,与DML不同,因为这个主要是对表结构进行操作

TCL:

  • 事务控制语言。包括事务提交:commit;事物回滚:rollback;

DCL:

  • 数据控制语言,例如:授权grant、撤销权限revoke

导入数据

source + 路径+文件名

mysql> source C:\Users\Administrator\Downloads\bjpowernode.sql

注意:路径不要有中文!

mysql> show tables;
±----------------------+
| Tables_in_bjpowernode |
±----------------------+
| dept |
| emp |
| salgrade |
±----------------------+

dept部门表 emp员工表 salgrade工资等级表

查看表中数据:select * from 表名;

不看表中数据,只看表的结构:desc 表名; describe的缩写

简单查询

1、查询一个字段?

select 字段名 from 表名;

​ select 和from都是关键字,字段名和表名都是标识符

​ 对于SQL语句来说,是通用的,所有的SQL语句以分号结尾,SQL语句不区分大小写。

2、查询两个或多个字段?

​ 使用“,”隔开

查询部门编号和部门名?

select deptno,dname from dept;

3、查询所有字段?

​ 使用*;将所有字段用,隔开

​ *号效率比较低,会先将*转换为所有字段,并且可读性差,在开发中不建议,但是可以在DOS命令窗口中快速查看全表数据。

4、给查询的列起别名

mysql> select deptno,dname as deptname from dept;

  • 使用as关键字起别名

  • 只是将显示的查询结果列名显示为deptname,原表列名还是为dname。

as关键字可以省略吗?可以

select deptno,dname deptname from dept;

假设起别名的时候,别名里面有空格,怎么办?

使用‘’单引号或者双引号将别名括起来

select deptno,dname 'dept name' from dept;

±-------±-----------+
| deptno | dept name |
±-------±-----------+
| 10 | ACCOUNTING |
| 20 | RESEARCH |
| 30 | SALES |
| 40 | OPERATIONS |
±-------±-----------+

注意:在所有的数据库中,字符串统一使用单引号括起来,单引号是标准,双引号不标准,双引号在oracle数据库中用不了,但在mysql中可以使用。

别名如果是中文要用单引号括起来

字符串使用单引号括起来

5、列参与数学运算

select ename,sal*12 from emp;

字段可以使用数学表达式,参与加减乘除运算

条件查询

条件查询不是将所有数据都查出来,是查出符号条件的数据。

语法格式:

​ select 字段1,字段2,字段3 from 表名 where 条件;

🌸<> 或 != 不等于

🌸between… and … 两个值之间 等同于>= and <=

使用between … and … 的时候,必须遵循左小右大

查询薪资在25003000之间的员工姓名和编号?
select empno,ename,sal from emp where sal>=2500 and sal <=3000;

select empno,ename,sal from emp where sal between 2500 and 3000;

🌸is null 为 null (is not null 不为空)

在数据库中null不能使用=进行衡量,需要使用is null,因为数据库中的null代表什么也没有,不是一个值,所以不能用=衡量。0与null不一样

查询那些员的津贴/补助为null
select empno,ename,sal,comm from emp where comm is null;

🌸and 并且

select empno, ename,job,sal from emp where sal>2500 and job = 'MANAGER';

🌸or 或者

查询工作岗位是MANAGER和SALESMAN
select empno,ename from emp where job = "MANAGER" or job = "SALESMNA";

and和or同时出现的话,有优先级问题吗?
and优先级大于or。如果想让or先执行,则需要加小括号。如果在开发中不确定优先级则加小括号就行了。

查询工资大于2500 并且部门编号为10或20部门的员工?

select empno from emp where sal >2500 and (deptno =10 or deptno =20);

🌸in 包含 相当于多个or(not in 不在这个范围中)

select empno,ename,job from emp where job = 'MANAGER' or job = 'SALESMAN';
select empno,ename,job from emp where job in ('MANAGER','SALESMAN');
  • in 不是一个区间,in后面跟的是具体的值,一个或多个。
  • not in 表示不在这几个值当中的数据

🌸 not 可以取非 主要用在is或in中

​ is null 、is not null
in 、not in

🌸like

​ like称为模糊查询,支持% 或下划线匹配

​ %匹配任意个字符

​ 下划线,一个下划线只匹配一个字符

% 和 __都是特殊符号,%代表任意多个字符,__代表任意一个字符

查询名字里含有o的
select ename from emp where ename like '%o%';
查找名字以T结尾的
select ename from emp where ename like '%T';
查找员工名字第二个字母是A的
select ename from emp where ename like '_A%';

查询名字有下划线的数据,\转义字符
 select name from t_student where name like '%\_%';
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值