- SQL命令
- 修改
update 数据表名称 set 列名称=值,列名称-值 where条件;
- 删除
delete from 数据表名称 where 条件;
- 计算机如何存储字符
- 如何存储英文字符
ASCII:对128个英文字母及其符号进行了编码
Latin-1:总共有256个,对欧洲字符进行了编码,兼容ASCII(MySQL默认使用这种编码)
- 如何存储中文字符
GB2312:对常用的6千多汉字进行了编码,兼容ASCII
GBK:对2万多的汉字进行了编码,兼容GB2312
Unicose码:对世界上主流国家常用的语言进行了编码,分为三种存储方案,分别是utf-8,utf-16.utf-32
- 解决MySQL中文乱码
设置脚本文件另存为的编码为UTF-8(utf8)
客户端连接服务器端的编码为UTF-8(utf8)
服务器端创建数据库,存储字符的编码为UTF-8(utf8)
特殊情况:如果以上在交互模式还有乱码,需要先退出交互模式。然后执行修改命令行的编码为tuf8 chcp 65001 ---修改命令行属性为UTF-8 (前提退出数据库quit) |
(已做)
- 常见的列类型
列类型:在创建数据表的时候,指定的列所能存储的数据类型
Create table news(
列名称 列类型,
列名称 列类型
);
- 数值型 ------可以不加引号
tinyint 微整型,占1个字节,范围 -128~127
smallint 小整型,占2个字节,范围-32768~32767(推算过程在下图)
Int 整型,占4个字节,范围-2147483648~2147483647
bigint 大整型,占8个字节,范围
float 单精度浮点型,占4个字节,存的值越大精度越低
double 双精度浮点型,占8个字节,存的值越大精度越低
decimal(M,D) 定点小数,存储的值小数点不会发生变化,M表示总的有效位数,D表示小数点后的有效位数
M --总的有效位数
D---小数后的有效位数
boolean 布尔型,只有两个值,分别是true 和 false ,代表真和假;常用于存储两个值得数据,例如:性别、是否在线、是否为会员...
true 和 false是关键字,使用的时候不能加引号 boolean 会自动转为 tinyint,true转为1,false转为0; 也可以直接插入1和0 |
- 日期时间型 ---- 必须加引号
date 日期型 “2021-10-20”
time 时间型 “15:52:30”
datetime 日期时间型 “2021-10-20 15:52:30 ”
- 字符串型 ---- 必须加引号
varchar(M) 变长字符串,不会产生空间浪费,数据的操作速度相对慢,常用于存储变化长度的数据,例如:文章标题、详情、姓名... M最大值是65535
char(M) 定长字符串,可能会产生空间浪费,数据操作速度相对快,常用于存储固定长度的数据,例如:手机号码、身份证号码... M最大值是255
text(M) 大型变长字符串,M的最大值2G
(\0 代表空格)
varchar(5) (数据操作慢) 但不会占用空间,不会浪费空间 | char(5) (数据操作快) 但占用空间,浪费空间 | |
a | a\0 | a\0\0\0\0 |
ab | ab\0 | ab\0\0\0 |
一二三 | 一二三\0 | 一二三\0\0 |
浮点型
12345.6789
左浮动
1234.56789E1 ---> 1234.56789 x 10¹
123.456789E2
右浮动
123456.789E-1
TB GB MB KB Byte(字节)(1=1024)|| Bit(位)
(1字节=8位)
10进制
1 2 3 4 5 6..... 8 9 10 满10进一位
二进制
1 (2)10 11 100 101 110 满2进一位
(推算过程)↓
选择合适的列类型
create table t1(
Id int,
name varchar(16),
sex boolean,
phone char(11),
birthday date,
Detail varchar(5000)
age tinyint
);
数值型引号,可以省略
字符串、日期时间必须加引号
- 列约束
MySQL 可以对插入的数据进行验证,只有通过验证才允许插入,例如:编号不能重复、性别只能是男或者女、一个人的成绩范围0~100
create table t1 (
Id int 列约束
);