首页 > 数据库 >MySQL的字段语法

MySQL的字段语法

时间:2022-08-15 19:56:38浏览次数:61  
标签:varchar int create t1 语法 MySQL table id

MySQL的存储

字符编码与配置文件

1.\s  # 查看数据库基本信息(用户、字符编码)

2.my-default.ini  # windows下MySQL默认的配置文件
拷贝上述文件并重命名为my.ini

3.添加字符编码相关的配置(直接百度搜索)
[mysqld]  # 将MySQL服务端的编码改为utf8
	character-set-server=utf8
	collation-server=utf8_general_ci
[client]  # 将MySQL的其他连接的客户端改为utf8
	default-character-set=utf8
[mysql]  # 将MySQL自己的客户端改为utf8
	default-character-set=utf8
'如果配置文件涉及到mysqld相关的配置修改,那么需要重启服务端才可以生效'

4.可以在mysql下提前写好用户名和密码,之后就可以直接登录

存储引擎

'可以简单理解为对不同的数据采取不同的存储策略'

1.show engines;  # 查看所有的存储引擎
'MySQL中默认是大小写不敏感的(忽略大小写)'
# 需要掌握的存储引擎
2.MyISAM
存取数据的速度快,但功能少,安全性较低(MySQL5.5和之前的默认的存储引擎)

3.InnoDB
存取数据的速度没有MyISAM快,但可以支持事务、行锁、外键等诸多功能,安全性较高(MySQL5.5之后版本默认的存储引擎)

4.Memory
基于内存的存储引擎,存取数据速度极快,但是断电数据会丢失

5.BlackHole
黑洞,任何写进去的数据都会立刻丢失,类似于实践站

'进入库	use 库名;'
6.不同储存引擎之间底层文件的区别
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;
'windows cmd终端鼠标右键的意思就是粘贴'
6.1innodb
t1.frm	表结构
t1.ibd	表结构、表索引(加快数据查询)
# 表结构和表索引合到一起,安全性较高
6.2myisam
t2.frm	表结构
t2.MYD	表数据
t2.MYI	表索引(加快数据查询)
# 表数据与表索引分开,存取速度快
6.3memory
t3.frm	表结构
# 存到内存,不需要表结构和表索引
6.4blackhole
t4.frm	表结构
# 获取数据就丢失,不需要表结构和表索引
img

MySQL的字段语法

创建表的完整语法

create table 表名(字段名1 字段类型(数字) 约束条件,
			   字段名2 字段类型(数字) 约束条件)engine=储存引擎;
1.字段名和字段类型是必须的(至少写一个)
2.数字跟约束条件是可选的(可有可无)
3.约束条件可以写多个用空格符隔开即可
4.最后一个字段的结尾不呢加逗号

字段类型之整型

1.MySQL的整型
tinyint		1bytes
smallint	2bytes
int		   4bytes
bigint  	8bytes

2.验证整型是否自带负号
create table t1(id tinyint);
insert into t1 values(-129),(256);  # -128,127
# 数据自动变为边界值存储,数据失真,没有实际意义

3.自定义移除负号
'unsigned 约束条件之一,意思是不需要负号'
create table t1(id tinyint unsigned);
insert into t1 values(-129),(256);  # 0,255

'插入数据值超出类型范围,应该报错,而不是自动修改,让数据失真(这个功能其实是有的,只是被改了>>>配置文件)'
4.超出类型范围报错
4.1命令临时修改
set session sql_mode='strict_trans_tables' 当前客户端操作界面有效
set global sql_mode='STRICT_TRANS_TABLES' 服务端不重启永久有效
4.2配置文件永久修改
[mysqld]
	sql_mode='STRICT_TRANS_TABLES'

字段类型之浮点型

1.定长char
char(4)最大只能储存四个字符,如果超过范围则直接报错,如果不够四个字符,则用空格填充至四个字符

2.变长varchar
varchar(4)最大只能储存四个字符,如果超过范围则直接报错,如果不够四个字符,则有多少存多少

3.验证两者的区别
create table t1(id int, name char(4));
create table t2(id int, name varchar(4));
3.1验证结果,超出范围都会报错
3.2验证定长与变长的特性
char_length()  # 统计字段数据的长度
'''
char在储存时对于有空缺位置的字符会自动填充空格,然后在读取的时候再将自动填充的空格移除,如果想取消该机制,需要使用sql_mode
set global sql_mode='strict_trans_tables,pad_char_to_full_length';
上面写的方法是替换,不是新增,所以之前的配置也要写上
'''

