MySQL——MySQL基本SQL语句及MySQL数据类型

MySQL——MySQL基本SQL语句

一、注意事项

1、sql语句必须以分号结尾
2、sql语句编写错误之后不必担心、可以直接执行报错即可,或者后面加上\c取消执行即可

二、库的相关操作(基础)

'''
基于库的增删改查
'''
1、创建库
creata database 库名;
2、查看库
show databases; # 查看所有的库的名称
show create database 库名; 查看指定库的信息
3、编辑库(修改数据库字符集编码为utf8)
alter database 库名 charset='utf8';
4、删除库
drop database 库名;
5、切换库
use 库名;

三、表的相关操作(基础)

表的增删改查

'''
操作表之前要先确定库
'''
1、创建表
create table 表名(字段名 字段类型,字段名,字段类型);
2、查看表
show tables; # 查看库下所有的表
show create table 表名; # 查看指定表的信息
describe 表名; # 查看表结构 简写 desc
ps: 如果想跨库操作其他表,只需要在表名前加库名即可
eg: desc mysql.user
3、编辑表
alter table 表名 rename 新表名;
4、删除表
drop table 表名;

四、表内数据的相关操作(基础)

'''
基于表内数据的增删改查
'''
1、插入数据
insert into 表名 values(数据值1,数据值2);
2、查询数据
select * from 表名; # 查询表内所有数据
3、编辑数据
update 表名 set 字段名=新数据 where 筛选条件;
4、删除数据
delete from 表名;
delete from 表名 where id=2;

五、MySQL数据库数据类型

MySQL 中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 

5.1数值类型

MySQL 支持所有标准 SQL 数值数据类型。

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。

关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。

BIT数据类型保存位字段值,并且支持 MyISAM、MEMORY、InnoDB 和 BDB表。

作为 SQL 标准的扩展,MySQL 也支持整数类型 TINYINT、MEDIUMINT 和 BIGINT。下面的表显示了需要的每个整数类型的存储和范围。 

image

5.1.1整型

tinyint			1bytes			正负号(占1bit)
smallint		2bytes			正负号(占1bit)
int			   4bytes		   正负号(占1bit)
bigint			8bytes			正负号(占1bit)

验证整型默认是否携带正负号
	create table t5(id tinyint);
	insert into t5 values(-129),(128);
结果是-128和127 也就意味着默认自带正负号

我们也可以取消正负号
	create table t6(id tinyint unsigned);
 	insert into t6 values(-129),(128),(1000);

5.1.2浮点型

float(20,10)
	总共存储20位数 小数点后面占10
double(20,10)
	总共存储20位数 小数点后面占10
decimal(20,10)
	总共存储20位数 小数点后面占10

create table t7(id float(60,20));
create table t8(id double(60,20));
create table t9(id decimal(60,20));
insert into t7 values(1.11111111111111111111);
insert into t8 values(1.11111111111111111111);
insert into t9 values(1.11111111111111111111);

三者的核心区别在于精确度不同
	float	<	double  < 	decimal

5.2日期和时间类型

	表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
	每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
	TIMESTAMP类型有专有的自动更新特性.

image

5.2.1时间和日期

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

create table t17(
	id int,
  	name varchar(32),
 	register_time datetime,
 	birthday date,
 	study_time time,
 	work_time year
);
insert into t17 values(1,'jason','2000-11-11 11:11:11','1998-01-21','11:11:11','2000');
ps:以后涉及到日期相关字段一般都是系统自动回去 无需我们可以操作

5.3字符串类型

	字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

image

5.3.1 字符类型

char
	定长
    	char(4)  最多存储四个字符 超出就报错 不够四个空格填充至四个
varchar
	变长
    	varchar(4) 最多存储四个字符 超出就报错 不够则有几位存几位
    
create table t10(id int, name char(4));
create table t11(id int, name varchar(4));
insert into t10 values(1, 'jason1');
insert into t11 values(1, 'jason2');

ps:char_length()获取字段存储的数据长度
默认情况下MySQL针对char的存储会自动填充空格和删除空格

set global sql_mode='strict_trans_tables,pad_char_to_full_length';



char VS varchar
    char
        优势:整存整取 速度快
        劣势:浪费存储空间
	 varchar
    	  优势:节省存储空间 
       	 劣势:存取数据的速度较char慢
jacktonyjasonkevintomjerry
1bytes+jack1bytes+tony1bytes+jason1bytes+kevin1bytes+tom1bytes+jerry
"""
char与varchar的使用需要结合具体应用场景
"""

5.4枚举与集合

枚举
	多选一
	create table t15(
    	id int,
      	name varchar(32),
       gender enum('male','female','others')
    );
 	insert into t15 values(1,'tony','猛男');
  	insert into t15 values(2,'jason','male');
 	insert into t15 values(3,'kevin','others');

集合
	多选多(多选一)
	create table t16(
    	id int,
      	name varchar(16),
       hobbies set('basketabll','football','doublecolorball')
    );
 	insert into t16 values(1,'jason','study');
 	insert into t16 values(2,'tony','doublecolorball');
	insert into t16 values(3,'kevin','doublecolorball,football');

5.5注意事项

注意:char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。

CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。

有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。 
posted @ 2022-11-22 16:53  负剑远游行归来仍少年  阅读(127)  评论(0)    收藏  举报