这里写目录标题

  • 初识MySQL
    • 什么是数据库
    • 数据库分类
    • MySQL简介
    • 安装MYSQL
      • win10安装
      • 安装SQLyog
      • 连接数据库
      • linux安装
      • 使用Navicat Premium连接数据库
  • 操作数据库
    • 操作数据库
    • 数据库的数据类型
    • 数据库的字段属性(重要)
    • 创建数据库表
    • 数据表的类型
    • 修改和删除表
    • 导入表操作

初识MySQL

JavaEE:企业级java开发 Web

前端(页面:展示,数据)

后台(连接点:连接数据库JDBC,链接前端(控制,控制试图跳转,和给前端传递数据))

数据库(存数据,Txt,Excel,word)

什么是数据库

数据库(DB,DataBase)

概念:数据仓库,软件,安装在操作系统之上!SQL,可以存储大量的数据。500万

作用:存储数据,管理数据

数据库分类

关系型数据库:

  • MySQL,Oracle,Sql Server,DB2,SQLlite
  • 通过表和表之间,行和列之间的关系进行数据的存储,学员信息表,考勤表

非关系型数据库:NoSQL Not Only SQL

  • Redis,MongoDB
  • 非关系型数据库,对象存储,通过对象的自身的属性来决定。

DBMS(数据库管理系统)

  • 数据库的管理软件,科学有效的管理我们的数据。维护和获取数据
  • MySQL,数据库管理系统!

MySQL简介

MySQL是一个关系型数据库管理系统

前生:瑞典MySQL AB 公司开发

今世:属于 Oracle 旗下产品

MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

开源的数据库软件

体积小、速度快、总体拥有成本低,

大中小型网站的开发都选择 MySQL 作为网站数据库

官网:https://www.mysql.com/

安装MYSQL

win10安装

新建mysql配置文件ini

[mysqld]
port=3306
basedir=D:\kgc200x\app\mysql-8.0.18-winx64\
datadir=D:\kgc200x\app\mysql-8.0.18-winx64\data
max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
default-character-set=utf8mb4
[client]
port=3306
default-character-set=utf8mb4

启动管理员模式下的CMD,运行所有的命令

安装SQLyog

连接数据库

新建一个数据库school

每一个sqlyog的执行操作,本质就是对应了一个sql,可以在软件的历史记录中查看

新建一张表 student

连接数据库

命令行连接!

mysql -uroot -p      连接数据库update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost'; --修改用户密码改密码8.0的语句
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';flush privileges;    刷新权限-------------------------------------------
所有的语句都使用;结尾
show databases;     查看所有的数据库use 数据库名            切换数据库show tabels;        查看数据库中所有的表mysql> describe student;   显示数据库中指定表的信息
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(10)      | NO   | PRI | NULL    |       |
| name  | varchar(100) | NO   |     | NULL    |       |
| age   | int(3)       | NO   |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.01 sec)mysql> create database westos;       创建一个数据库exit;     退出连接-- 单行注释(SQL的注释)/*    (sql的多行注释)
hello
world
maomao
*/

linux安装

我使用二进制安装,已经编译完成,只需要初始化,就可以使用。

