mysql varchar 转成bigint_MySQL 指南之 SQL 语句基础

个人所有文章整理在此篇,将陆续更新收录:知无涯,行者之路莫言终(我的编程之路)


55bf42abe10dffa6cc9789b70eb65d4f.png

零、结构化查询语言:SQL(Structured Query Language)

DDL 数据定义语言 管理库,表

DML 数据操作语言 增删改查

DCL 数据控制语言 数据控制,权限访问等


准备活动:创建库和表

CREATE DATABASE datatype;

USE datatype;

CREATE TABLE type_number(

type CHAR(12),

byte TINYINT UNSIGNED,

range_singed VARCHAR(20),

range_unsinged VARCHAR(20),

info VARCHAR(40)

);


目前状态:

mysql> SHOW DATABASES;

+--------------------+

| Database |

+--------------------+

| datatype |

| information_schema |

| mycode |

| mysql |

| performance_schema |

| seckill |

+--------------------+

mysql> USE datatype;

Database changed

mysql> SHOW TABLES;

+--------------------+

| Tables_in_datatype |

+--------------------+

| type_number |

+--------------------+

mysql> DESC type_number;

+----------------+---------------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+----------------+---------------------+------+-----+---------+-------+

| type | char(12) | YES | | NULL | |

| byte | tinyint(3) unsigned | YES | | NULL | |

| range_singed | varchar(20) | YES | | NULL | |

| range_unsinged | varchar(20) | YES | | NULL | |

| info | varchar(40) | YES | | NULL | |

+----------------+---------------------+------+-----+---------+-------+


一、DML 数据库记录操作 LEVEL1

LEVEL 1 先简单掌握一下下面的用法

79baacc8807037502f68e1cce09bc614.png


1、记录的插入操作

INSERT INTO(属性,...)VALUES(值,...),...;

|-- 插入一条数据 INSERT INTO (属性,...) VALUES (值,...);

INSERT INTO

type_number(type,byte,range_singed,range_unsinged,info)

VALUES

('TINYINT',1,'-2⁷ ~ 2⁷-1','0 ~ 2⁸-1','很小整数');

|-- 查询所有 SELECT * FROM ;

mysql> SELECT * FROM type_number;

+---------+------+----------------+----------------+--------------+

| type | byte | range_singed | range_unsinged | info |

+---------+------+----------------+----------------+--------------+

| TINYINT | 1 | -2⁷ ~ 2⁷-1 | 0 ~ 2⁸-1 | 很小整数 |

+---------+------+----------------+----------------+--------------+

|-- 你也可以一次,插入多条数据

INSERT INTO

type_number(type,byte,range_singed,range_unsinged,info)

VALUES

('TINYINT',1,'-2⁷ ~ 2⁷-1','0 ~ 2⁸-1','很小整数'),

('SMALLINT',2,'-2¹⁶ ~ 2¹⁶-1','0 ~ 2¹⁶-1','小整数'),

('MEDIUMINT',3,'-2²⁴ ~ 2²⁴-1','0 ~ 2²⁴-1','中等整数'),

('INT',4,'-2³² ~ 2³²-1','0 ~ 2³²-1','标准整数'),

('BIGINT',8,'-2⁶⁴ ~ 2⁶⁴-1','0 ~ 2⁶⁴-1','大整数');

mysql> SELECT * FROM type_number;

+-----------+------+----------------------+----------------+--------------+

| type | byte | range_singed | range_unsinged | info |

+-----------+------+----------------------+----------------+--------------+

| TINYINT | 1 | -2⁷ ~ 2⁷-1 | 0 ~ 2⁸-1 | 很小整数 |

| TINYINT | 1 | -2⁷ ~ 2⁷-1 | 0 ~ 2⁸-1 | 很小整数 |

| SMALLINT | 2 | -2¹⁶ ~ 2¹⁶-1 | 0 ~ 2¹⁶-1 | 小整数 |

| MEDIUMINT | 3 | -2²⁴ ~ 2²⁴-1 | 0 ~ 2²⁴-1 | 中等整数 |

| INT | 4 | -2³² ~ 2³²-1 | 0 ~ 2³²-1 | 标准整数 |

| BIGINT | 8 | -2⁶⁴ ~ 2⁶⁴-1 | 0 ~ 2⁶⁴-1 | 大整数 |

