数据库随笔 一

数据库

基本概念

数据库分类

  • 关系型数据库:Oracle、MySQL、SQLServer、Access
  • 非关系型数据库 MongoDB、Redis、Solr、ElasticSearch、Hive、HBase

SQL语句

SQL语句分类
  • DML(Data Manipulation Language)数据操纵语言
  • DDL(Data Definition Language)数据库定义语言
  • DCL(Data Control Language)数据库控制语言
  • DQL(Data Query Language)数据库查询语言
数据库常用操作
  • 创建数据库 USER
create databases USER(数据库) DEFAULT CHARACTER SET utf8;
  • 删除数据库 USER
drop databases USER(数据库);
  • 查看所有数据库
show databases;
  • 使用数据库 USER
use USER(数据库)
表常用操作
  • 创建表 user(包含id,name,tel)
create table user(
id int primary key auto_increment,
name varchar(100),
tel varchar(15)
);
  • 修改表 在user表中添加列
alter table user add column money NUMERIC(7,2);
  • 删除表 user
drop table user;
  • 查看表
desc user;
表内容常用操作
  • 插入 向user表中插入两条内容
insert into user values(001,'小王',123123123);
insert into user values(002,'小张',321321321);
  • 查询 查询user表中所有的内容
SELECT * FROM user;
  • 修改内容 将user表中小王tel修改为234234234
update user set tel=234234234 where id=001;
  • 删除内容 将user表中id=2的内容删除
DELETE from user where id=2;
  • 排序 将user表按照tel进行排序
select * from user order by tel desc;
  • 查询总内容
select count(*) from user;

数据类型

命名规则

  • 字段名必须以字母开头,尽量不要使用拼音
  • 长度不能超过30个字符(不同数据库,不同版本会有不同)
  • 不能使用SQL的保留字,如where,order,group
  • Oracle习惯全大写:USER_NAME,mysql习惯全小写:user_name
  • 多个单词用下划线隔开,而非使用java语言的驼峰规则

字符

  • char长度固定,不足使用空格填充,最多容纳2000个字符,char(11)存储abc,占11位。查询速度极快但浪费空间
  • varchar变长字符串,最多容纳4000个字符,varchar(11)存储abc,只占3位。查询稍慢,但节省空间。Oracle为varchar2
  • 大文本: 大量文字(不推荐使用,尽量使用varchar替代)
  • 以utf8编码计算的话,一个汉字在u8下占3个字节

数字

  • tinyint,int整数类型
  • float,double小数类型
  • numeric(5,2) decimal(5,2)—也可以表示小数,表示总共5位,其中可以有两位小数
  • decimal和numeric表示精确的整数数字

日期

  • date 指年月日
  • time 指时分秒
  • datetime 指年月日和时分秒
  • timestamp时间戳,不是日期,而是从1970年1月1日到指定日期的毫秒数

图片

blob 二进制数据,可以存放图片、声音,容量4g。早期有这样的设计。但其缺点非常明显,数据库庞大,备份缓慢,这些内容去备份多份价值不大。同时数据库迁移时过大,迁移时间过久。所以目前主流都不会直接存储这样的数据,而只存储其访问路径,文件则存放在磁盘上。

字段约束

主键约束

定义

主键约束:如果为一个列添加了主键约束,那么这个列就是主键,主键的特点是唯一且不能为空。通常情况下,每张表都会有主键。

主键自增策略

当主键为数值类型时,为了方便维护,可以设置主键自增策略(auto_increment),设置了主键自增策略后,数据库会在表中保存一个AUTO_INCREMENT变量值,初始值为1,当需要id值,不需要我们指定值,由数据库负责从AUTO_INCREMENT获取一个id值,作为主键值插入到表中。而且每次用完AUTO_INCREMENT值,都会自增1. AUTO_INCREMENT=1
例:

create table abc(
id int primary key auto_increment
);
insert into abc values(null);
insert into abc values(null);
insert into abc values(null);
select * from abc;

非空约束

定义

非空约束:如果为一个列添加了非空约束,那么这个列的值就不能为空,但可以重复。
例:为password添加非空约束:

create table user(
id int primary key auto_increment,
password varchar(50) not null
);
show tables;
insert into user values(null,null);//不符合非空约束
insert into user values(null,123;);//OK

唯一约束

定义

唯一约束:如果为一个列添加了唯一约束,那么这个列的值就必须是唯一的(即不能重复),但可以为空。
例:为username添加唯一约束及非空约束:

create table test(
id int primary key auto_increment,
username varchar(50) unique--唯一约束
);
show tables;
insert into test values(null,'lisi');
insert into test values(null,'lisi');--username的值要唯一,重复会报错的
select * from test;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值