1.SQL命令
- 修改数据
update 数据表 set upwd='123',phone='13888888888' where uid='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);