MySQL
1 基本概念
1.1 数据库基本概念
1.1.1 数据库
英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。
顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了
具有特定格式的数据。
1.1.2 数据库管理系统
DataBaseManagement,简称DBMS。
数据库管理系统是专门用来管理数据库中数据的,数据库管理系统可以
对数据库当中的数据进行增删改查。
常见的数据库管理系统:
MySQL、Oracle、MS SqlServer、DB2、sybase等…
1.1.3 SQL:结构化查询语言
程序员需要学习SQL语句,程序员通过编写SQL语句,然后DBMS负责执行SQL
语句,最终来完成数据库中数据的增删改查操作。
SQL是一套标准,程序员主要学习的就是SQL语句,这个SQL在mysql中可以使用,
同时在Oracle中也可以使用,在DB2中也可以使用。
三者之间的关系?
DBMS–执行–> SQL --操作–> DB
先安装数据库管理系统MySQL,然后学习SQL语句怎么写,编写SQL语句之后,DBMS
对SQL语句进行执行,最终来完成数据库的数据管理。
1.2 安装与卸载数据库
1.2.1 安装数据库
第一步:先安装,选择“经典版”
第二步:需要进行MySQL数据库实例配置。
注意:一路下一步就行了!!!!!
需要注意的事项?
端口号:
端口号port是任何一个软件/应用都会有的,端口号是应用的唯一代表。
端口号通常和IP地址在一块,IP地址用来定位计算机的,端口号port
是用来定位计算机上某个服务的/某个应用的!
在同一台计算机上,端口号不能重复。具有唯一性。
mysql数据库启动的时候,这个服务占有的默认端口号是3306
这是大家都知道的事儿。记住。
字符编码方式?
设置mysql数据库的字符编码方式为 UTF8
一定要注意:先选中第3个单选按钮,然后再选择utf8字符集。
服务名称?
默认是:MySQL
不用改。
选择配置环境变量path:
如果没有选择怎么办?你可以手动配置
path=其它路径;C:\Program Files (x86)\MySQL\MySQL Server 5.5\bin
用户名:
mysql超级管理员用户名不能改,一定是:root
你需要设置mysql数据库超级管理员的密码。
我们设置为123456
是否远超访问:
设置密码的同时,可以激活root账户远程访问。
激活:表示root账号可以在外地登录。
不激活:表示root账号只能在本机上使用。
我这里选择激活了!
1.2.2 卸载数据库
删除数据库有两步:
第一步:双击安装包进行卸载删除。
第二步:删除目录:
1. 把C:\ProgramData下面的MySQL目录干掉。(这里面要**取消隐藏文件夹按钮**,
文件夹->查看->选项->查看->画勾解除隐藏文件夹)
2. 把C:\Program Files (x86)下面的MySQL目录干掉。
这样就卸载结束了!
1.3 查看MySQL服务
如何查看电脑中的服务
计算机(或者叫此电脑)–>右键–>管理–>服务和应用程序–>服务–>找mysql服务
MySQL的服务,默认是“启动”的状态,只有启动了mysql才能用。
默认情况下是“自动(正在运行)”启动,自动启动表示下一次重启操作系统的时候
自动启动该服务。
如何改变服务状态
可以在服务上点击右键改变服务状态如:启动、重启服务、停止服务 …
如何改变服务的默认配置
服务上点击右键,点属性,然后可以选择启动方式如:自动(延迟启动)、自动、手动、禁用
1.4 登录与关闭MySQL
1.4.1 登录MySQL
使用bin目录下的mysql.exe命令来连接mysql数据库服务器
本地登录(显示编写密码的形式):
cmd: C:\Users\Administrator>mysql -uroot -p123456 -- 这是命令行语句
本地登录(隐藏密码的形式):
cmd: C:\Users\Administrator>mysql -uroot -p -- 这是命令行语句
cmd: Enter password: \*\*\**** -- 输入密码(隐藏形式)
1.4.2 启动和关闭mysql服务
语法:
cmd: net stop 服务名称; -- net stop mysql;
cmd: net start 服务名称; -- net start mysql;
其它服务的启停都可以采用以上的命令。
1.5 SQL语句的分类
SQL语句有很多,最好进行分门别类,这样更容易记忆。
分为:
DQL:
数据查询语言(凡是带有select关键字的都是查询语句)
select…
DML:
数据操作语言(凡是对表当中的数据进行增删改的都是DML)
insert delete update
insert 增
delete 删
update 改
这个主要是操作表中的数据data。
DDL:
数据定义语言
凡是带有create、drop、alter的都是DDL。
DDL主要操作的是表的结构。不是表中的数据。
create:新建,等同于增
drop:删除
alter:修改
这个增删改和DML不同,这个主要是对表结构进行操作。
TCL:
不是王牌电视。
是事务控制语言
包括:
事务提交:commit;
事务回滚:rollback;
DCL:
是数据控制语言。
例如:授权grant、撤销权限revoke…
1.6 建立一个数据库
create database 数据库名字;
1.7 如何导入数据到MySQL里面
bjpowernode.sql 这个文件中是我提前为大家练习准备的数据库表。
怎么将sql文件中的数据导入呢? (source后面是数据库表路径)
mysql> source D:\course\03-MySQL\document\bjpowernode.sql
注意:路径中不要有中文!!!!
1.8 mysql中的数据类型
很多数据类型,我们只需要掌握一些常见的数据类型即可。
varchar(最长255)
可变长度的字符串
比较智能,节省空间。
会根据实际的数据长度动态分配空间。
优点:节省空间
缺点:需要动态分配空间,速度慢。
char(最长255)
定长字符串
不管实际的数据长度是多少。
分配固定长度的空间去存储数据。
使用不恰当的时候,可能会导致空间的浪费。
优点:不需要动态分配空间,速度快。
缺点:使用不当可能会导致空间的浪费。
varchar和char我们应该怎么选择?
性别字段你选什么?因为性别是固定长度的字符串,所以选择char。
姓名字段你选什么?每一个人的名字长度不同,所以选择varchar。
int(最长11,即字符个数为11,不是二进制位数)
数字中的整数型。等同于java的int。
bigint
数字中的长整型。等同于java中的long。
float
单精度浮点型数据
double
双精度浮点型数据
date
短日期类型
datetime
长日期类型
clob
字符大对象
最多可以存储4G的字符串。
比如:存储一篇文章,存储一个说明。
超过255个字符的都要采用CLOB字符大对象来存储。
Character Large OBject:CLOB
blob
二进制大对象
Binary Large OBject
专门用来存储图片、声音、视频等流媒体数据。
往BLOB类型的字段上插入数据的时候,例如插入一个图片、视频等,
你需要使用IO流才行。
1.9 脚本
xxxx.sql这种文件被称为sql脚本文件。sql脚本文件中编写了大量的sql语句。我们执行sql脚本文件的时候,该文件中所有的sql语句会全部执行!批量的执行SQL语句,可以使用sql脚本文件。
在mysql当中怎么执行sql脚本呢?
mysql> source D:\course\03-MySQL\document\vip.sql
你在实际的工作中,第一天到了公司,项目经理会给你一个xxx.sql文件,
你执行这个脚本文件,你电脑上的数据库数据就有了!
2 SQL基本操作
2.1 数据库的基本单位-表
数据库当中最基本的单元是表:table (如下)
姓名 | 性别 | 年龄 |
---|---|---|
张三 | 男 | 19 |
李四 | 女 | 21 |
王五 | 男 | 22 |
数据库当中是以表格的形式表示数据的。
因为表比较直观。
任何一张表都有行和列:
行(row):被称为数据/记录。
列(column):被称为字段。
字段如:姓名字段、性别字段、年龄字段。
字段:
每一个字段都有:字段名、数据类型、约束等属性。
字段名:可以理解,是一个普通的名字,见名知意就行。
数据类型:字符串,数字,日期等,后期讲。
约束:约束也有很多,其中一个叫做唯一性约束,这种约束添加之后,该字段中的数据不能重复。
2.2 MySQL常用指令
退出mysql :exit
查看mysql中有哪些数据库
mysql> show databases;
-- 注意:以分号结尾,分号是英文的分号。
选择使用某个数据库
mysql> use test;
-- Database changed
-- 表示正在使用一个名字叫做test的数据库。
创建数据库
mysql> create database bjpowernode;
查看某个数据库下有哪些表?
mysql> show tables;
注意:以上的命令不区分大小写,都行。
查看mysql数据库的版本号:
mysql> select version();
查看当前使用的是哪个数据库?
mysql> select database();
mysql以分号结束
mysql> show
-> databases
-> ;
-- 注意:mysql是不见“;”不执行,“;”表示结束!
-- 可以以 "\c" 来终止一条命令的输入
mysql> show
->
->
-> \c
-- \c用来终止一条命令的输入。
2.3 关于表的操作
2.3.1 表的相关操作
查看数据库中有哪些表
mysql> show tables;
怎么查看表中的数据呢?
select * from 表名; -- 统一执行这个SQL语句。
-- 例如
select * from emp;
只看表的结构
mysql> desc dept;
有所有字段名称、类型、是否空、健值、默认值等等。
describe缩写为:desc,所以还可以用describe进行查看表结构
mysql> describe dept;
2.3.2 此笔记涉及的表
本笔记涉及三个表及其相关操作:
dept是部门表
emp是员工表
salgrade 是工资等级表