我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL学习笔记 数据类型与操作数据表

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL学习笔记 数据类型与操作数据表

1.数据类型   

    【1】整型:

数据类型存储范围字节
TINYINT有符号型:-128~127(-2^7~2^7 -1),无符号型0~255(0~2^8 -1)1
SMALLINT有符号型:-2^15~2^15 -1,无符号型0~2^16 -12
MEDIUMINT有符号型:-2^23~2^23 -1,无符号型0~2^24 -13
INT有符号型:-2^31~2^31 -1,无符号型0~2^32 -14
BIGINT有符号型:-2^63~2^63 -1,无符号型0~2^64 -18




    【2】浮点型

数据类型存储范围字节
FLOAT[(M,D)]-3.402823466E+38~-1.175494351E-38、0和 1.175494351E-38 ~3.402823466E+384
DOUBLE[(M,D)]2.2250738585072014E-308~ 1.7976931348623157E+3088





【注】M是数字总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保值。单精度浮点数值精确到大约7位小数位。E+38 表示10^38    

    【3】日期时间型

列类型字节存储范围
YEAR1YEAR[(2|4)] 缺省为4位格式,4位格式取值范围为1901 - 2155,
TIME3-838:59:59~838:59:59
DATE31000-1-1~9999-12-31
DATETIME8日期时间, 1000-1-1 00:00:00~9999-12-31 23:59:59
TIMESTAMP4时间戳,1970-1-1 00:00~2037年的某个时刻





【注】实际开发中“日期时间型”用得比较少,因为考虑到跨时区的问题,一般会用数字类型取代

MySQL本身Y2K安全的,但是呈交给MySQL的输入值可能不是。一个包含2位年份值的任何输入是由二义性的,因为世纪是未知的。这样的值必须被解释成4位形式,因为MySQL内部使用4位存储年份。

对于DATETIME, DATE, TIMESTAMP和YEAR类型,MySQL使用下列规则的解释二义性的年份值:

-在范围00-69的年值被变换到2000-2069。

-在范围70-99的年值被变换到1970-1999。

记得这些规则仅仅提供对于你数据的含义的合理猜测。如果MySQL使用的启发规则不产生正确的值,你应该提供无二义的包含4位年值的输入。

    【4】字符型

列类型存储需求
CHAR(M)(定长,不足用空格自动补全)M个字节,0<=M<=255
VARCHAR(M)(变长,输入多少就是多少)L+1个字节,其中L<=M,0<=M<=65535
TINYTEXTL+1个字节,其中L<2^8 (1个字节表示最大存储范围,下同)
TEXTL+2个字节,其中L<2^16
MEDIUMTEXTL+3个字节,其中L<2^24
LONGTEXTL+4个字节,其中L<2^32
ENUM('value1','value2',…)(最终选择其中的一个value)1或2个字节,取决于枚举值的个数(最多65535个)
SET ('value1','value2',…)(集合,可在其中做任意的排列组合)1、2、3、4或者8个字节,取决于set成员的




CHAR(M) :定长类型,定义数据为5个字节,当需要存储abc3个字节的时候,会以2个空格的形式补满5个字节。

VARCHAR(M) :变长类型,输入abc3个字节就存储3个字节,不会存储多余的数据。

2.数据表操作

    【1】概述

数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础。

    【2】命令

  USE  打开数据库:

mysql> USE <数据库名称>;

        

  • 显示当前用户所打开的数据库:

mysql> SELETE DATABASES;
  • 创建数据库表

CREATE TABLE [IF NOT EXISTS] table_name (column_name列名称 data_type数据类型,....)
例:创建数据库表:列名称为username和age和salary
mysql> USE t1;
mysql> CREATE TABLE IF NOT EXISTS t1(
    -> username VARCHAR(20),
    -> age TINYINT UNSIGNED,
    -> salary FLOAT(8,2) UNSIGNED
    -> );
  • 查看数据表列表

mysql> SHOW TABLES;
  • 查看其他数据库的数据表列表,例查看mysql数据库

