首页 > 其他分享 >11.23

11.23

时间:2022-11-23 19:23:33浏览次数:40  
标签:insert 11.23 into id values table create

今日内容

1.字符编码与配置文件

2.数据库存储引擎

3.创建表的完整语法

4.字段类型之整型

5.字段类型之浮点型

6.字段类型之字符串类型

7.数字的含义

8.字段类型之枚举与集合

9.字段类型之日期类型

1.字符编码与配置文件

1.\s查看MySQL相关信息
	当前用户、版本、编码、端口号
MySQL5.6及之前的版本编码需要人为统一,之后的版本已经全部默认统一

如果想要永久修改编码配置,需要操作配置文件
2.默认的配置文件是my-default.ini
	拷贝上述文件并重命名为my.ini
    
直接拷贝字符编码相关配置即可无需记忆
	[mysqld]
        character-set-server=utf8mb4
        collation-server=utf8mb4_general_ci
    [client]
        default-character-set=utf8mb4
    [mysql]
        default-character-set=utf8mb4
ps:
    1.utf8mb4能够存储表情,功能更强大
	 2.utf8与utf-8是有区别的,MySQL中只有utf8
 
修改了配置文件中关于[mysqld]的配置,需要重启服务端

2.数据库存储引擎

存储引擎:数据库针对数据采取的多种存取方式
查看常见存储引擎的方式:show engines;

需要了解的四个存储引擎
	MyISAM:MySQL5.5之前默认的存储引擎,存取数据的速度快,但是功能较少,安全性较低        
	InnoDB:MySQL5.5之后默认的存储引擎,支持事务、行锁、外键等操作,存取速度没有MyISAM快,但是安全性更高
	Memory:基于内存存取数据,仅用于临时表数据存取
   BlackHole:任何写入进去的数据都会立刻丢失
 
了解不同存储引擎底层文件个数
	create database db2;
 	use db2;
	create table t1(id int) engine=innodb;
 	create table t2(id int) engine=myisam;
  	create table t3(id int) engine=memory;
 	create table t4(id int) engine=blackhole;
	
	1.innodb两个文件
		.frm	表结构
		.ibd	表数据(表索引)
	2.myisam三个文件
		.frm	表结构
		.MYD	表数据
		.MYI	表索引
	3.memory一个文件
		.frm	表结构
	4.blackhole一个文件
		.frm	表结构

 	insert into t1 values(1);
 	insert into t2 values(1);
 	insert into t3 values(1);
 	insert into t4 values(1);   
ps:MySQL默认忽略大小写

3.创建表的完整语法

create table 表名(
	字段名 字段类型(数字) 约束条件,
	字段名 字段类型(数字) 约束条件,
 	字段名 字段类型(数字) 约束条件
);
1.字段名和字段类型是必须的
2.数字和约束条件是可选的
3.约束条件也可以写多个,空格隔开即可
4.最后一行结尾不能加逗号
ps:编写SQL语句报错之后不要慌,仔细查看提示,会很快解决 
    	near ')' at line 7

4.字段类型之整型

tinyint			1bytes			正负号(占1bit)
smallint		2bytes			正负号(占1bit)
int			   4bytes		   正负号(占1bit)
bigint			8bytes			正负号(占1bit)

验证整型默认是否携带正负号
	create table t5(id tinyint);
	insert into t5 values(-129),(128);
结果是-128和127,也就意味着默认自带正负号

我们也可以取消正负号
	create table t6(id tinyint unsigned);
 	insert into t6 values(-129),(128),(1000);

5.字段类型之浮点型

float(20,10)  总共存储20位数,小数点后面占10
double(20,10)  总共存储20位数,小数点后面占10
decimal(20,10)  总共存储20位数,小数点后面占10

create table t7(id float(60,20));
create table t8(id double(60,20));
create table t9(id decimal(60,20));
insert into t7 values(1.11111111111111111111);
insert into t8 values(1.11111111111111111111);
insert into t9 values(1.11111111111111111111);

三者的核心区别在于精确度不同
	float	<	double  < 	decimal

6.字段类型之字符串类型

char 定长 char(4)  最多存储四个字符,超出就报错,不够四个空格填充至四个
varchar 变长 varchar(4) 最多存储四个字符,超出就报错,不够则有几位存几位
    
create table t10(id int, name char(4));
create table t11(id int, name varchar(4));
insert into t10 values(1, 'jason1');
insert into t11 values(1, 'jason2');

ps:char_length()获取字段存储的数据长度
默认情况下MySQL针对char的存储会自动填充空格和删除空格

set global sql_mode='strict_trans_tables,pad_char_to_full_length';

char和varchar的优劣
  char
      优势:整存整取,速度快
      劣势:浪费存储空间
  varchar
    	 优势:节省存储空间 
       劣势:存取数据的速度较char慢
jacktonyjasonkevintomjerry
1bytes+jack1bytes+tony1bytes+jason1bytes+kevin1bytes+tom1bytes+jerry

char与varchar的使用需要结合具体应用场景

7.数字的含义

数字在很多地方都是用来表示限制存储数据的长度 ,但是在整型中数字却不是用来限制存储长度
 
create table t12(id int(3));  不是用来限制长度
insert into t12 values(12345);

create table t13(id int(5) zerofill);  而是用来控制展示的长度
insert into t13 values(123),(123456789);

create table t14(id int);

以后写整型无需添加数字

8.字段类型之枚举与集合

枚举 多选一
	create table t15(
    	id int,
      	name varchar(32),
       gender enum('male','female','others')
    );
 	insert into t15 values(1,'tony','猛男');
  	insert into t15 values(2,'jason','male');
 	insert into t15 values(3,'kevin','others');

集合 多选多(多选一)
	create table t16(
    	id int,
      	name varchar(16),
       hobbies set('basketabll','football','doublecolorball')
    );
 	insert into t16 values(1,'jason','study');
 	insert into t16 values(2,'tony','doublecolorball');
	insert into t16 values(3,'kevin','doublecolorball,football');

9.字段类型之日期类型

datetime		年月日时分秒
date			年月日
time			时分秒
year			年

create table t17(
	id int,
  	name varchar(32),
 	register_time datetime,
 	birthday date,
 	study_time time,
 	work_time year
);
insert into t17 values(1,'jason','2000-11-11 11:11:11','1998-01-21','11:11:11','2000');
ps:以后涉及到日期相关字段一般都是系统自动回去,无需我们操作

标签:insert,11.23,into,id,values,table,create
From: https://www.cnblogs.com/yueq43/p/16919511.html

相关文章

  • 2022.11.23
    一说到清朝的闭关锁国,大家都很痛心疾首、愤愤不平,觉得要是没有闭关锁国的话,可能中国依然是强国,也能避免后来的那些耻辱了。但有意思的是,现在还是有很多人闭关锁国,他们对......
  • 11.23.1
    #include<stdio.h>#include<string.h>intmain(){intl1,l2,i,j; chara[50]; gets(a); l1=strlen(a); for(i=0;i<l1;i++) {printf("%c",a[i]); } for(i=l1-1;i>=......
  • 11.23.2022 篮球总结
    转髋-----胳肢窝   左脚瞄准镜    侧合球上篮外脚后撤步左手变向传球拆--------夹小臂 90 顿膝盖--------------挖步转髋提前蹲+全力身侧运球-------------------......
  • 11.22 访问日志不记录静态文件 11.23 访问日志切割 11.24 静态元素过期时间
    11.22访问日志不记录静态文件网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录,否则会使日志文件过于庞大,占用较多的磁盘空间。编辑虚拟主机配置文件[root......