MySQL基础知识一


本文关于MySQL的操作是在Windows环境下进行的。

1. 数据库概述

1.1 SQL概述

SQL,一般发音为sequel,SQL的全称Structured Query Language),SQL用来和数据库打交道,完成和数据库的通信,SQL是一套标准。但是每一个数据库都有自己的特性别的数据库没有,当使用这个数据库特性相关的功能,这时SQL语句可能就不是标准了.(90%以上的SQL都是通用的)。

1.2 数据库的概念

数据库,通常是一个或一组文件,保存了一些符合特定规格的数据,数据库对应的英语单词是DataBase,简称:DB,数据库软件称为数据库管理系统(DBMS),全称为DataBase Management System,如:Oracle、SQL Server、MySql、Sybase、informix、DB2、interbase、PostgreSql 。

1.3 MySQL概述

(1)MySQL最初是由“MySQL AB”公司开发的一套关系型数据库管理系统(RDBMS-Relational Database Mangerment System)。
(2)MySQL不仅是最流行的开源数据库,而且是业界成长最快的数据库,每天有超过7万次的下载量,其应用范围从大型企业到专有的嵌入应用系统。
MySQL AB是由两个瑞典人和一个芬兰人:David Axmark、Allan Larsson和Michael “Monty” Widenius在瑞典创办的。
(3)在2008年初,Sun Microsystems收购了MySQL AB公司。在2009年,Oracle收购了Sun公司,使MySQL并入Oracle的数据库产品线。

2. MySQL基本操作

2.1 通过cmd命令行登录

按下win + R后,输入cmd,进入命令行提示符界面,输入以下命令回车,可以登录MySQL。

mysql -uroot -p(password) # 该方法直接在-p后面跟密码,密码可以被看到。

在这里插入图片描述
如果密码不想被别人看到,可以输出以下命令后回车,再输入密码回车登录MySQL,这种方法类似于Linux系统命令行的操作。
在这里插入图片描述

2.2 sql、DB、DBMS分别是什么,他们之间的关系

(1)DB:
DataBase(数据库,数据库实际上在硬盘上以文件的形式存在)。

(2)DBMS:
DataBase Management System(数据库管理系统,常见的有:MySQL Oracle DB2 Sybase SqlServer…)。

(3)SQL:
(3.1)结构化查询语言,是一门标准通用的语言。标准的sql适合于所有的数据库产品。
(3.2)SQL属于高级语言。只要能看懂英语单词的,写出来的sql语句,可以读懂什么意思。
(3.3)SQL语句在执行的时候,实际上内部也会先进行编译,然后再执行sql。(sql语句的编译由DBMS完成。)

总结:DBMS负责执行sql语句,通过执行sql语句来操作DB当中的数据。
DBMS -(执行)-> SQL -(操作)-> DB

2.3 表的概念

(1)概念:table是数据库的基本组成单元,所有的数据都以表格的形式组织,目的是可读性强。

(2)一个表包括行和列

		行:被称为数据/记录(data)
		列:被称为字段(column)
学号(int)姓名(varchar )年龄(int)
110张三20
120李四21

每一个字段应该包括的属性:字段名、数据类型、相关的约束。

2.4 SQL语句的分类

语句解释
DQL(数据查询语言)查询语句,凡是select语句都是DQL。
DML(数据操作语言)insert delete update,对表当中的数据进行增删改。
DDL(数据定义语言)create drop alter,对表结构的增删改。
TCL(事务控制语言)commit提交事务,rollback回滚事务。(TCL中的T是Transaction)
DCL(数据控制语言)grant授权、revoke撤销权限等。

2.5 数据库初始化

第一步:登录mysql数据库管理系统

		dos命令窗口:
			mysql -uroot -p333

在这里插入图片描述

第二步:查看有哪些数据库

		show databases; (这个不是SQL语句,属于MySQL的命令。)
		注意该语句以分号结尾,不能丢。

在这里插入图片描述

第三步:创建属于我们自己的数据库

		create database bjpowernode; (这个不是SQL语句,属于MySQL的命令。)

在这里插入图片描述

第四步:使用bjpowernode数据


		use bjpowernode; (这个不是SQL语句,属于MySQL的命令。)

在这里插入图片描述

第五步:查看当前使用的数据库中有哪些表?

		show tables; (这个不是SQL语句,属于MySQL的命令。)

在这里插入图片描述

第六步:初始化数据

		mysql> source D:\course\05-MySQL\resources\bjpowernode.sql

注意:数据初始化完成之后,有三张表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.6 SQL脚本

(1)概念 :当一个文件的扩展名是.sql,并且该文件中编写了大量的sql语句,我们称这样的文件为sql脚本。
(2)注意:直接使用source命令可以执行sql脚本。
sql脚本中的数据量太大的时候,无法打开,请使用source命令完成初始化。
在这里插入图片描述
记事本打开sql文件后的内容就是一些sql语句:
在这里插入图片描述

2.7 删除数据库

drop database bjpowernode;

2.8 查看表结构

操作:

desc table; # desc 加 “表名”

在这里插入图片描述

在这里插入图片描述

2.9 查看表中数据

操作:

select * from table;  # 查看表中所有数据,这是sql语句

