重点:内存和外存的区别
1、内存的存储空间小(8G、16G),外存的存储空间大(512G、1T)
2、内存的访问速度快,外存的访问速度慢(大概要差3-4个数量级)
3、内存成本高,外存成本低
4、内存中的数据断电后会消失,外存中的数据断电后不会消失
一、 数据库的操作
show databases;-- 显示当前的数据库(注意是databases)
create database test;-- 创建名为test的数据库
use test;-- 使用名为test的数据库
drop database test;-- 删除名为test的数据库
二、常用数据类型
数值类型:tinyint (1字节)对应Java中的 Byte
smallint(2字节)对应Java中的 Short
int(4字节)对应Java中的 Integer
bigint(8字节)对应Java中的 Long
float(M,D)M为有效数字,D为小数位数 (4字节)对应Java中的 Float
double(M,D)(8字节)对应Java中的 Double
decimal(M,D) 用于表示更加精确的小数(常用于算钱的领域)对应Java中的Bigdecimal
字符串类型 :varchar(size) size可自己规定(单位是字符) 对应Java中的 String
text 应用于长文本数据 对应Java中的 String
mediumtext 应用于长文本数据 比text更长一些 对应Java中的 String
blob 表示二进制的数据 对应Java中的 byte
日期类型:datetime(8字节)范围1000-9999年
timestamp(4字节) 范围1970-2038年
三、表的简单操作
-- 要操作数据库中表的前提:先使用该数据库
use test;
-- 显示当前库里有多少表
show tables;
-- 创建名为student的表
create table student(id int,name varchar(50),age int,score double(3,1),t datetime);
-- 查看表结构
desc student;
-- 删除名为student的表
drop table student;
-- 在表中添加元素
insert into student values(1,'ly',20,99.9,'2022-03-05 22:25:00');-- 添加时间还可用now()
insert into student(id,name) values(2,'xyh');-- 只添加其中部分元素
-- 查看添加完数据之后的表
select * from student;
四、 MySQL表的增删改查(基础)
1、查找 select from 表名 是一个危险的操作!!!
-- 创建一个名为exam_result的表(create table 表名)
create table exam_result(id int,name varchar(20),chinese decimal(3,1),math decimal(3,1),english decimal(3,1);
-- 插入测试数据(insert into 表名 values)
insert into exam_result values(1,'唐三藏',67,98,56),(2,'孙悟空',87.5,78,77),(3,'猪悟能',88,98.5,90),(4,'曹孟德',82,84,67),(5,'刘玄德',55.5,85,45),(6,'孙权',70,73,78.5),(7,'宋公明',75,65,30);
-- 全列查询(select * from 表名)
select * from exam_result;
-- 指定列查询(select 列名,列名.... from 表名)
select id,name,english from exam_result;
-- 查询字段为表达式(select 列名/由列名计算的表达式,...from 表名)
select id,name,chinese+math+english from exam_result;-- 将总成绩查询出来
select id,name,chinese+math+english as total from exam_result;-- 将总成绩用别名total表示
2、去重 distinct
-- 去重(