Mysql研学-认识与安装

一 数据库

1 Java的数据存储技术

① 变量:一个数据存储空间的表示

② 数组:存储一组相同数据类型的"容器"

③ 集合:存储一组任意引用数据类型的"容器"

④ 配置文件:

  .properties:基于Properties集合存储(Map集合的具体实例)

  .xml文件:基于标签存储数据

⑤ Optional对象:存一个元素或0个元素

  以上存储数据的技术(由JAVA语言提供),只适用于数据量较小的存储,对于大量的数据操作,性能低下,因此需要数据库。

2 Mysql概述

  核心功能为数据管理,管理方法主要有,创建(添加),读取(查询),修改, 删除
  存 : 增删改
  取:查(查所有+查指定一个+查满足指定条件的多个)

3 名词解释

  DB – 数据库:DataBase

  DBMS – 数据库管理系统:DataBase Manager System

  DBAS – 数据库应用系统:DataBase Application System

4 数据库分类

  关系型数据库 – Oracle,MySql等等

  非关系型数据库 – Redis,Mongodb等等

5 存储引擎–影响数据库存储性能

常见的存储引擎 优势 不足
MyISAM 查询速度较快 不支持事务和外键
InnoDB 支持事务和外键 查询速度稍慢

二 SQL 语句

1 语句分类

① DQL 语言:数据查询语言,主要操作表中的数据

// SQL语句中唯一一个不需要操作权限就能执行的语句
SELECT 

② DML语句:数据操作语言,主要操作表中的数据

// 插入
INSERT INTO ... VALUES ...
// 修改
UPDATE ... set ...
// 删除
DELETE FROM ... 

③ DDL语句:数据定义语言,主要操作的是表

// 创建表
CREATE TABLE
// 删除(销毁)表
DROP
// 修改表结构
ALTER

④ TCL语句:事务控制语言

⑤ CCL语句:指针控制语言(接触不多)

2 书写规范

① SQL语句忽略大小写;但开发中建议是数据库操作的关键字全部大写

② 每一条SQL语句都需要使用;(分号)结束

三 表

1 表成员

表名:表示当前表中存储什么类型的数据,列个数固定,行个数不固定
列:纵向,表示当前列存储的数据是什么,同一列的数据类型与含义一致
行:横向,表示一组数据,指向同一事物
ORM关系 – 对象映射关系

2 数据库中表JavaBean的对应关系

JavaBean
表名t_employee 类名Employee
列名 字段名
当前类的一个具体对象
列名 字段名

① 类名是表名去掉t_,单词首字母大写
② 表中列名与类中字段要一致

四 安装Mysql

1 下载zip后解压改名只留版本号

在这里插入图片描述

2 于mysql-8.0.28文件夹中新建my.ini,输入以下内容,确定数据目录与端口号,若MySql服务无响应可将最后一句去除,或者完成密码设置后注释掉,其作用为跳过密码

[mysqld]
#端口号
port = 3306
#mysql-8.0.28路径
basedir=D:\\soft\mysql-8.0.28
#mysql-8.0.28\data路径
datadir=D:\\soft\\mysql-8.0.28\\data
#最大连接数
max_connections=200
#编码集
character-set-server=utf8

#默认引擎
default-storage-engine=INNODB

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES


[mysql]
#编码集
default-character-set=utf8

3 配置环境变量,将bin文件夹路径输入path

D:\soft\mysql-8.0.28\bin

4 管理员身份启动cmd进入目录

// 进入目录
cd /d D:\soft\mysql-8.0.28\bin
// 安装服务
mysqld -install
// 初始化数据文件,启动mysql服务
mysqld --initialize-insecure --user=mysql
// 启动
net start mysql

5 此时 Bin中会多出data文件夹,没生成自己建一个

Mysql研学-认识与安装_第1张图片

6 进入数据库,此时无密码直接回车进入mysql

// 无密码进入数据库
mysql -u root -p

7 进入界面后更新密码

// 更新密码
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘root’;
// 5.7版本用这句
alter user 'root'@'localhost' identified by 'root';

8 刷新权限

// 刷新权限
flush privileges;

9 停止服务

net stop mysql;

10 输入密码登陆mysql

mysql -u root -proot

Mysql数据都在data文件夹中,历史记录中有对应操作

五 常用命令

1 登录命令

mysql -u用户名 -p密码 [-hIP地址 -P端口号]

2 展示当前连接下所有数据库

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

4 rows   数据库个数
in set   将操作结果存放在set集合中,结果无序且唯一
0.01 sec 是执行操作的时长

3 使用指定数据库

mysql> USE SYS;
Database changed

4 展示当前数据库下所有表

mysql> SHOW TABLES;
+-----------------+
| Tables_in_sys   |                                
+-----------------+
| host_summary    | 
 
......    
       
+-----------------+    
101 rows in set (0.06 sec)

5 创建一张表

mysql> CREATE TABLE t_employee(id INT);
Query OK, 0 rows affected (0.59 sec)

affected  受影响的数据

6 删除指定表

mysql> DROP TABLE t_employee;
Query OK, 0 rows affected (0.51 sec)

7 查询表设计结构

mysql> DESC employee;
+----------+--------------+------+-----+---------+----------------+
| Field    | Type         | Null | Key | Default | Extra          |
+----------+--------------+------+-----+---------+----------------+
| id       | bigint(20)   | NO   | PRI | NULL    | auto_increment |
| name     | varchar(255) | YES  |     | NULL    |                |
| password | varchar(255) | YES  |     | NULL    |                |
| email    | varchar(255) | YES  |     | NULL    |                |
| age      | int(11)      | YES  |     | NULL    |                |
| admin    | bit(1)       | YES  |     | NULL    |                |
| dept_id  | bigint(20)   | YES  |     | NULL    |                |
+----------+--------------+------+-----+---------+----------------+
7 rows in set (0.02 sec)

多用导入其他人定义的表
Field:表中的字段

Type:指定字段对应的数据类型

Null:当前字段的值是否允许为空

Key:当前字段的约束(规定当前字段存储数据的特点)

Default:默认值,MySQL中任意一种数据类型的默认值都是NULL

Extra:备注,一般显示的是指定数据库的方言约束

六 数据类型

1 常用类型 – 数值型

  ①整数型:INT/BIGINT , 其中的(n)表示该数据最大位数,一般没有特殊要求不写

  ②小数型:DOUBLE/DECIMAL

  DOUBLE(m,n):一般是应用在除了金钱以外的字段,其中m表示数据总位数,n表示小数部分有几位

  DECIMAL:一般应用在金钱上

2 常用类型 – 字符型

  ①MySQL中没有单个字符类型,都是字符串类型;因此值既可以定义在""中也可以定义在’';在Java中统一使用String类型接收

  ②CHAR(n):MySQL服务会按照n的个数进行存储

  ③VARCHAR(n):MySQL服务会按照实际的存储个数进行数据存储(实际上还有一位标识位)

3 常用类型 – 日期型

  ①MySQL数据库中的日期类型数据值必须定义在引号中

  ②DATE:操作年月日

  ③DATETIME:操作年月日时分秒

  ④TIMESTEMP:时间戳,以毫秒的形式显示,距1970.1.1 00:00至今的时长

4 与Java数据类型的对应

Mysql Java
INT(n) Integer/int
BIGINT(n) Long/long
DOUBLE(m,n) Double/double
DECIMAL BigDecimal
CHAR(n) String
VARCHAR(n) StringBuffer/StringBuilder
TEXT String
DATE java.util.Date
DATETIME java.util.Date
TIMESTEMP java.util.Calendar

你可能感兴趣的:(Mysql研学,mysql,数据库)