首页 > 数据库 >数据库02

数据库02

时间:2022-08-15 23:11:42浏览次数:47  
标签:02 insert 数据库 数据类型 values table create 字段名

目录

字符编码与配置文件

1.字符编码的修改-防止乱码(5.6版本编码不一致)
  修改配置文件-复制配置文件修改配置文件内容-统一将字符编码修改为utf8(复制的配置文件的命名与原文件开头必须一致)
2.配置文件my-default.ini-复制命名my.ini(苹果电脑或Linux系统后缀可能不一致)

存储引擎

1.存储引擎:针对数据的不同存取方法
2.查看所有引擎命令:show engines;
3.类型
  3.1 MyISAM:MySQL5.5及以前版本默认的存储引擎
             存取速度很快 但是安全性较低 功能较少
  3.2 InnoDB:MySQL5.6以后版本的默认存储引擎
             存取速度没有MyISAM快 但数据安全性较高 并且支持事务、行锁、外健等诸多功能
  3.3 Memory:基于内存的存储引擎
             存取速度很快 但是断电及丢失
  3.4 BlackHole(黑洞):任何数据写进去都会丢失 类似于垃圾桶
注:MySQL中对字母大小写不敏感
    windows cmd终端的右键-粘贴
 4.引擎设置:创建表时指定
   create table 表名(列名称 数据类型) engine=引擎类型
 5.产生的表
   MyISAM:
         .frm 表结构
         .MYD 表数据
         .MYI 表索引(方便数据查询)
   InnoDB:
          .frm 表结构
          .ibd 表数据、表索引(方便数据查询)
   Memory:
		  .frm 表结构
   BlackHole:
		   .frm 表结构

约束条件

1.约束条件:对表中字段进行约束 一般写在字段某个字段后面 如果有多个约束条件用逗号隔开

create table 表名(字段名 数据 约束条件1,约束条件2,约束条件3)

2.类型

2.1 unsigned-无符号(字符长度中带正负号)
    create table 表名(字段名 数据类型 unsigned)
2.2 zerofill-零填充(需要一定数据长度可用0补足)
    create table 表名(字段名 数据类型(长度) zerofill)
2.3 not null-非空(规定一些字段不能为空时)
    create table 表名(字段名 数据类型(长度) not null)
2.4 default-默认值(提前定义好一些数据类型 如性别等)
    create table 表名(字段名 数据类型(长度) default)
2.5 unique-唯一值(设置该字段不能重复 如编号等)
    create table 表名(字段名 数据类型(长度) unique)-单列唯一
    create table 表名(字段名1 数据类型,字段名2 数据类型 unique(字段名1,字段名2))-联合唯一

创建表的完整语法

1.完整语法

  cerate table 表名(字段名称 数据类型) 约束条件 engine=存储引擎;
 注:一个表必须要有一个字段名称及数据类型 
    约束条件与存储引擎不是必要条件(需要添加)
    约束条件可以是多个 用逗号隔开
    添加多个字段时 最后不加逗号

字段类型

一、字段类型之整型

1.类型(根据字符长度不同分类)
  tinyint     1bytes     
  smallint    2bytes
  int         3bytes
  bigint      4bytes
2.存在符号整数范围(其余类型使用方法一致)
  2.1 存在符号时范围(-128~127)
   新建表格:create table info1(num tinyint);
   添加负数数据:insert into info1 values(-256);
   添加整数数据:insert into info1 values(256);
   结果:-128   127
  2.2 取消符号范围(0~255)
    新建表格:create table info2(num tinyint unsigned);
    添加负数数据:insert into info2 values(-256);
    添加正数数据:insert into info2 values(256);
    结果:0      255
  注:符号占据比特位
 3.存在的问题:插入的数据超出范围时自动修改-使输入的数据不存在任何意义(应该直接报错不然添加)
    3.1 原因:修改配置文件时为将限制命令加入
    3.2 解决办法:
    	命令临时修改:set session sql_mode='STRICT_TRANS_TABLES' 当前客户端界面有效
        			set global sql_mode='STRICT_TRANS_TABLES'  服务端不重启永久有效
         配置文件永久修改:[mysqld]
        						sql_mode='STRICT_TRANS_TABLES' 修改后需要重启服务端

二、字段类型之浮点型

1.类型(根据精确度不同分类)
  float
  double
  decimal
2.使用方式
  float(255,30)      # 255-总占位数 30-小数占位数
  double(255,30)
  decimal(65,30)
3.精确度
  新建表格:create table info3(mun float(255,30));    # 数据类型括号里需写位数
           create table info4(num double(255,30));
           create table info5(num decimal(65,30));
  添加数据:insert into info3 values(1.111111111111111111111111);
		   insert into info4 values(1.111111111111111111111111);
            insert into info5 values(1.111111111111111111111111);
   结果:  info3:1.111111164093017600000000 
		  info4:1.111111111111111200000000
           info5:1.111111111111111111111110
注:float < double < decimal  一般情况下float就可以了 如果需要精准度可以用字符串