+-----------+------+----------------------+----------------+--------------+

2、记录的更新操作

UPDATE SET 属性=值,...WHERE 条件;

UPDATE type_number

SET

info='微型整数'

WHERE type = 'TINYINT';

mysql> SELECT * FROM type_number;

+-----------+------+----------------------+----------------+--------------+

| type | byte | range_singed | range_unsinged | info |

+-----------+------+----------------------+----------------+--------------+

| TINYINT | 1 | -2⁷ ~ 2⁷-1 | 0 ~ 2⁸-1 | 微型整数 |

| TINYINT | 1 | -2⁷ ~ 2⁷-1 | 0 ~ 2⁸-1 | 微型整数 |

| SMALLINT | 2 | -2¹⁶ ~ 2¹⁶-1 | 0 ~ 2¹⁶-1 | 小整数 |

| MEDIUMINT | 3 | -2²⁴ ~ 2²⁴-1 | 0 ~ 2²⁴-1 | 中等整数 |

| INT | 4 | -2³² ~ 2³²-1 | 0 ~ 2³²-1 | 标准整数 |

| BIGINT | 8 | -2⁶⁴ ~ 2⁶⁴-1 | 0 ~ 2⁶⁴-1 | 大整数 |

+-----------+------+----------------------+----------------+--------------+


3.记录的删除操作

DELETE FROM WHERE 条件;

|--- 删除操作

DELETE FROM type_number

WHERE type = 'TINYINT';

mysql> SELECT * FROM type_number;

+-----------+------+----------------------+----------------+--------------+

| type | byte | range_singed | range_unsinged | info |

+-----------+------+----------------------+----------------+--------------+

| SMALLINT | 2 | -2¹⁶ ~ 2¹⁶-1 | 0 ~ 2¹⁶-1 | 小整数 |

| MEDIUMINT | 3 | -2²⁴ ~ 2²⁴-1 | 0 ~ 2²⁴-1 | 中等整数 |

| INT | 4 | -2³² ~ 2³²-1 | 0 ~ 2³²-1 | 标准整数 |

| BIGINT | 8 | -2⁶⁴ ~ 2⁶⁴-1 | 0 ~ 2⁶⁴-1 | 大整数 |

+-----------+------+----------------------+----------------+--------------+


4.记录的查询操作

SELECT 属性,...FROM WHERE 条件;

mysql>

SELECT

type,range_unsinged

FROM type_number

WHERE byte>=4;

+--------+----------------+

| type | range_unsinged |

+--------+----------------+

| INT | 0 ~ 2³²-1 |

| BIGINT | 0 ~ 2⁶⁴-1 |

+--------+----------------+


二、图片表 pic (LEVER2)

这个是用来记录图片信息的表,数据准备过程详见番外篇:[番外]-练习MySQL没素材?来一波字符串操作

49383f5de258bbe5b25d015e571aaa47.png

1.建表语句

CREATE TABLE pic(

id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

pic_path VARCHAR(120) NOT NULL,

pic_length INT UNSIGNED DEFAULT 0,

pic_mime TINYINT UNSIGNED,

pic_width SMALLINT UNSIGNED,

pic_height SMALLINT UNSIGNED

);

|--- id 为主键 自增长

|--- pic_path表示名字,不定长度 ,给个VARCHAR 120 吧,差不多够用吧

|--- 图片文件大小不会非常大,给个INT足够了 , 给个默认值 0

|--- pic_mime 0 表示 image/png 1表示 image/jpeg 给个最小的

|--- pic_width和pic_height也不会非常大,无符号SMALLINT足够


2.查询操作 AS 的作用

|-- 查询高大于1200像素的记录,使用AS 来 临时更改查询输出的属性名(不会改变实际记录)

mysql>

SELECT

pic_path AS 路径 ,

pic_width AS '宽/px',

pic_height AS '高/px'

FROM pic

WHERE pic_height>1200;

+----------------------+--------+--------+

| 路径 | 宽/px | 高/px |

+----------------------+--------+--------+

| 30000X20000.jpg | 30000 | 20000 |

| 3000X2000.jpg | 3000 | 2000 |

| ecNKedygCmSjTWWF.jpg | 700 | 1352 |

| gtQiXnRfkvvTLinw.jpg | 2880 | 2025 |

| HXqqASHJETSlvpnc.j

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值