mysql数据库基础(2)

1.SQL命令

  1. 修改数据
update 数据表 set upwd='123',phone='13888888888' where uid='1';
  1. 删除数据
delete from 数据表 where uid='2';

2.列类型

create table 数据表(
	id 列类型
);

(1)数值型 — 不需要加引号 tinyint 微整型,占1个字节,范围-128~127

  • small 小整型,占2个字节,范围-32768~32767|

  • int整型,占4个字节,范围-2147483648~2147483647 bigint 大整型,占8个字节

  • float 单精度浮点型,占4个字节,范围比int大的多,存储的数字越大精度越低,以牺牲小数点后的若干位为代价。最大3.4e+38

  • double 双精度浮点型,占8个字节,范围比bigint大的多

  • decimal 定点小数,小数点位置不会发生变化,M代表总的有效位数,D代表小数点后的有效位数 99999.99 decimal(7,2)

  • boolean 布尔型,只有两个值,分别是true和false,代表真和假,用于存储只有两个值的数据,例如是否在线、性别。。。

  • boolean特点:在使用的过程中会自动转为tinyint,true转为1,false转为0,也可以直接使用1和0

(2)日期时间型 — 必须加引号

  • date 日期型 2020-12-12
  • time 时间型 12:12:30
  • datetime 日期时间型 2020-12-12 12:12:30

(3)字符串型 — 必须加引号

  • varchar(M) 变长字符串,几乎不会产生空间浪费,数据操作速度相对慢,M最大值是65535,用于存储变化长度的数据,例如用户名、邮箱、标题、文章详情…
  • char(M) 定长字符串,可能会产生空间浪费,数据操作速度相对快,M的最大值是255,用于存储固定长度是数据,例如手机号码、身份证等。。。
  • text(M) 大型变长字符串,M最大值是2G

3.列约束

(1)Mysql可以对要插入的数据进行特定的验证,只有符合格式才允许插入,例如编号不允许重复,一个人的性别只能是男或者是女,一个人成绩范围只能是0~100之间

create table t1(
	lid int 列约束
);

(1)主键约束 — primary key

  • 声明了主键约束的列上不允许插入重复的值,一个表中只有一个主键约束,通常是在编号列,会加快数据的查找速度
  • null 表述空,在插入数据的时候,表示暂时无法确定的值。例如无法确定一个人的邮箱或者一个商品的价格。。。
  • null是关键字,不能加引号
  • 主键约束的列上不允许插入null

(2)非空约束 — not null

  • 声明了非空约束的列上不允许插入null

练习:编写脚本文件xz.sql,先丢弃再创建数据库xz,创建保存笔记本分类的表family,包含有分类编号fid,分类名称fname,插入以下数据
10 联想 20 戴尔 30 小米
创建保存笔记本数据的表laptop,包含编号lid,标题title,价格price,规格spec,详情detail,上架时间shelfTime,是否在售isOnsale,所属分类编号familyId(保存分类表的编号),插入若干条数据

#设置客户端连接服务器端的编码
set names utf8;

#丢弃数据库,如果存在
drop database if exists xz;

#创建数据库,设置存储的编码
create database xz charset=utf8;

#进入数据库
use xz;

#创建保存笔记本分类的表
create table family(
  fid int primary key,
  fname varchar(16) default '未知'
);

#插入数据
insert into family values(10,'联想');
insert into family values(20,'戴尔');
insert into family values(30,'小米');

#创建保存笔记本数据的表
create table laptop(
  lid int primary key auto_increment,
  title varchar(128) unique,
  price decimal(7,2) default 3000,  #99999.99
  spec varchar(256),
  detail varchar(5000),
  shelfTime date,
  isOnsale boolean,
  familyId int,
  #将familyId这一列作为外键列,取值会到family表的fid中去找
  foreign key(familyId) references family(fid)
);
#插入数据
insert into laptop values(1,'小米Air',4299,'流光银|溢彩金','详情1','2020-12-31',1,30);
insert into laptop values(2,'外星人',12999,'游戏版','详情2','2021-1-1',1,20);
insert into laptop values(3,'ThinkPadE470',3000,'开发版','详情3','2017-5-1',0,10);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值