08-MySql

1.引言

1.1 现有的数据存储方式有那些?

  • Java程序存储数据(变量,对象,数组,集合),数据保存在内存中,属于瞬时状态存储。
  • 文件(File)存储数据,保存在硬盘上,属于持久状态存储。

1.2 以上存储方式存在那些优缺点?

  • 没有数据类型的区分。
  • 存储数据量级较小
  • 没有访问安全限制
  • 没有备份,恢复机制

2.数据库

2.1 概念

数据库是按照数据结构来组织,存储和管理数据的仓库。是一个长期存储在计算机内的,有组织的,有共享的,统一管理的数据集合。

存储数据的仓库

2.2 数据库的分类

  • 关系结构数据库:Oracle、DB2、MySQL、SQL Server,以表格(Table)存储,多表间建立关联关系,通过分类、合并、 连接、选取等运算实现访问。
  • 非关系型数据库:ElastecSearch、MongoDB、Redis、HBase等,多数使 用哈希表,表中以键值(key-value)的方式实现特定的键和 一个指针指向的特定数据

数据库的分类,关系型和非关系型数据库,后期面试常问!

3 数据库管理系统

3.1 概念

数据库管理系统(DataBase Management System, DBMS):指一种操作和管理数据库的大型软件,用于建立、使 用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。


DBMS,一种操作和管理数据的一个软件

3.2 常见数据库管理系统

  • Oracle:被认为是业界目前比较成功的关系型数据库管理系 统。Oracle数据库可以运行在UNIX、Windows等主流操作系 统平台,完全支持所有的工业标准,并获得最高级别的ISO 标准安全性认证。

    ps: Oracle政府系统,特别是银行证券金融用的比较多

    ps: 现在已经在慢慢使用国产数据库替换Oracle

    ps: 由阿里提出一个口号"去IOE"

  • DB2:IBM公司的产品,DB2数据库系统采用多进程多线索体 系结构,其功能足以满足大中公司的需要,并可灵活地服务 于中小型电子商务解决方案。

  • SQL Server:Microsoft 公司推出的关系型数据库管理系统。 具有使用方便可伸缩性好与相关软件集成程度高等优点。

  • SQLLite:应用在手机端的数据库。手机通讯录,短信等

  • MySQL

    ps: mysql是现在中小型公司用,市场占绝大部分

4 MySQL

4.1 简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公 司开发,现在已经属于 Oracle 旗下产品。MySQL 是最流行的关系型数据 库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS(Relational Database Management System,关系数据库管 理系统) 应用软件之一。开源免费!

4.2 访问与下载

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

下载地址:https://dev.mysql.com/downloads/mysql/


最新版本是8版本,我们要安装使用的是5.7

4.3 安装

5 SQL语言

5.1 SQL语言分类

SQL (Structure Query Language) 结构化查询语言

SQL99标准,已经被ISO国际化标准组织确定关系型数据库语言的标准.


但是,每个数据库还有各自自己特有的语句

SQL语言主要分为四大类

  • DDL(Data Definition Language) 数据定义语言,定义数据库,表,列等
  • DML(Data Manipulation Language) 数据操作语言,操作内部数据(增,删除,修改)
  • DQL(Data Query Language) 数据查询语言,对数据的查询
  • DCL(Data Control Language) 数据控制语言,定义数据的访问控制和安全

5.2 DDL

DDL是数据定义语言,主要是以下操作

  • 数据库查询/创建/使用/删除/修改
  • 数据表查询/创建/删除/修改

5.2.1 数据库操作

登录到mysql

mysql -uroot -p123456

退出mysql

exit

查询数据库

show databases;
-- SQL语句要以;结尾
-- 默认装好的数据库管理系统,有4个数据库,这4个不要动

创建数据库

create database 数据库名;

修改数据库

-- 数据库不能修改名字,一旦创建数据库,名字固定
-- 一般如果要修饰数据库,只能修改数据库的编码格式
-- 但是数据库的编码格式已经设置好了是UTF-8
alter database 库名 character set gbk;

删除数据库

drop database 库名;

使用数据库

use 库名;

查询当前正在使用的数据库

select database();

5.2.2 数据表操作

查询当前库下的所有表

show tables;

创建数据表

create table 表名(
字段名1 数据类型(长度),
字段名2 数据类型(长度),
字段名3 数据类型(长度),
...
);
---------------------------------------------------------------
创建学生表,有学号 数字,姓名 字符串,成绩 浮点型,生日 日期型
---------------------------------------------------------------
create table stu(
sid int(11),
name varchar(10),
score double(5,2),
birthday date
);
数据类型解释长度
int整形11,固定,可以省略
double浮点型(x,y) 总长x位,其中包含y位小数
char定长字符0-255,声明(10)的字符,即使字符不够,也会占用10位
varchar可变长字符0-255,声明(10)的字符,会根据实际存储缩放
date日期没有长度
datatime日期时间没有长度
timestamp时间戳没有长度

特别说明,日期目前采用字符串的形式来写,即’2020-01-01’

查看报错信息的技巧

错误信息语句,就看near后面的提示


查看表结构

desc 表名;

修改表名

rename table 老名 to 新名;

修改列名

alter table 表名 change 旧列名 新列名 数据类型(长度);

增加列

alter table 表名 add 列名 数据类型(长度);

删除列

alter table 表名 drop 列名;

删除表

drop table 表名;

5.2.3 总结

DDL语句

  • 创建库/表 create database/table 名字
  • 修改库/表 alter database/table 名字 …
  • 查询库/表 show databases/tables
  • 删除库/表 drop database/table 名字

5.3 DML

DML 数据操作语言,其实对表中的数据进行

  • 增(插入)

5.3.1 插入

插入,就是向数据库表中插入数据,语法

insert into 表名 (字段1,字段2,...) values (1,2,...);

insert into 表名 values (1,2,...);
-- 注释
# 注释
/*
* 多行注释
*/
CREATE TABLE `stu` (
  `sid` int(11) DEFAULT NULL,
  `sname` varchar(10) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `score` double(5,2) DEFAULT NULL,
  `birthday` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ================= 插入 =================
/*
 insert into 表名 (字段1,字段2,...) values (值1,值2,...);
注意事项:
1) 数字直接写
2) 字符串用单引号
3) 日期用单引号,格式yyyy-MM-dd
4) 可以单独向部分字段插入数据
5) 插入的字段顺序和原表没有关系,
   但是值顺序要和插入字段顺序一致
6) 当插入表中全部字段时,可以省略字段,直接写值
   此时字段顺序和原表一模一样
7) 可以同时插入多行数据
*/
-- 向表的全部字段插入数据
insert into stu (sid,sname,age,score,birthday)
values (1,'彩云',20,98.2,'2020-01-01');
-- 插入部分字段
insert into stu (sid,sname,age)
values (2,'贝贝',20);
-- 字段顺序和原表没关系
insert into stu (age,sname,sid)
values (18,'老邢',3);
-- 给全部列插入值,省略字段
insert into stu values (4,"骚磊",20,99.9,'2020-01-01');
-- 同时插入多行
insert into stu (age,sname,sid) values 
(18,'博哥',5),
(19,'阳哥',6),
(20,'万哥',7),
(21,'邱哥',8)

使用cmd来操作数据库比较繁琐,所以建议使用数据库图形可视化工具Navicat

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值