三、字段类型之字符型

1.类型
  char(长度)           定长
  varchar(长度)        变长
2.使用方法
  char(4):最大只能存储四个字符 如果超出范围则直接报错 不超出用空格补足(占空间)
  varchar(4):最大只能存储四个字符 如果超出范围之间报错 不超过有几位保存几位
3.长度 
  新建表格:create table info6(name char(4));
  		  create table info7(name varchar(4));
   添加数据:insert into info6 values('jason')    # 报错
            insert into info7 values('jason')    # 报错
    	    insert into info6 values('tom')      # tom
            insert into info7 values('lili')     # lili
   查看字符串长度命令:selent char_length(字符串)
注:默认情况下char在存储的时候针对没有满足固定位数的字符会自动填充空格 
   在读取时自动会将空格移除 如果要查看(此方法为替换 不是新增 因此需要写上原有配置)
    set global sql_mode='strict_trans_tables,pad_char_to_full_length';
4.优劣
  char 优点:整存整取 速度快
       缺点:浪费内存
  varchar 优点:节省内存
          缺点:存取速度慢与char(需要操作报头耗时) -会发生黏包
 注:两者使用频率都很高 现在默认很多时候是varchar
 

四、字段类型之枚举与集合

1.区别
  枚举enum    多选一(如性别)
  集合set     多选多(如爱好)
2.使用
  新建表格:create table info8(neme varchar(32),gender enum('male','female'))
           create table info9(name varchar(32),hobbies set('read','music'))
        

五、字段类型之日期

1.类型
  datetime        年月日时分秒
  date            年月日
  time            时分秒
  year            年
2.使用
  新建表格:create table info10(id int,
                           name varchar(32),
                           reg_time datetime,
                           bith date,
                           study_time time,
                           join_time year);
   添加数据:insert into info10 values(1,'lili','2022-11-11 11:11:11','2022-11-11','11:11:11', '2022');

数字的含义

数字大部分情况下都是用来限制字段的存储长度 
整型:不是用来限制长度而是展示长度(一般不加括号写数字除非是业务需要)
create table t1(id int(3));
create table t2(id int(3) zerofill);

标签:02,insert,数据库,数据类型,values,table,create,字段名
From: https://www.cnblogs.com/040714zq/p/16589417.html

相关文章

  • centos/windows服务器,Mysql数据库表结构损坏-已解决
    【问题原因】服务器突然断电【故障报告】数据库表结构损坏【解决思路】进入强制恢复模式,备份库表及数据重建故障发现周末公司断电,周一启动数据库就直接报错了查看日......
  • 查询数据库中每张表的数据以及索引占用空间
    BEGIN --查询目前数据库中的用户表 DECLARE@currentTableTABLE(tableNameNVARCHAR(50)); INSERTINTO@currentTable(tableName) SELECTname FROMsy......
  • mysql数据库-2
    目录字符编码与配置文件存储引擎创建表的完整语法字段类型之整型字段类型之浮点型字段类型之字符类型数字的含义字段类型之枚举与集合字段类型之日期类型字段约束条件字符......
  • 【2022.8.15】MySQL数据库(2)
    今日内容概要字符编码与配置文件数据库存储引擎创建表的完整语法MySQL字段类型MySQL字段约束今日内容详细字符编码与配置文件如何查看数据库基本信息(用户......
  • 数据库
    MysqlMySQL是一个【关系型数据库管理系统】,瑞典的公司研发,被【Oracle】收购。MySQL使用了一种语言【SQL语言】。MySQL分为社区版和商业版,体积小、速度快、成本低,开源。......
  • ROBCOM 2022 代码实录
    太久没有写博客了水一篇,仅记录一下暑期裸考参加的两场2022RoboCom,半年来都在忙着读联考和考研,题解没有时间写了QAQ,期待回归。省赛RC-u1#include<bits/stdc++.h>......
  • mongo数据库-mongo角色权限
    Built-InRoles(内置角色):1.数据库用户角色:read、readWrite;2.数据库管理角色:dbAdmin、dbOwner、userAdmin;3.集群管理角色:clusterAdmin、clusterManager、clu......
  • "蔚来杯"2022牛客暑期多校训练营9 G Magic Spells
    原题链接一开始manacher+单哈希wa,样例通过率97%,应该是卡了一手int_64自然溢出换成manacher+双哈希过了#include<bits/stdc++.h>usingnamespacestd;#definefr......
  • 2022-08-15 第八组 卢睿 学习心得
    目录Mysql数据库数据库Mysql基本操作表SQL语言SQL分类DCL(数据库控制语言)创建用户给用户授权撤销授权查看权限删除用户DDL(数据定义语言)创建表数据类型整型浮点型字符串类型......
  • 2022-08-15 第五组 赖哲栋 学习笔记
    Mysql数据库数据库【暗战数据结构来组织、存储和管理数据的仓库】。是一个长期存储在计算机内的,有组织的、可共享的、统一管理的大量数据的集合程序员的工作就是对数据......