tar xf mysql-5.7.25-el7-x86_64.tar.gz -C /usr/localmv mysql-5.7.25-el7-x86_64 mysqlgroupadd  mysqluseradd -M -s /sbin/nologin mysql -g mysqlchown -R mysql:mysql mysql/vim /etc/my.cnf[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
server_id=1
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
prompt=mysql [\\d]>初始化
/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data
--basedir=/usr/local/mysql最后一排会出现一个随机密码 我们把密码复制下来
如:[Note] A temporary password is generated for root@localhost: JFw#)%:(&3yl将mysql服务添加进系统服务
cd support-files/
cp mysql.server /etc/init.d/mysqld
ls /etc/init.d/mysqld添加mysqld进入系统服务
chkconfig --add mysqld
chkconfig --list mysqldservice mysqld start
ps -aux |grep mysql添加环境变量
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile登录Mysql(密码为初始化密码 之前复制的密码)
/usr/local/mysql/bin/mysql -uroot -p进入mysql之后 修改密码
ALTER USER 'root'@'localhost' identified by '你的密码';

使用Navicat Premium连接数据库


需要对用户授权

grant all on *.* to 'root'@'%' identified by '123';
grant all on *.* to 'root'@'localhost' identified by '123';
flush privileges;

Mysql里面有四种语言 CRUD 增删改查!

DDL 数据库定义语言

DML 数据库操作管理语言

DQL 数据库查询语言

DCL 数据库控制语言

操作数据库

操作数据库>操作数据库中的表>操作数据库中表的数据

mysql关键字不区分大小写

操作数据库

  1. 创建数据库
CREATE DATABASE [IF NOT EXISTS] name;
  1. 删除数据库
DROP DATABASE [IF EXISTS] name;
  1. 使用数据库
tab键的上面,如果你的表名或者字段名是一个特殊字符,就需要带``USE `school`
SELECT `user` FROM student
  1. 查看数据库
SHOW DATABASES;      查看所有数据库

数据库的数据类型

数值

  • tinyint 十分小的数据 1个字节

  • smallint 较小的数据 2个字节

  • mediumint 中等大小的数据 3个字节

  • int 标准的整数 4个字节 常用的

  • bigint 较大的数据 8个字节

  • float 浮点数 4个字节

  • double 浮点数 8个字节

  • decimal 字符串形式的浮点数 金融计算的时候,一般使用decimal

字符串

  • char 字符串固定大小的 0 - 255

  • varchar 可变字符串 0 - 65535 常用的变量 String

  • tinytext 微型文本 2^8 - 1

  • text 文本串 2^16 -1 保存大文本

时间日期

  • date YYYY-MM-DD 日期格式
  • time HH:mm:ss 时间格式
  • datetime YYYY-MM-DD HH:mm:ss 最常用的时间格式
  • timestamp 时间戳 1970.1.1到现在的毫秒数!也较为常用
  • year 年份表示

null

  • 没有值,未知
  • 注意!!不要使用NULL进行运算,结果为NULL

数据库的字段属性(重要)

Unsigned:

  • 无符号的整数
  • 声明了该列不能声明为负数

zerofill:

  • 0填充的
  • 不足的位数,使用0来填充,举例:如果int(3)5 — 005

自增: AUTO_INCREMENT

  • 通常理解为自增,自动在上一条记录的基础上 +1(默认)
  • 通常用来设计唯一的主键 index,必须是整数类型
  • 可以自定义设计主键的起始值和步长

非空: NUll not null

  • 假设设置为not null,如果不给它赋值,就会报错!
  • NUll,如果不填写值,默认就是null!

默认: DEFAULT

  • 设置默认的值!
  • sex,默认值为男,如果不指定该列的值,则会有默认的值!

扩展:

未来做项目用的,表示一个记录存在的意义!

id 主键

version 乐观锁

id_delete 伪删除

gmt_create 创建时间

gmt_update 修改时间

创建数据库表

 目标:创建一个school数据库创建学生表(列,字段)   使用SQL 创建学号int 登陆密码varchar(20) 姓名,性别varchar(2),出生日期(datatime),家庭住址,email注意点,使用英文(),表的名称 和 字段 尽量使用 `` 括起来AUTO_INCREMENT 自增字符串使用 单引号括起来所有的语句后面加,(英文的),最后一个不用加PRIMARY KEY 主键,一般一个表只有一个唯一的主键!CREATE TABLE IF NOT EXISTS `student`(`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',`gender` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

格式

CREATE TABLE [IF NOT EXISTS] `表名`('字段名' 列类型 [属性] [索引] [注释],'字段名' 列类型 [属性] [索引] [注释],......'字段名' 列类型 [属性] [索引] [注释]
)[表类型][字符集设置][注释]

常用命令

SHOW CREATE DATABASE school   查看创建数据库的语句
SHOW CREATE TABLE student    查看student数据表的定义语句
DESC student     显示表的结构

数据表的类型

– 关于数据库引擎
INNODB 默认使用
MYISAM 早些年使用的

MYISAM INNODB
事务支持 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间的大小 较小 较大,约为2倍

常规使用操作:

  • MYISAM 节约空间,速度较快
  • INNODB 安全性高,事务的处理,多表多用户操作

MYISAM采用三个文件组织一张表:
xxx.frm(存储格式的文件)
xxx.MYD(存储表中数据的文件)
xxx.MYI(存储表中索引的文件)

INNODB采用两个文件组织一张表
xxx.frm(存储格式的文件)
xxx.ibd(存储表中数据和索引的文件)

在物理空间存在的位置
所有的数据库文件都存在 data 目录下,一个文件夹就对应一个数据库

本质还是文件的存储!

MySQL 引擎在物理文件上的区别

  • innoDB 在数据库表中只有一个*.frm文件,以及上级目录下的 ibdata1 文件
  • MYISAM对应文件
    • *.frm 表结构的对应文件
    • *.MYD 数据文件(data)
    • *.MYI 索引文件(index)

设置数据库表的字符集编码

CHARSET=utf8

不设置的话,会是mysql默认的字符集编码(不支持中文!)

可以修改编码

在my.ini中配置默认的编码

character-set-server=utf8

修改和删除表

修改

-- 修改表   ALTER TABLE 旧表名 RENAME AS 新表名
ALTER TABLE teacher RENAME AS teacher1-- 增加表的字段 ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE teacher1 ADD age INT(11)-- 修改表的字段(重命名,修改约束)
-- ALTER TABLE 表名 MODIFY 字段名 列属性[]
ALTER TABLE teacher1 MODIFY age VARCHAR(11)  -- 修改约束
-- ALTER TABLE 表名 CHANGE 旧名字 新名字 列属性[]
ALTER TABLE teacher1 CHANGE age age1 INT(1)  -- 字段重命名-- 删除表的字段
-- ALTER TABLE 表名 DROP 字段名
ALTER TABLE teacher1 DROP age1

删除

-- 删除表(如果表存在再删除)
DROP TABLE IF EXISTS teacher1

所有的创建和删除操作尽量加上判断,以免报错

注意点:

  • `` 字段名,使用这个包裹
  • 注释 – /**/
  • sql 关键字大小写不敏感,建议大家写小写
  • 所有符号全部用英文的

导入表操作

准备一个sql脚本

然后在当前目录连接mysql

mysql [(none)]>source student.sql
Query OK, 1 row affected (0.00 sec)Database changed
Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected (0.01 sec)mysql [school]>desc school.student;
+--------------+--------------+------+-----+---------+-------+
| Field        | Type         | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| studentno    | int(4)       | NO   | PRI | NULL    |       |
| loginpwd     | varchar(20)  | YES  |     | NULL    |       |
| studentname  | varchar(20)  | YES  |     | NULL    |       |
| sex          | tinyint(1)   | YES  |     | NULL    |       |
| gradeid      | int(11)      | YES  |     | NULL    |       |
| phone        | varchar(50)  | NO   |     | NULL    |       |
| address      | varchar(255) | NO   |     | NULL    |       |
| borndate     | datetime     | YES  |     | NULL    |       |
| email        | varchar(50)  | NO   | MUL | NULL    |       |
| identitycard | varchar(18)  | YES  | UNI | NULL    |       |
+--------------+--------------+------+-----+---------+-------+
10 rows in set (0.00 sec)

数据库应用——MySQL基础知识和操作数据库相关推荐

  1. java数据库edit_Java数据库连接——JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  2. [Python从零到壹] 八.数据库之MySQL和Sqlite基础知识及操作万字详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  3. 数据库总结之基础知识篇

    来自尚硅谷宋红康老师的Mysql讲解 一,MySQL环境搭建 1. MySQL的卸载 步骤1:停止MySQL服务 在卸载之前,先停止MySQL8.0的服务.按键盘上的"Ctrl + Alt ...

  4. 计算机数据库管理基本知识,2015年计算机四级考试《数据库技术》基础知识:概念篇...

    2015年计算机四级考试<数据库技术>基础知识:概念篇 信息与数据 1. 信息.物质.能量是组成客观世界并促进社会发展的三大基本要素; 2. 信息(Information)--是客观世界事 ...

  5. mysql数据库基础简介_MySQL数据库之MySQL 基础之MySQL简介

    本文主要向大家介绍了MySQL数据库之MySQL 基础之MySQL简介 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. MySQL基础 1.定义 开源的关系型数据库管理系统.现在 ...

  6. php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码

    <Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...

  7. mysql binary模式_MySQL数据库之MySQL的binary类型操作

    本文主要向大家介绍了MySQL数据库之MySQL的binary类型操作 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 示例数据表: CREATE TABLE test_bin  ...

  8. MySQL工作中的实际用_总结工作中经常用到的mysql基础知识

    总结工作中经常用到的mysql基础知识 发布时间:2020-06-08 11:27:30 来源:51CTO 阅读:217 作者:三月 本文主要给大家介绍工作中经常用到的mysql基础知识,文章内容都是 ...

  9. mysql基础知识(一)

    mysql是主流的关系型数据库管理系统(RDBMS---relation database management system),操作是需要用SQL(Structured Query Language ...

最新文章

  1. 左牵Uber右联大众,黄教主带领320家车企一统自动驾驶江湖
  2. Java核心类库-IO-字节数组流/内存流
  3. 2019中韩版权研讨会举行 网络成版权保护主战场
  4. Filter 字符编码Filter 一
  5. 深度学习入门必须理解这25个概念
  6. 如何升级浏览器_Chrome谷歌浏览器秒变科研神器,让你的效率提升10倍!
  7. 如何快速构建嵌入式全栈知识体系?
  8. php学的是什么意思_为什么要学习PHP?到底什么是PHP?
  9. Dart语言基础Map、List、Set操作合辑
  10. php接收get数组数据,php-如何从wordpress数据库中获取数组值get_results
  11. 基于SDN的环路通信
  12. 在windows使用vs2008编译live555
  13. ethtool---查看网卡
  14. C++的性能C#的产能?! - .Net Native 系列向导
  15. 计算机漏洞英语怎么说,漏洞英文,漏洞英文发音bug。
  16. PHP实现电子商务网站
  17. 服务器raid发生故障如何恢复数据?- raid5磁盘阵列数据恢复方法
  18. xp系统计算机怎么连接到网络打印机,windows xp系统如何连接不同网段共享打印机...
  19. wbincms v1.5 综合门户管理系统发布 thinkphp3.2.3+amazui-2.5.2
  20. 统一监控报警平台架构设计思路

热门文章

  1. 一维随机变量的常见分布、期望、方差及其性质与推导过程
  2. 高端在线客服系统源码PHP外贸新版(基于Thinkphp的网站在线客服系统)
  3. Java期末项目体温监测系统,作业三:高温预警系统项目中的观察者模式解析
  4. 太强了!60 种可视化图表制作工具和使用场景(推荐收藏)
  5. 小米移动3G版本,救砖手册,移动叔叔
  6. mybatis-generator-gui 一款 mybatis generator 的图形界面工具
  7. Python+Vue计算机毕业设计高考填报志愿综合参考系统1kc8i(源码+程序+LW+部署)
  8. Codesys禾川Q1配置SV-X3EB实现单轴控制
  9. Linux下安装EDB
  10. 双目相机IMX219-83 +jetson nano 使用教程