MySQL增删改查及数据类型 1.配置文件的使用 2.表的分类 数据库引擎 3.创建表的完整写法 4.mysql中的数据类型

配置文件需要放在 安装目录的根目录,bin同一级

文件名称:my.ini

内容和使用 cfg格式 即 section+option

[mysqld] 分区服务器端配置 修改后需要重启服务器

[mysql] 客户端配置 修改后需要重连

统一编码方式 配置文件如下:

# 客户端   除了mysql之外的     客户端的配置修改后  只需要退出重新连接即可
[client]
user = root
password = 111
default-character-set = utf8

# 服务器端配置 需要重启服务器
[mysqld]
character-set-server = utf8

 

2.表的分类 数据库引擎

引擎是什么?

引擎就是一个系统最核心的部分,比如汽车的发动机,人的心脏

数据库引擎指的是真正的负责存储数据的模块:

不同的引擎具备不同的特点: 需要根据实际需求来选择最合适的

补充: SQL 全程是结构化查询语句,在关系型数据库中是通用的

查看支持的引擎:

show engines;

#创建表指定引擎

create table 名称(字段 类型 ) engine = XXXX;

默认的也是最常用的引擎是innodb

 

简单的增删改查 CRUD *****

插入数据   
insert into   表名  values(v1,v2,....)  # 该方式必须保证 插入的数据个数与 表格字段一 一对应  
insert into   表名(字段名称1,字段名称2)  values(v1,v2)  # 该方式必须保证 插入的数据个数与 必须与指定的字段一 一对应
insert into   表名(字段名称1,字段名称2)  values(v1,v2),(v1,v2) # 同时插入多条记录

查询  
select * from 表名; # *表示全部字段     查询所有记录
select 字段 from 表名 where 条件;

更新:
update 表名  set 字段名称=新的值,字段名称2=值2;   #修改所有记录
update 表名  set 字段名称=新的值,字段名称2=值2  where 条件 ;   #修改满足条件的记录

删除数据
delete  from 表名 ;   #删除所有记录
delete  from 表名 where 条件;   #删除满足条件的记录



补充: 修改数据库的语法  
   alter database  数据库名称 cahrset utf8;
   select database()  查看当前库

 

3.创建表的完整写法

create table 表名称(字段名称 字段类型[(长度整数) 约束]) charset utf8;

4.mysql中的数据类型

1.整数

tinyint 1个字节 无符号的8bit 最大255 有符号7个bit 127 -128

smallint 2个

mediumint 3个

int 4个 最常用 如果你的数据超过10位 用bigint

bigint 8个

注意:1.默认情况整数是有符号的

设置为无符号 unsigned

alter table t2 modify age tinyint unsigned;

create table t2(age tinyint unsigned);

  1. mysql5.6 默认是非严格模式, 如果你的数据超出范围 会自动取最大值 一般不要这么搞 会丢失数据

    查看当前的sql模式:

    select @@sql_mode; @表示全局变量 @@表示会话级变量(局部)

    临时设置sql_mode

    set @@sql_mode = "xxxxx"

    建议直接修改配置文件:

    [mysqld]

    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

     

指定长度

int(10) 如果你的数据不足10位 用0填充 (需要添加zerofill 这个约束)

对于整数和小数而言 都是用控制 显示填充的最小长度

2.浮点

两种不精确的小数

float 可以精确到 大约5位

double 比float更精确

如果对精确度要求比较高 需要使用decimal 类型

decimal 需要指定 位数如下: 位数不包括小数点

decimal(65,30) 总长最大65 小数30

 

3.字符串

char 定长字符串

varchar 长度可变的字符串

char(10) 存储abc 占10个字符长度

优点:读取存储速度快于 varchar

缺点: 浪费与磁盘空间

varchar(10) abc 3个字符长度外加一个bit 存储字符长度

优点:节省空间

缺点:速度慢于char类型

如果字符长度不大 建议使用char类型 反之则选择varchar

char 最大范围255

varchar最大 65535

如果不够那就采用text 最大可以存储2的32次方

 

text

具备编码的大字符串

blob

没有编码的二进制 可以用来存储 多媒体数据 视频 音频等..... 一般不会存这种数据

都是建一个文件服务器 数据库只保存文件的地址信息

字符串类型中 需要掌握的 char varchar text blob也不常用

注意: mysql会自动将字符串后面的空格删掉 所以你的数据在存储前应该先把空格处理掉

枚举和集合

枚举是提前规定一个范围 你的值只能是其中之一 多选一

集合是提前规定一个范围 你的值可以是其中的多个 多选多

集合在插入数据时 ,多个值之前用逗号隔开 但他们必须包含在同一个字符串内!

4.日期和时间

year

date

time

year date time 都可以用字符串或数字两种方式输入值

datetime

datestamp

datetime和datestamp 只能使用字符串输入

上述所有类型的年份都可以是两位数
0-69 翻译为 2000-2069 70-99 翻译为1790-1999

时间相关的函数和常量

CURRENT_TIME 获取当前时间

now()获取当前时间