mysql> SHOW TABLES FROM mysql;
  • 查看数据表的结构

mysql> SHOW TABLES FROM mysql;


 3.MySQL记录的插入与查找

    记录插入:

INSERT [INTO] tbl_name [(col_name,...0] VALUES (val,...)

           

    例:

mysql> INSERT t1 VALUES('Tom',25,7863.25);

    记录查找:

SELECT expr,... FROM tbl_name

            例:

SELECT * FROM t1;

4.MySQL空值与非空

*** NULL ,字段值可以为空

*** NOT NULL ,字段值禁止为空

    例:

mysql> USE t2;
mysql> CREATE TABLE IF NOT EXISTS tb2(
    -> username VARCHAR(20) NOT NULL,
    -> age TINYINT UNSIGNED NULL,
    -> salary FLOAT(8,2) UNSIGNED
    -> );

5.MySQL主键约束

*** 主键约束

*** 每张数据表只能存在一个主键

*** 主键保证记录的唯一性

*** 主键自动为NOT NULL

6.MySQL自动编号 AUTO_INCREMENT

*** 自动编号,且必须与主键组合使用

*** 默认情况下,起始值为1,每次的增量为1

    例,创建自动编号表:

mysql> CREATE TABLE tb3(
    -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    -> username VARCHAR(30) NOT NULL
    -> );
mysql> SHOW COLUMNS FROM tb3;
+----------+----------------------+------+-----+---------+----------------+
| Field    | Type                 | Null | Key | Default | Extra          |
+----------+----------------------+------+-----+---------+----------------+
| id       | smallint(5) unsigned | NO   | PRI | NULL    | auto_increment |
| username | varchar(30)          | NO   |     | NULL    |                |
+----------+----------------------+------+-----+---------+----------------+

    例,插入记录,查看表:

mysql> INSERT tb3(username) VALUES('Tom')
mysql> INSERT tb3(username) VALUES('John')
mysql> INSERT tb3(username) VALUES('Rose')
mysql> INSERT tb3(username) VALUES('Dimitar')
mysql> SELECT * FROM tb3;
+----+----------+
| id | username |
+----+----------+
|  1 | Tom      |
|  2 | John     |
|  3 | Rose     |
|  4 | Dimitar  |
+----+----------+

  7.MySQL唯一约束 UNIQUE KEY

*** 唯一约束

*** 唯一约束可以保证记录的唯一性

*** 唯一约束的字段可以为空值(NULL)

*** 每张数据表可以存在多个唯一约束

    例:

创建数据表tb4:

mysql> CREATE TABLE tb4(
    -> id SMALLINT AUTO_INCREMENT PRIMARY KEY, 
    -> username VARCHAR(20) NOT NULL UNIQUE KEY, 
    -> age TINYINT UNSIGNED
    -> );
    
mysql> SHOW COLUMNS FROM tb4;
+----------+---------------------+------+-----+---------+----------------+
| Field    | Type                | Null | Key | Default | Extra          |
+----------+---------------------+------+-----+---------+----------------+
| id       | smallint(6)         | NO   | PRI | NULL    | auto_increment |
| username | varchar(20)         | NO   | UNI | NULL    |                |
| age      | tinyint(3) unsigned | YES  |     | NULL    |                |
+----------+---------------------+------+-----+---------+----------------+

        

  • 插入记录:

mysql> INSERT tb4(username,age) VALUES('Tom',25);
Query OK, 1 row affected (0.00 sec)
  • 再插入一条username同时‘Tom'的记录,提示重复:

mysql> INSERT tb4(username,age) VALUES('Tom',23);
ERROR 1062 (23000): Duplicate entry 'Tom' for key 'username'

   

8.MySQL默认约束

*** 默认值

*** 当插入记录时,如果没有明确为字段赋值,则自动赋予默认值

    例:

创建数据表tb6,设置sex列的默认值为3:

mysql> CREATE TABLE tb6(
    -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    -> username VARCHAR(20) NOT NULL UNIQUE KEY,
    -> sex ENUM('1','2','3') DEFAULT '3'
    -> );
    
mysql> SHOW COLUMNS FROM tb6;
+----------+----------------------+------+-----+---------+----------------+
| Field    | Type                 | Null | Key | Default | Extra          |
+----------+----------------------+------+-----+---------+----------------+
| id       | smallint(5) unsigned | NO   | PRI | NULL    | auto_increment |
| username | varchar(20)          | NO   | UNI | NULL    |                |
| sex      | enum('1','2','3')    | YES  |     | 3       |                |
+----------+----------------------+------+-----+---------+----------------+

        

  • 插入记录,不给sex赋值:

mysql> INSERT tb6(username) VALUES('Tom');
mysql> INSERT tb6(username) VALUES('John');
mysql> INSERT tb6(username) VALUES('Mimiter');
  • 查看数据表,sex自动为默认值3:

mysql> SELECT * FROM tb6;                     
+----+----------+------+
| id | username | sex  |
+----+----------+------+
|  1 | Tom      | 3    |
|  2 | John     | 3    |
|  3 | Mimiter  | 3    |
+----+----------+------+


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL学习笔记 数据类型与操作数据表

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL学习笔记(4):数据类型

本文更新于2019-06-19,使用MySQL 5.7,操作系统为Deepin 15.4。目录数值类型整数类型定点数类型浮点数类型位类型日期时间类型字符串类型枚举类型集合类型数值类型整数类型type[(m)] [UNSIGNED] [ZEROFILL] [AU
MySQL学习笔记(4):数据类型
2019-09-06

Python数据类型学习笔记

带你走进数据类型 一:整数、浮点数 Python中整数和浮点数的定义以及运算和C++都是一样的,我在这里就不需多说了,我就说明一点:Python相对于C/C++而言,定义整数没有int 和 long long 这些区分的,直接赋值即可。这就
2022-06-04

mysql,数据类型与表操作

一、mysql基本认知创建用户create host aa identified with mysql_native_password by "";修改用户权限alter user root@"localhost" identfied  with mysql_
mysql,数据类型与表操作
2018-12-14

Python学习笔记(2)操作符和数据类

2019-02-25一:(1)常用操作符:  ① 算数操作符:=、-、*、/、%(求余)、**(幂运算)、//(地板除法:计算结果取比商小的最大整型)  注意:幂运算操作符比其左侧的一元运算符的优先级高,比其右边的一元运算符优先级低。  测
2023-01-30

[Python学习笔记] 数字类型及操作

数字类型整数类型十进制:1110,-123二进制:以0B或0b开头 0b110,-0B101八进制:以0O或0o开头 0o123,-0O567十六进制:以0X或0x开头 0x555,-0X89a浮点数类型可以采用科学记数法表示 5.5e-3
2023-01-31

PHP学习笔记:数据库连接与操作

概述:在Web开发中,数据库连接和操作是非常重要的环节。PHP作为一种广泛应用于Web开发的脚本语言,提供了丰富的数据库连接和操作功能。本文将介绍PHP中如何连接数据库以及常用的数据库操作方法,同时会提供具体的代码示例,以便读者更好地理解和
2023-10-21

深入学习MySQL表数据操作

这篇文章主要介绍了深入学习MySQL表数据操作,基于表操作内容围绕主题展开详细介绍,具有一定的参考价值,需要的小伙伴可以参考一下
2022-11-13

Android学习笔记(十三)——数据存储(LitePal操作数据库)

【第一部分】历史文章: Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中Che
2022-06-06

PHP学习笔记:表单处理与数据验证

在网页开发中,表单是用户与网站进行交互的重要组件之一。当用户在网站上填写表单并提交数据时,网站需要对提交的数据进行处理和验证,确保数据的准确性和安全性。本文将介绍如何使用PHP来处理表单和进行数据验证,并提供具体的代码示例。表单提交和数据预
2023-10-21

编程热搜

目录