【MySQL】基础学习全解(一)

这篇博客主要是笔者为了准备秋招的数据分析岗位,然后整理的数据库的一下基本概念,如果有什么不对的地方,欢迎各位通过QQ邮箱:1391716398与笔者进行联系和沟通。

1、介绍
数据库模型
· 层次模型
· 网状模型
· 关系模型

主流关系数据库
· 商用数据库,例如:Oracle,SQL Server,DB2等;
· 开源数据库,例如:MySQL,PostgreSQL等;
· 桌面数据库,以微软Access为代表,适合桌面应用程序使用;
· 嵌入式数据库,以Sqlite为代表,适合手机应用和桌面程序。

基本的SQL命令

使用规则
每条SQL命令以分号结尾,不区分字母大小写。
库的管理
① 库的基本操作
查看已有库: show databases
创建新库: create database + 库名 + 指定字符集(charset=utf8);
查看创建库: show create database 库名;
查看当前所在库: select database();
切换库: use 库名;
查看库中已有的表: show tables;
删除库: drop database 库名;

表的管理
① 表的基本操作
创建表: create table 表名(字段名 数据类型;字段名 数据类型 …);
查看创建表的语句:show create table 表名;
查看表结构: desc 表名;
删除表名: drop table 表名;
② 表记录管理
在表中插入记录:
语法: insert into 表名 values (值1),(值2),(值3)…
指定字段插入:insert into 表名 (字段名列表) values (值1),(值2),(值3)…
查询表记录:
select * from 表名; (表中所有数据都显示出来)
select 字段名1,字段名2,字段名3 from 表名;(查找指定字段名)
表字段操作:
添加字段:alter table 表名 add 字段名 数据类型;(默认加在最后一列,如果加了first 就是加在第一列,affter+给定字段则是加在给定字段之后)
删除一个字段:
alter table 表名 drop 字段名;
修改字段数据类型:
alter table 表名 modify 字段名 新数据类型;
#修改的数据类型会受到表中原始数据的限制;
修改字段名:
alter table 表名 change 字段名 new(字段名);

数据类型
Mysql数据库支持:整形,浮点型,字符型,时间类型,枚举类型,集合类型

整形:

类型:
tinyint:1字节 -128~127
smallint:2字节
mediumint:3字节
int:4字节 -2147483648~2147483647
bigint:8字节
约束:
unsigned:无符号
zerofill:0填充
不同类型所占字节数不一样,决定所占空间及存放数据的大小限制

浮点型

类型:
float:4字节, 3.4E -38~3.4E+38
double:8字节,1.7E-308~1.7E+308
decimal: M,D 大值基础上+2
宽度:限制存储宽度
(M,D)=>M为位数,D为小数位
float(255,30):精度最低,最常用
double(255,30):精度高,占位多
decimal(65,30):字符串存,全精度

字符型

类型:
char:定长
varchar:不定长
宽度:
限制存储宽度
char(4):以4个字符存储以char属性存储的数据
varchar(4):数据长度决定字符长度,为可变长度存储数据
两者特点:
char: 浪费存储空间,但是性能高;
varchar:节省存储空间,但是性能低。

时间类型:

类型:
year:yyyy(1901/2155)
date:yyyy-MM-dd(1000-01-01/9999-12-31)
time:HH:mm:ss
datetime:yyyy-MM-dd HH-mm-ss(1970-01-01 00:00:00/2308-01-19 (具体几点不知道))

枚举与集合

类型:
enum:单选
set:多选

约束条件

primary key:主键,唯一标识,表都会拥有,不设置为默认找第一个 不空,唯一字段;为标识则创建隐藏字段
foreing key:外键
unique key:唯一性数据, 该条字段的值需要保证唯一,不能重复
auto_increment:自增,只能加给key字段辅助修饰
not null:不为空
default:默认值
unsigned:无符号
zerofill:0填充注:
1.键可以提高数据的存取效率,提高io
2.联合唯一
create table web (
ip char(16),
port int,
unique(ip,port)
);
3.联合主键
create table web (
ip char(16),
port int,
primary key(ip,port)
);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值