mysql 表中添加数据类型_表的增删改查+mysql的数据类型
发布日期:2021-06-24 12:16:47 浏览次数:2 分类:技术文章

本文共 3622 字,大约阅读时间需要 12 分钟。

1,配置文件的使用

配置文件的创建需要安装在根目录,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 全程是结构化查询语句,在关系型数据库中是通用的

mysql支持的引擎-------------------show engines

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

创建表的指定引擎:create table 名称(字段 类型) engine=xxx

简单的增删改查CRUD

其中有一点值得提示的就是若在表中无法看到字符串内容,突然发现字符的编码格式不是utf-8模式,则需要删表,无论怎么改之后都无法查看内容 ,因为当时写入格式是什么就是什么,改了编码是之后效果展示的是与前者输入语句无关*********

create read update delete

插入数据

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 条件; #删除满足条件的记录

#### 练习

创建 student表 包含 姓名 性别 年龄 三个字段

把你周围的4个同学的数据插入表中

把你左边的同学的 性别改为 woman

删除右边的同学

查看所有 年龄 大于 20的 人员

补充: 修改数据库的语法

alter database 数据库名称 cahrset utf8;

select database() 查看当前库

3创建表的完整写法

create table 表名称(字段名称 字段类型 【(长度整数)约束】) charset utf8

4.mysql中的数据类型

1.整数

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

​smallint2个

​mediumint 3个

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

​bigint 8个

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

​设置为无符号 unsigned

​alter table t2 modify age tinyint unsigned;

​create table t2(age tinyint unsigned);

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)abc3个字符长度外加一个bit 存储字符长度

​优点:节省空间

​缺点:速度慢于char类型

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

​char 最大范围255

​varchar最大 65535

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

text

​具备编码的大字符串

blob

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

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

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

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

枚举和集合

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

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

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

4.日期和时间

date类型

'YYYY-MM-DD'或者'YYYYMMDD'

create table t13(d date);

insert into t13 values('20190101');

insert into t13 values(20190101);

insert into t13 values('2019-01-01');

insert into t13 values(190101);

select now();

当前日期加时间

select CURRENT_TIME;

SELECT CURRENT_DATE;

insert into t13 values(now());

time 类型

'D HH:MM:SS'

D:天 D*24 +H

create table t14(t,time);

insert into t14 values('12:30:30');

#12:30:30

insert into t14 values('1 12:30:30');

#36:30:30

datetime 类型

#只能是字符串输入

YYYY-MM-DD HH:mm:SS

create table t15(t,datetime);

insert into t15 values('2019-07-11 12:30:30');

insert into t15 values ('19-07-11 12:30:30');

insert into t15 values(now());

timestamp 时间戳

#只能是字符串输入

create table t16(t timestamp);

insert into t16 values('19-07-11 12:30:30');

alter table t16 add a int;

insert into t16(a) values(100);

update t16 set a=200 where a=100;

#插入当前时间,像博客更新使用就用到

枚举

create table t17 (t enum('jack','rose'));

insert into t17 values('jack');

insert into t17 values(1);#可以检索

枚举就是规定了范围

#多选一

create table t18 (t set('jack','rose');

insert into t18 values('jack')

insert into t18 values('jack,rose')

#多选多 只能选里面内容且只能是字符串

转载地址:https://blog.csdn.net/weixin_32667439/article/details/113202992 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:mysql断开数据库连接_快速断开当前数据库的所有连接的方法
下一篇:mysql keepalived 主从_MySQL 5.6通过Keepalived+互为主从实现高可用架构

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月22日 10时29分03秒