第四章:数据库-1

第四章:数据库-1

数据库的优点: 
· 持久化存储
· 读写速度快
· 保证数据有效
· 程序支持好,拓展性高
数据库分类:
· Mysql 关系数据库(二维表格)
· MongoDB,Redis 非关系数据库(key-value)
Mysql数据类型:
整型类型:
    INT 常用的就这个,存储为16bit或4bytes,范围为(负的2的16次方)~(2的16次方-1)
    · 其实整型用的最多就是INT,其他的类型有需要可以考虑用
    · 下表是整型类型

请添加图片描述


浮点型:
    float 单精度,6位
    double 双精度,16位
    decimal 定点数,decimal(5,2)代表两位小数,如,888.88

字符串:

请添加图片描述

字符串类型:
char、varchar:
    char 定长字符,创建表时就确定
    varchar 变长字符,长度由内容决定
· 定长的磁盘空间比较浪费,但是效率高:如果数据长度基本一样,就选择定长;如身份证,手机号码等
· 变长的磁盘空间比较节省,但是效率低:如果数据不能确定长度(不同数据长度有变化),如姓名,地址等
· 这只是两者的相比,实际开发中除了固定的长度外,基本使用varchar
-- 一般的使用方法为
create table TABLENAME(
    c1 char(10),
    c2 varchar(10)
);
文本类型:
    text 存储文字
    blob 存储二进制数据,如图片、音频
    · 文本类型其实不好,查询时使用临时表,如果使用文本类型,开销会非常大
    · 下面是text类型

请添加图片描述


枚举、集合类型:
    enum 枚举,实际存储是1,2,3,4……,创建时会建立一个索引
    set 集合,这个存储方式比较特别,有兴趣可以去查看一下,用的少,这里就不讲了
    · 下面为用法
create table TABLENAME(
    hobby set('篮球','足球','乒乓球','羽毛球','排球','台球','网球','棒球'),
    enu enum('男', '女', '保密')
);

时间类型:
    · 这个可以记一下,主要是表示时间

请添加图片描述

-- 介绍两个有趣的语句
select version();
select NOW();
数据完整性和约束:
· 保证数据的正确性,核实其约束条件

约束:
    NOT NULL 非空约束
    PRIMARY KEY 主键约束(唯一,非空)
    UNIQUE KEY 唯一约束(唯一,可空,但只能有一个)
    DEFAULT 默认约束(该数据的默认值)
    FOREIGN KEY 外键约束
数据库基本操作:
-- 数据库基本操作
-- 查看所有数据库
show databases ;
-- 查看当前使用的数据库
select database();
-- 创建数据库,默认utf8编码
create database BASENAME charset=utf8;
-- 使用某个数据库
use BASENAME;
-- 删除数据库
drop database BASENAME;

创建表:
-- 基本格式,以下为示例
create table if not exists TABLENAME(
    id int unsigned primary key auto_increment not null ,
    name varchar(10) default '',
    age tinyint unsigned default 0,
    height decimal(5,2),
    cls_id int unsigned default 0
);
-- default后面跟默认值,auto_increment代表自动增长

查看表结构:
-- 查看表结构
desc TABLENAME;

表结构修改命令:
-- 往表加入一列为int类型的列,名字为id
alter table TABLENAME add id int;
-- 改名,也可以改字段类型,同时往里边加约束
alter table TABLENAME 
change id new_id tinyint unsigned not null primary key;
-- 修改字段,注意与change很相似,但是有区别
alter table TABLENAME
modify new_id int signed null UNIQUE;
-- 删除字段
alter table TABLENAME drop new_id;
-- 删除表
drop table TABLENAME;

表数据操作命令:
-- 全列插入,插入顺序是表结构字段的顺序对应
insert into TABLENAME values('','');
-- 部分插入,值的顺序与给的顺序一样
insert into TABLENAME (col1,col2,col3) values ('','','');
-- 一次性插入多行数据
insert into TABLENAME values ('')('')('');
-- 部分列插入多行数据
insert into TABLENAME (col1,col2,col3) values ('')('')('');
-- 查看表字段
select * from TABLENAME;
-- 查看部分字段
select col1,col2 from TABLENAME;
-- 更新表
update TABLENAME
set col1='xxx', col2='sss'
where coln='ppp'
order by asc|desc
limit 2,5;
-- 删除
delete from TABLENAME
where coln='ppp';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值