在这里插入图片描述

2.10 常用命令

(1)查看MySQL版本

mysql -version
或
mysql -V

(2)创建数据库

create database 数据库名称;

eg: create database bjpowernode;

(3)查看当前使用的是哪个数据库

select database();

在这里插入图片描述
(4)使用某个数据库

use 数据库名;

(5)查询数据库版本

select version();

(6)结束一条语句

\c

在这里插入图片描述
(7)退出数据库

1)\q
(2)quit
(3)exit
(4)Ctrl + c

3. 查看演示数据的表结构

(1)查看和指定现有的数据库

show database;

在这里插入图片描述
(2)指定当前缺省数据库

use 数据库名;

在这里插入图片描述
(3)查看当前使用的数据库

select database();

在这里插入图片描述
(4)查看当前数据库中的表

show tables;

在这里插入图片描述
(5)查看其他数据库中的表

show tables from 数据库名;

在这里插入图片描述
(6)查看表的结构

desc 表名;

在这里插入图片描述
(7)查看表的创建语句

show create table 表名;

在这里插入图片描述

4. 简单查询语句(DQL)

(1)语法格式:

select 字段1,字段2,... from 表名;

(2)提示:
(2.1)任何一条sql语句以分号“;”结尾。
(2.2)sql语句不区分大小写。

4.1 查询若干个字段

在这里插入图片描述
在这里插入图片描述

4.2 查询所有字段

在这里插入图片描述

4.3 字段参与数学运算

查询员工的年薪
在这里插入图片描述
给查询结果重命名
在这里插入图片描述

4.4 查询结果以中文重命名

在这里插入图片描述
注意
(1)标准sql语句中要求字符串使用单引号括起来。虽然mysql支持双引号,尽量别用。
(2)可以采用as关键字重命名表字段,其实as也可以省略,如:

select empno  "员工编号", ename  "员工姓名", sal*12  "年薪" from emp;

(3)查询所有字段:
select * from emp; // 实际开发中不建议使用*,效率较低。
在这里插入图片描述
在这里插入图片描述

5.条件查询

(1)语法格式:

select 
		字段,字段...
from
		表名
where
		条件;

(2)执行顺序:
先from,然后where,最后select。

(3)支持的运算符:

运算符说明
=等于
<>或!=不等于
<小于
<=小于等于
>大于
>=大于等于
between … and ….两个值之间,等同于 >= and <=
is null为null(is not null 不为空)
and并且
or或者
in包含,相当于多个or(not in不在这个范围中)
notnot可以取非,主要用在is 或in中
likelike称为模糊查询,支持%或下划线匹配%匹配任意个字符下划线,一个下划线只匹配一个字符

(4)实例:

1)查询工资等于5000的员工姓名?

在这里插入图片描述

2)查询SMITH的工资?

在这里插入图片描述

3)找出工资高于3000的员工?
		select ename,sal from emp where sal > 3000;

		select ename,sal from emp where sal >= 3000;

		select ename,sal from emp where sal < 3000;

		select ename,sal from emp where sal <= 3000;

在这里插入图片描述

4)找出工资不等于3000的?
		select ename,sal from emp where sal <> 3000;
		
		select ename,sal from emp where sal != 3000;

在这里插入图片描述

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

		select ename,sal from emp where sal between 1100 and 3000; 
		# between...and...是闭区间 [1100 ~ 3000]

		select ename,sal from emp where sal between 3000 and 1100; 
		# 查询不到任何数据

		between and在使用的时候必须左小右大。
		

在这里插入图片描述

between and除了可以使用在数字方面之外,还可以使用在字符串方面。
		select ename from emp where ename between 'A' and 'C';
		
		select ename from emp where ename between 'A' and 'D'; 
		# 左闭右开。

在这里插入图片描述

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

在这里插入图片描述

7andor的用法
(7.1)找出工作岗位是MANAGER和SALESMAN的员工?

			select ename,job from emp where job = 'MANAGER' or job = 'SALESMAN';7.2andor联合起来用:找出薪资大于1000的并且部门编号是2030部门的员工。
			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); // 正确的。
			
			注意:and的优先级高于or,当运算符的优先级不确定的时候加小括号。

在这里插入图片描述

8in的用法
(8.1in等同于or:找出工作岗位是MANAGER和SALESMAN的员工?
			select ename,job from emp where job = 'SALESMAN' or job = 'MANAGER';
			select ename,job from emp where job in('SALESMAN', 'MANAGER');
			select ename,job from emp where sal in(800, 5000); // in后面的值不是区间,是具体的值。

(8.2)not in: 不在这几个值当中。
			select ename,job from emp where sal not in(800, 5000);

在这里插入图片描述

9)模糊查询like
	 在模糊查询当中,必须掌握两个特殊的符号,一个是%,
	 一个是_,%代表任意多个字符,_代表任意1个字符。
	 
(9.1)找出名字当中含有O的?
	   select ename from emp where ename like '%O%';9.2)找出名字中第二个字母是A的?
	   select ename from emp where ename like '_A%';9.3)找出名字中有下划线的?
	   select name from t_user where name like '%\_%';9.4)找出名字中最后一个字母是T的?
	   select ename from emp where ename like '%T';

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值