数据库基础(二)

关于记录的SQL语句

什么是记录?表中的一行行数据就是记录

select * from 表名;   #查看所有记录

insert into 表名 values(数据1,数据2,数据3); #单条增加,全字段增加

insert into 表名 values(数据1,数据2,数据3),(数据1,数据2,数据3),(数据1,数据2,数据3);

#批量增加,全字段增加

update 表名 set 表头=修改后的数据 where 表头=修改前的数据;

update 表名 set 表头=修改后的数据 where 表头=修改前的数据 and 表头=修改前的数据;

update 表名 set 表头=修改后的数据 where 表头=修改前的数据 or 表头=修改前的数据;

 delete from 表名 where 表头=数据;

配置文件的介绍

mysql的配置文件是:my-default.ini

(修改配置文件后要重启服务端才生效)

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8   #字符编码
[mysql]
default-character-set=utf8

存储引擎的使用

什么是存储引擎?存储引擎就是存储数据的方式。

MySQL支持  九  种存储引擎方式

查看存储引擎:show engines;

MyISAM:它是MySQL5.5版本及之前的版本默认的存储引擎、它的读取速度很快相比较与InnoDB,但是相对于InnoDB存储引擎它的数据安全性较低。不支持事务、支持的是表锁。

InnoDB:它是MySQL5.6及之后的版本默认的存储引擎、它的读取速度相对慢一些,但是数据的安全性较高一些。支持事务、行锁、外键

MEMORY:它是基于内存存储的,意味着断电数据丢失、重启服务端数据就丢失。

 例:create table 表名  (id int, name varchar(64)) engine=MyISAM;

对于不同的存储引擎,硬盘中保存的文件个数也是不一样的
MyISAM:3个文件
        .frm 存储表结构
        .MYD 存储的是表数据
        .MYI 存索引(当成是字典的目录,加快查询速度)
InnoDB:2个文件
        .frm 存储表结构
        .ibd 存储数据和索引
MEMORY:1个文件
        .frm 存储表结构

数据类型

整型

MySQL中,整型有五种:

迷你整型:tinyint,使用1个字节存储整数,最多存储256个整数(-128~127)。
短整型:smallint,使用2个字节存储整数。
中整型:mediumint,使用3个字节存储整数。
标准整型:int,使用4个字节存储整数。
大整型:bigint,使用8个字节存储。

强调:

(1)如果你不知道用哪一种,或者懒得计算,那就用标准整型 int吧,这个用的最多。

(2)整型在 MySQL 中默认是有符号的,即有正负;无符号需要使用 unsigned 修饰整型,代表正整数。create table t6 (id tinyint unsigned);

浮点型

float 浮点类型用于表示单精度浮点数值,double浮点类型用于表示双精度浮点数值

double 和 float 彼此的区别:

  1. 在内存中占有的字节数不同, 单精度内存占4个字节, 双精度内存占8个字节
  2. 有效数字位数不同(尾数) 单精度小数点后有效位数7位, 双精度小数点后有效位数16位
  3. 数值取值范围不同 根据IEEE标准来计算!
  4. 在程序中处理速度不同,一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快

decimal依赖于M和D的值,所以decimal使用更少的空间decimal依赖于M和D的值,所以decimal使用更少的空间

float(M,D) unsigned 中的M代表可以使用的数字位数,D则代表小数点后的小数位数, unsigned 代表不允许使用负数!

double(M,D) unsigned 中的M代表可以使用的数字位数,D则代表小数点后的小数位数

通常大家都选decimal。

字符串

char(4): 定长类型,超出4位,就报错,不够4位,使用空格填充
varchar(4): 可变长类型,超出4位,报错,不够4位的,有几位存几位

如果你想超出范围之后,直接报错,需要设置严格模式!

 查看模式:show variables like '%mode%'             # sql_mode

两种修改方式

1. 命令行模式:临时修改
    set global sql_mode='STRICT_TRANS_TABLES'; 
2. 配置文件修改:永久修改

默认情况下,没有对char类型填充空格,如果想看填充了空格,需要设置严格模式

1. 命令行模式:临时修改
    set global sql_mode='STRICT_TRANS_TABLES,PAD_CHAR_TO_FULL_LENGTH'; # 不区分大小写
2. 配置文件修改:永久修改

查看数据长度:select char_length(字段名) from 表名;
     

日期

date年月日

datetime年月日时分秒

time时分秒

year年

create table 表名 (id int,reg_time date, reg1_time datetime, reg2_time time, reg3_time year) ;

insert into t14 values(1, '2023-10-1', '2023-11-11 11:11:11', '11:11:11', 2023);

枚举

  多选一
  enum
  create table 表名 (id int, hobby enum('read', 'music', 'tangtou', 'xijio'));
  nsert into 表名 values(1, 'read');
    
    
  多选多:包含多选一
  set
  create table 表名 (id int, hobby set('read', 'music', 'tangtou', 'xijio'));
  insert into 表名 values(2, 'read,music1');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值