数据库基础_1

1.表操作

1.1 表的设计理念

  1. 第一范式:每个列不可分割
  2. 第二范式:实体的每个属性都和主键完全依赖
  3. 第三范式:每列都和主键列直接相关

1.2 表操作

查看数据库
show databases;
选择数据库
use dname;
创建表结构
create table tname{属性名 数据类型 完整性约束条件}
查看表详细定义
show create table tname
查看表定义
describe tname
删除表
drop table tname
修改表名称
alter table tname rename (to) newtname

1.3 字段操作

添加字段

  1. 末尾处添加:alter table tname add 属性名 属性类型
  2. 第一行添加:alter table tname add 属性名 属性类型 first
  3. 指定字段之后:alter table tname add 属性名 属性类型 after 指定属性名
    删除字段
    alter table tablename drop 属性名
    修改字段
  • 修改数据类型:alter table tname modify 属性名 属性类型
  • 修改字段名称:alter table tname change 属性名 新属性名 数据类型
    修改字段名称和数据类型
    alter table tname change 属性名 新属性名 新数据类型
    修改字段顺序
    alter table modify 属性 数据类型 first(after 指定属性名)
    约束条件
  • 非空nk:属性名 数据类型 not null
  • 默认值:属性名 数据类型 default 默认值
  • 唯一性uk:属性名 数据类型 unique
  • 主键pk
    单一主键:属性名 数据类型 primary key
    组合主键:constraint 主键名称 primary key(属性1,属性2) /在字段写完之后直接跟上/
  • 主键自增:属性名 数据类型 auto_increment
  • 外键fk:constraint 外键名称 foreign key (当前表中外键属性) reference 外键所属表(映射表中的属性)

2.Mysql的数据操作

2.1 插入

插入单条数据
insert into tname(属性1,属性2,……) values(属性1的值,属性2的值……)
插入多条数据
insert into tname(属性1,属性2,……)
values(属性11的值,属性12的值……),
(属性21的值,属性22的值……),
(属性31的值,属性32的值……),

(属性1的值,属性2的值……);

插入查询结果
insert into tname(属性1,属性2,……)
select (属性1,属性2,……) from 查询表名 where …

2.2 更新

更新指定记录
update tname set 属性名=属性值,属性名=属性值,… wherer 条件 比如学号为1
更新全部记录
update tname set 属性名=属性值,属性名=属性值,… wherer 条件 比如年龄大于30

2.3 删除

删除指定记录
delete from tname wherer 条件 比如学号为1
删除全部记录
delete from tname wherer 条件 比如年龄大于30

3. 数据类型

3.1 整数类型

bigint(8), int(4) ,Integert(4), mediumintt(3) ,smallintt(2) ,tinyint(1)
查看数据类型信息
help int

3.2 浮点数类型和定点数类型

float(4),double(8),decimal(M,D) M为精度,字节数是M+2

3.3 日期和时间类型

year(1) :1901-2155,
date(4):1000-01-9999-12-31,
time(3):-838:59:59-838:59:59,
datetime(8):1000-01 00:00:00 - 9999-12-31 23:59:59,
timestamp(4):197001080001-2038011911407

3.4 字符类型

3.4.1 char和varchar

char(M): 0 < M < 255
varchar(M): 0 < M < 65535
text(tinytext:0-255,text:0-65535,mediumtext:0-16772150,longtext:0-429496295)

3.4.2 enum类型

属性名 enum(‘值1’,‘值2’,… ,‘值n’)
最多可以有 65535个值
如果属性非空:默认值为第一个元素
如果属性可以为空:默认为NULL

3.4.3 set类型

属性名 set(‘值1’,‘值2’,… ,‘值n’)
可以去一个或多个元素的组合。取多个元素时不同元素用逗号隔开。 最多64个

3.5 二进制

binary(M):0-M的定长二进制
varbinary(M):0-M变长二级制
bit(M):M位二进制,最大64
tinyblob:可变长二进制数据,最多255 == 1B
blob:可变长二进制数据,最多2的16次方-1 == 2B
mediumblob:可变长二进制数据,最多2的24次方-1 == 3B
longblob:可变长二进制数据,最多2的32次方-1 == 4B

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值