4.char与varchar
4.1char
整存整取,速度较快,但浪费存储空间
4.2varchar
节省内存空间,存取数据的速度慢于char
'''
char(4)
a     barr yint
varchar(4)
a+barry+int
varchar存取数据需要操作报头,耗时更长
两者使用频率都很高,现在默认很多时候是varchar
'''
img

数字的含义

数字大部分情况下都是用来限制字段的存储长度,但是整型除外,整型是用来展示长度

create table t1(id int(3));
# 默认最少展示三位,如果超出,则有几位展示几位,如果不足,则用空格填充
create table t2(id int(3) zerofill);  # zerofill不足用0填充
# 默认最少展示三位,如果超出,则有几位展示几位,如果不足,则用0填充

'''
以后涉及到整型字段的定义,类型后面不需要加括号写数字,除非有业务要求
eg:
	0000123
	0012123
'''

字段类型之枚举与集合

'desc 表名;	看表结构'

1.枚举
只能从规定的选择里选一个
create table t1(id int,
			 name varchar(32),
			 gender enum('male','female','others'));

2.集合
只能从规定的选择里选多个(包括一个)
create table t2(id int,
           name varchar(32),
           hobbies set('read','run','music','rap'));

字段类型之日期类型

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

create table t1(id int,
           name varchar(32),
           birth date,
           reg_time datetime,
           study_time time,
           join_time year);
insert into t1 values(1,'barry','2022-8-15','2022-8-15 19:07:00',
                      '19:07:00','1995')

字段约束条件

'''
insert into 表名 vlaues()  # 默认按照创建表的字段顺序添加
insert into 表名(字段) vlaues()  # 可以自定义字段顺序
'''
1.unsigned(无负号)	没有负号
id int unsigned

2.zerofill(零填充)	用0填充
id int zerofill

3.not null(非空)	必须传值
name varchar(32) not null

4.default(默认值)	若没有传值则输入默认值
name varchar(32) default 'barry'

5.unique(唯一值)	让一些数据不能重复
id int unique

标签:varchar,int,create,t1,语法,MySQL,table,id
From: https://www.cnblogs.com/riuqi/p/16589444.html

相关文章

  • MySQL的存储引擎
    MySQL的存储引擎存储引擎介绍文件系统操作系统组织和存取数据的一种机制文件系统是一种软件文件系统不管使用什么文件系统,数据内容不会变化不同的是,存储空间......
  • 字符编码与配置文件、数据库存储引擎、创建表的完整语法、MySQL字段类型(整型、浮点型
    字符编码与配置文件可以用:\s来查看数据库基本信息,里面含有用户、字符编码等信息。Servercharacterset:latin1Dbcharacterset:latin1Clientcharacter......
  • mysql基础练习题
    mysql基础练习题 test11、创建emp表,设计字段为id,name,age,sex,salary(工资),resume(履历),time(入职时间)。2、往表中添加数据如下:insertintoemp(name,age,sex,s......
  • 2022 8-15 第四组 曹雨 MySQL数据库01
    MySQLMySQl是一个“关系型数据库管理系统”。MySQL使用了一种语言“SQL语言”MySQL分为社区版和商业版,体积小,速度快,成本低,开源以表的形式存取数据基本操作MySQL操......
  • MySQL字段类型与操作
    MYSQL字段类型与操作字符编码与配置文件操作代码功能查看\s查看数据库基本信息(用户、字符编码)配置(配置文件层面)my-default.iniwindows下MySQL默认的......
  • 20220815 第一组 于芮 mysql数据库第一天(第三十一天)
     小白成长记——第三十一天   今天我们告别了java基础,开始了新的旅程——mysql数据库,之前有接触过一点mysql数据库,所以有一点点的基础,对于今天新学的内容,没有那么......
  • 2022-8-15 数据库 mysql 第一天
    Mysql数据库数据库数据库【按照数据结构来组织、存储和管理数据的仓库】。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据对于公司......
  • MySQL事务
    何为事务? 一言蔽之,事务是逻辑上的一组操作,要么都执行,要么都不执行。事务演示经典的转账问题mysql>starttransaction;QueryOK,0rowsaffected(0.00sec)mysql>......
  • mysql基础
    #SQL语句的分类:1、DQL(数据查询语言):所有的SELECT语句都是数据查询语句2、DDL(数据定义语言):CREATEDROPALTER等,对数据库、表(结构)进行增删改操作3、DML(数据操作语......
  • 转 pstack 命令 分析mysql hang
    pstack主要分析mysqlhang的函数,分析不了锁的情况,比较高深 参考文档https://blog.csdn.net/n88Lpo/article/details/106484780https://www.cnblogs.com/nanxiang/......