1.SQL命令
(1)修改数据
update 表名 set 列明='...', ... where id=' ...' ;
(2)删除数据
delete from 表名 where id='...' ;
2.计算机如何存储字符
(1)如何存储英文字符
ASCII 对所有的英文字母及其符号进行了编码,总共有128个
mysql默认使用Latin-1 对欧洲字符进行了编码,总共有256个,兼容ASCII
(2)如何存储中文字符
GB2312 对6千多汉字进行了编码,兼容ASCII
GBK 对2万多汉字进行了编码,兼容 GB2312
BIG 台湾繁体字编码
Unicode 对世界上主流国家常用的语言进行了编码,分为三种存储方式 utf-8 , utf-16, utf-32
(3)mysql中文乱码原因
默认使用Latin-1 编码
(4)解决mysql中文乱码
脚本文件另存为的编码为 utf8
客户端连接服务器端使用的编码为 utf8
服务器端创建数据,使用的存储编码为 utf8
3.列类型
创建数据表的时候,指定可以存储的数据类型
create table t1(
Id 列类型
);
(1)数值型 —— 可以省略引号
tinyint 微整型,占1个字节,范围 -128 ~ 127
smallint 小整型,占2个字节 ,范围 -32768 ~ 32767
int 整型,占4个字节,范围 -2147483648 ~ 2147483647
bigint 大整型,8个字节
float 单精度浮点型,占4个字节,范围比int大的多,以牺牲小数点后若干位为代价,数字越大精度越低,最大值3.4e38
double 双精度浮点型,占8个字节,范围比bigint大的多,数字越大精度越低
decimal(M,D) 定点小数,小数点的位置不会发生变化,M代表总的有效位数,D代表小数点后的有效位数
boolean/bool 布尔型,只有两个值,分别是 ture和false,代表真和假,通常用于存储只有两个值的数据,例如:性别、是否在线 等
ture和false 是关键字,不能加引号 在使用的时候,布尔型会自动转换为tinyint,ture转为1,false转为0;也可以直接插入1或者0 |
(2)日期时间型 —— 引号不能省略
date 日期型
time 时间型
datetime 日期时间型
(3)字符串型 —— 引号不能省略
varchar(M) 变长字符串,几乎不会产生空间浪费,数据操作速度慢,M的最大值为65535,用于存储变化长度的数据。例如:标题、姓名、详情...
char(M) 定长字符串,可能会产生空间浪费,数据操作速度快,M的最大值为255,用于存储固定长度的数据,例如 手机号码、身份证号码
text(M) 大型变长字符串,M的最大值是2G
varchar(5) | char(5) | |
a | a\0 | a\0\0\0\0 |
ab | ab\0 | ab\0\0\0 |
一二三 | 一二三\0 | 一二三\0\0 |
4.列约束
mysql 可以对要插入的数据进行验证,只有满足条件才允许插入。例如:性别只能是男女,一个人的成绩范围 0~100...
create table t1(
Id int 列约束
);
(1)主键约束 —— primary key
声明了主键约束的列上不允许插入重复的值,一个表只能有一个主键约束,通常加在编号列,会加快数据的查找速度,按照编号从小到大排列
主键约束的列禁止插入null
null 表示空,是一个暂时无法确定的值。例如:无法确定商品的价格、无法确定员工的手机号码,都可以用null表示 null 是关键字,不能加引号 |
(2)非空约束 —— not null
声明了非空约束的列禁止插入null