数据库应用——MySQL基础知识和操作数据库
这里写目录标题
- 初识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关键字不区分大小写
操作数据库
- 创建数据库
CREATE DATABASE [IF NOT EXISTS] name;
- 删除数据库
DROP DATABASE [IF EXISTS] name;
- 使用数据库
tab键的上面,如果你的表名或者字段名是一个特殊字符,就需要带``USE `school`
SELECT `user` FROM student
- 查看数据库
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基础知识和操作数据库相关推荐
- java数据库edit_Java数据库连接——JDBC基础知识(操作数据库:增删改查)
一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...
- [Python从零到壹] 八.数据库之MySQL和Sqlite基础知识及操作万字详解
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- 数据库总结之基础知识篇
来自尚硅谷宋红康老师的Mysql讲解 一,MySQL环境搭建 1. MySQL的卸载 步骤1:停止MySQL服务 在卸载之前,先停止MySQL8.0的服务.按键盘上的"Ctrl + Alt ...
- 计算机数据库管理基本知识,2015年计算机四级考试《数据库技术》基础知识:概念篇...
2015年计算机四级考试<数据库技术>基础知识:概念篇 信息与数据 1. 信息.物质.能量是组成客观世界并促进社会发展的三大基本要素; 2. 信息(Information)--是客观世界事 ...
- mysql数据库基础简介_MySQL数据库之MySQL 基础之MySQL简介
本文主要向大家介绍了MySQL数据库之MySQL 基础之MySQL简介 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. MySQL基础 1.定义 开源的关系型数据库管理系统.现在 ...
- php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码
<Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...
- mysql binary模式_MySQL数据库之MySQL的binary类型操作
本文主要向大家介绍了MySQL数据库之MySQL的binary类型操作 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 示例数据表: CREATE TABLE test_bin ...
- MySQL工作中的实际用_总结工作中经常用到的mysql基础知识
总结工作中经常用到的mysql基础知识 发布时间:2020-06-08 11:27:30 来源:51CTO 阅读:217 作者:三月 本文主要给大家介绍工作中经常用到的mysql基础知识,文章内容都是 ...
- mysql基础知识(一)
mysql是主流的关系型数据库管理系统(RDBMS---relation database management system),操作是需要用SQL(Structured Query Language ...
最新文章
- 左牵Uber右联大众,黄教主带领320家车企一统自动驾驶江湖
- Java核心类库-IO-字节数组流/内存流
- 2019中韩版权研讨会举行 网络成版权保护主战场
- Filter 字符编码Filter 一
- 深度学习入门必须理解这25个概念
- 如何升级浏览器_Chrome谷歌浏览器秒变科研神器,让你的效率提升10倍!
- 如何快速构建嵌入式全栈知识体系?
- php学的是什么意思_为什么要学习PHP?到底什么是PHP?
- Dart语言基础Map、List、Set操作合辑
- php接收get数组数据,php-如何从wordpress数据库中获取数组值get_results
- 基于SDN的环路通信
- 在windows使用vs2008编译live555
- ethtool---查看网卡
- C++的性能C#的产能?! - .Net Native 系列向导
- 计算机漏洞英语怎么说,漏洞英文,漏洞英文发音bug。
- PHP实现电子商务网站
- 服务器raid发生故障如何恢复数据?- raid5磁盘阵列数据恢复方法
- xp系统计算机怎么连接到网络打印机,windows xp系统如何连接不同网段共享打印机...
- wbincms v1.5 综合门户管理系统发布 thinkphp3.2.3+amazui-2.5.2
- 统一监控报警平台架构设计思路
热门文章
- 一维随机变量的常见分布、期望、方差及其性质与推导过程
- 高端在线客服系统源码PHP外贸新版(基于Thinkphp的网站在线客服系统)
- Java期末项目体温监测系统,作业三:高温预警系统项目中的观察者模式解析
- 太强了!60 种可视化图表制作工具和使用场景(推荐收藏)
- 小米移动3G版本,救砖手册,移动叔叔
- mybatis-generator-gui 一款 mybatis generator 的图形界面工具
- Python+Vue计算机毕业设计高考填报志愿综合参考系统1kc8i(源码+程序+LW+部署)
- Codesys禾川Q1配置SV-X3EB实现单轴控制
- Linux下安装EDB
- 双目相机IMX219-83 +jetson nano 使用教程