MySQL第二章 列类型(解决中文乱码和计算机存储字符)

CSDN话题挑战赛第2期
参赛话题:学习笔记

目录

一.计算机如何存储字符

二.列类型

每日一句


一.计算机如何存储字符

  1. 如何存储英文字符
    1. ASCII:对所有的英文字母及其符号进行了编码,总共有128个
    2. Latin-1:对欧洲字符进行了编码,总共有256,兼容ASCII
  2. 如何存储中文字符
    1. GB2312:对6000多常用的汉字进行了编码,兼容ASCII
    2.  GBK:对2万多汉字进行了编码,兼容GB2312
    3. BIG5:台湾繁体字编码
    4. Unicode:对世界上主流国家常用语言进行了编码,总共有3种存储方案,分别是utf-8,utf-16,utf-32
  3. 中文乱码产生的原因
    1. mysql默认使用Latin-1编码,没有对中文字符进行编码
  4. 解决中文乱码
    1. 确保脚本文件的编码为utf8
    2. 设置客户端连接服务器端的编码为utf8 
       (set  names  utf8)
    3. 服务器端创建数据库,设置存储字符的编码为utf8 (charset=utf8)
    4. 针对于个别电脑显示存在乱码,需要退出交互模式,将命令行编码改为utf8;
      chcp  65001
--设置编码
SET NAMES utf8;
--先丢弃在创建
DROP DATABASE IF EXISTS zyh;
--创建数据库
CREATE DATABASE zyh CHARSET=utf8;
--进入数据库
USE zyh;

二.列类型

  1. 在创建数据表的时候,指定的列所能存储的数据类型
    create  table  t1(
       id  列类型
    );
  2.  数值型 —— 可以不加引号
    1. tinyint  微整型,占1个字节,范围-128~127
    2. smallint  小整型,占2个字节,范围-32768~32767
    3. int   整型,占4个字节,范围-2147483648~2147483647
    4. bigint  大整型,占8个字节,范围很大
    5. double   双精度浮点型,占8个字节,存储的值越大精度越低
    6. decimal(M, D)   定点小数,小数点不会发生变化,M代表总的有效位数,D代表小数点后的有效位数,占16个字节
    7. float   单精度浮点型,占4个字节,存储的值越大精度越低
    8. boolean   布尔型,只有两个值,true和false,代表真和假;用于存储只有两个值的数据,例如:是否在线,性别,是否为会员,是否已婚…
      1. true和false属于关键字,使用值的时候不能加引号
      2. 使用的时候会转为tinyint,true转为1,false转为0;也可以直接使用1或者0
  3. 日期时间型 —— 必须加引号
    1. date   日期型   '2021-12-25'
    2. time   时间型   '15:45:30'
    3. datetime   日期时间型    '2021-12-25  15:45:30'
  4. 字符串型  —— 必须加引号
    1. varchar(M)   变长字符串,不会产生空间浪费,数据操作速度相对慢,通常用于存储变化长度的数据,例如:标题、姓名、文章详情… M的最大值是65535
    2. char(M)   定长字符串,可能产    生空间浪费,数据的操作速度相对快,通常用于存储固定长度的数据,例如:手机号码、身份证号..  M的最大值是255
    3. text(M)   大型变长字符串,M的最大值4G
--设置编码
SET NAMES utf8;
--先丢弃在创建
DROP DATABASE IF EXISTS zyh;
--创建数据库
CREATE DATABASE zyh CHARSET=utf8;
--进入数据库
USE zyh;
--创建表family
CREATE TABLE yh_user(
	uid ,
	fname VARCHAR(32) UNIQUE
);
--插入数据 fid fname 10  联想       20   戴尔       30   小米 
INSERT INTO family VALUES(10,'联想');
INSERT INTO family VALUES(20,'戴尔');
INSERT INTO family VALUES(30,'小米');
--创建表laptop
CREATE TABLE laptop(
	lid INT PRIMARY KEY AUTO_INCREMENT,
	title VARCHAR(64) UNIQUE,
	price DECIMAL(7,2) NOT NULL DEFAULT 5000,
	shelf DATE DEFAULT '1999-09-09',
	detail VARCHAR(128),
	isindex BOOLEAN DEFAULT TRUE,
	familyid INT,	
	#将familyid设置外键约束,所插入的值,必须在family表中的主键列fid中出现过,并且两者类型需要保持一致
	FOREIGN KEY(familyid) REFERENCES family(fid)
);
--插入数据包含的列有编号lid,标题title,价格price上架时间shelf,详情detail,是否为首页推荐isindex,所属分类编号familyid
--插入数据
INSERT INTO laptop VALUES(1,'这里是联想','39999.99','2022-07-04','联想的详情',TRUE,10);
INSERT INTO laptop VALUES(2,'这里是戴尔','4000.99','2022-07-04','戴尔的详情',FALSE,20);
INSERT INTO laptop VALUES(3,NULL,7888.99,'2022-07-04','小米的详情',FALSE,30);
INSERT INTO laptop VALUES(4,NULL,7888.99,'2022-07-04','小米的详情',FALSE,20);
INSERT INTO laptop VALUES(5,'小新',DEFAULT,DEFAULT,'小米的详情',DEFAULT,30);
INSERT INTO laptop VALUES(NULL,'小新2',DEFAULT,DEFAULT,'小米的详情',DEFAULT,30);

每日一句

        天下皆知取之为取,而莫知与之为取。

人们都认为只有获取别人的东西才是收获,却不知道给予别人也是一种收获。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张的俊.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值