🚴‍♂️全套y数据库教程ysql基础入门教程,零基础小白自学y数据库必备教程☔第二单元y数据类型操作表会写的程序员

1.熟练创建数据库及删除数据库2.牢记数据类型3.熟练表的操作

MySQL数据库提供了多种数据类型。其中包括整数类型、浮点数类型、定点数类型、 日期和时间类型、字符串类型和二进制数据类型。不同的数据类型有各自的特点,使用范 围不相同。而且,存储方式也不一样。本节将详细讲解各种数据类型。首先简单介绍以下创建表的sql语句(create table 表名(字段1名称 字段类型,...))

整数类型是数据库中最基本的数据类型。标准SQL中支持INTEGER和SMALLINT 这两类整数类型。MySQL数据库除了支持这两种类型以外,还扩展支持了 TINYINT、MEDIUMINT和BIGINT。本小节将讲解各种整数类型的取值范围、存储的字节数、特点 等内容。下面从不同整数类型的字节数、取值范围等方面进行对比,如表2.1所示。

表2.1 MySQL的整数类型

从,表2.1中可以看到,INT类型和INTEGER类型的字节数和取值范围都是一样的。其 实,在MySQL中INT类型和INTEGER类型是一样的。TINYINT类型占用的字节最小,只需要1个字节。因此,其取值范围是最小的。BIGINT类型占用的字节最大,需要8个 字节。因此,其取值范围是最大的。 ​ 不同类型的整数类型的字节数不同。根据类型所占的字节数可以算出该类型的取值范 围。例如,TINYINT的空间为1个字节,1个字节是8位。那么,TINYINT无符号数的最大值为2的八次方-1,即为255。TINYINT有符号数的最大值为2的七次方-1,即为127。同理可以算出其他不同整数类型的取值范围。

MySQL支持数据类型的名称后面指定该类型的显示宽度。其基本形式如下: 数据类型(显示宽度) 其中,数据类型参数是整数数据类型的名称;显示宽度参数是指定宽度的数值。显示 宽度是指能够显示的最大数据的长度。例如,INT(4)在不指定宽度的情况下,每个整数类型都有默认的显示宽度。 【示例2-1】下面某表的字段a、b、c、d和e的数据类型分别为TINYINT, SMALLINT, MEDIUMINT、INT和BIGINT,这些整数类型都没有设置显示宽度,都为其默认值。该表的数据类型显示如下:

从上面结果可以看出各种整数类型的默认显示宽度。

TINYINT类型的默认显示宽度为 4;

SMALLINT类型的默认显示宽度为6;

MEDIUMINT类型的默认显示宽度为9;

INT类 型的默认显示宽度为11;

BIGINT类型的默认显示宽度为20。

仔细观察会发现,TINYINT 类型的默认显示宽度与其有符号数的最小值的显示宽度相同。因为此处负号是占一个位置 的。依此类推,其他整数类型的默认显示宽度与其有符号数的最大值的显示宽度相同。这 个可以理解为,.一个数据类型的默认显示宽度刚好能显示该数据类型的所有值。

MySQL中使用浮点数类型和定点数类型来表示小数。浮点数类型包括单精度浮点数 (FLOAT型)和双精度浮点数(DOUBLE型)。定点数类型就是DECIMAL型。本小节中将讲解FLOAT型、DOUBLE型和DECIMAL型的取值范围、存储的字节数和特点等内容。 下面从这三种类型的字节数、取值范围等方面进行对比,如表2.2所示。

表2.2 MySQL的浮点数类型和定点数类型

从上面表中可以看到,DECIMAL型的取值范围与DOUBLE相同。但是,DECIMAL的有效取值范围由M和D决定。而且,DECIMAL型的字节数是M+2。也就是说,定点数的存储空间是根据其精度决定的。 MySQL中可以指定浮点数和定点数的精度。其基本形式如下: 数据类型(M,D) ​ 其中,“数据类型”参数是浮点数或定点数的数据类型名称;

M:这个字段的长度

D:有几位小数 这个没有精度丢失,经常用来表示金钱

例如,FLOAT(6,2) 的含义数据FLOAT型,数据长度为6,小数点后保留2位。按此定义,1234.56是符合要 求的。

注意:上述指定小数精度的方法虽然都适合于浮点数和定点数,但不是浮点数的标准用法。建议在定义浮点数时,如果不是实际情况需要,最好不要使用。如果使用了,可能会影响数据库的迁移。对定点数而言,DECIMAL(M,D)是定点数的标准格式, 一般情况下可以选择这种数据类型。

如果插入值的精度高于实际定义的精度,系统会自动进行四舍五入处理,使值的精度 达到要求。不同的是,FLOAT型和DOUBLE型在四舍五入时不会报错,而DECIMAL型 会有警告。

【示例2-2】下面某表的字段a、b和c的数据类型分别是FLOAT(6,2)、DOUBLE(6,2) 和DECIMAL(6,2),向表中插入3.143、3.145和3.1434。其显示结果如下:

如果不指定精度,浮点数和定点数有其默认的精度。FLOAT型和DOUBLE型默认会保存实际精度,但这与操作系统和硬件的精度有关。DECIMAL型默认整数位为10,小数 位为0,即默认为整数。

【示例2-3】下面某表的字段a、b和c的数据类型分别是FLOAT、DOUBLE和 DECIMAL,向表中插入3.143、3.145和3.1434。其显示结果如下:

上面程序结果显示,字段a和b是按照实际精度保存的。而字段c进行了四舍五入处理,而且没有小数位。

在MySQL中,定点数以字符串形式存储。因此,其精度比浮点数要高,而且, 浮点数会出现误差,这是浮点数一直存在的缺陷。如果要对数据的精度要求比较高,还是选择定点数(DECIMAL )比较安全。

日期与时间类型是为了方便在数据库中存储日期和时间而设计的。 MySQL中有多种表示日期和时间的数据类型。其中,

DATE类型表示日期;

本小节将介绍上述类型的存储的字节数、取值范围和特点。

下面从这5种日期与时间类型的字节数、取值范围和零值等方面进行对比,如表2.3所示。 表2.3 MySQL的日期与时间类型

从上表中可以看到,每种日期与时间类型都有一个有效范围。如果插入的值超过了这个范围,系统会报错,并将零值插入到数据库中。不同的日期与时间类型有不同的零值,上表中已经详细列出。

YEAR类型使用1个字节来表示年份。MySQL中以YYYY的形式显示YEAR类型的 值。给YEAR类型的字段赋值的表示方法如下: 使用4位字符串或数字表示。其范围从1901〜2155。输入格式为'YYYY,或YYYY。 例如,输入'2008'或者2008,可直接保存为2008。如果超过了范围,就会插入0000。

【示例2-4】下面某表的字段a的数据类型是YEAR类型,向表中插入1997、'1998' 和'1900'。其显示结果如下:

结果显示,1997和1998直接存储到字段a中。而1900没有插入到字段a中,而是显示 0000 ,此处还有“Out of range value for column a at row 1"的警告信息。

TIME类型使用3个字节来表示时间。MySQL中以HH:MM:SS的形式显示TIME类 型的值。 其中,

HH表示时;

MM表示分,取值范围为0〜59;

SS表示秒,取值范围是0〜 59;

TIME类型的范围可以从'-838:59:59'〜'838:59:59'。

虽然,小时的范围是0〜23。 但是为了表示某种特殊需要的时间间隔,将TIME类型的范围扩大了。而且,还支持了负值。TIME类型的字段赋值的表示方法如下。 'D HH:MM:SS'格式的字符串表示。其中,D表示天数,取值范围是0〜34。保存时,小时的值等于(D*24+HH)。例如,输入'2 11:30:50' , TIME类型会转 换为59:30:50。当然,输入时可以不严格按照这个格式,也可以是“HH:MM:SS”、HH:MM”、“DHH:MM”、“DHH” 或者 “SS” 等形式。例如,输入'30', TIME类型会转换为00:00:30。 【示例2-5】下面某表的字段a的数据类型是TIME类型,向表中插入'2 23:50:50'、‘22:22:22’、'11:11'、'2 20:20'、'2 20'和'30'。其显示结果如下:

结果显示,‘223:50:50’ 转换为 71:50:50;‘11:11’转换为 11:11:00;20:20,转换为 68:20:00;‘2 20’转换为 68:00:00; '30'转换为 00:00:30。

HHMMSS'格式的字符串或HHMMSS格式的数值表示。例如,输入'345454', TIME类型会转换为34:54:54;输入值为数值345454, TIME类型也会转换为34:54:54。如果输入0和'0',那么TIME类型会转换为0000:00:00。 【示例2-6】下面某表的字段a的数据类型是TIME类型,向表中插入121212、 '131313'、 '0'和0。其显示结果如下:

结果显示,121212转换为12:12:12;‘131313’转换为13:13:13; '0'和0转换为 00:00:00。如果分钟和秒钟大于60时,系统会出现“Out of range value for column 'a* at row 1”这样的警告信息。

使用CURRENT TIME或者NOW。输入当前系统时间。 【示例2-7】下面某表的字段a的数据类型是TIME类型,向表中插入CURRENT_TIME和NOW()。其显示结果如下:

结果显示,CURRENTJTIME和NOW()都转换为当前系统时间。因此,如果要获取当 前的系统时间,最好选择CURRENTJTIME和NOW()。 ​ 一个合法的TIME值,如果超出TIME的范围,将被裁为范围最接近的端点,如, '880:00:00'被转换为838:59:59。无效TIME值,在命令行下是无法被插入到表中的。 ​ 注意:如果插入的TIME值是无效的,系统会提示“ERROR 1292 (22007): Incorrect time value5,.即使这个无效值被插入到表中,其值也会被转换为00:00:00。例如, '877034'就是一个无效的值,因为分钟部分超出了范围。TIME类型专门用来存储时间数据,而且只占3个字节。如果只需要记录时间,选择TIME类型是最合适的。

虽然MySQL支持DATA类型的一些不严格的语法格式。但是,在实际应用中, 最好还是选择标准形式。日期中使用做分隔符,时间用“:”做分隔符。如 果有特殊需要,可以使用“@”、"*”等特殊字符做分隔符。

DATETIME类型使用8个字节来表示日期和时间。MySQL中以'YYYY-MM-DD HH:MM:SS'的形式显示DATETIME类型的值。从其形式可以看出.,DATETIME类型可 以直接用DATE类型和TIME类型组合而成。

【示例2-11】下面向CHAR(5)与VARCHAR(5)中存入不同长度的字符串。将数据库 中的存储形式和占用的字节数进行对比,如表2.4所示。

表 2.4 CHAR(5)与VARCHAR(5)的对比

表2.4显示,CHAR(5)所占用的空间都是5个字节。这表示CHAR(5)的固定长度就是 5个字节。而VARCHAR(5)所占的字节数是实际长度的基础上加1。因为字符串的结束标志符占用了 1个字节。从表的第三行可以看到,VARCHAR将字符串'123 '最后面的空格依然保留着。为了确认空格是否保留,将所有数据后面加上“*”字符,结果显示如下:

由此可见,VARCHAR类型将'123 '最后面的空格保留着。而CHAR类型中将,123后面的空格自动删除了。 注意:如果CHAR和VARCHAR的长度为5,而插入的值为*123456'。那么系统会 阻止这个值的插入,并且会报错。错误信息是“ERROR 1406 (22001): Data too long for column”。这说明插入的字符串的长度已经大于了可以插入的最大值。

TEXT类型是一种特殊的字符串类型。TEXT只能保存字符数据,如新闻的内容等。 TEXT 类型包括 TINYTEXT. TEXT、MEDIUMTEXT 和 LONGTEXTo 下面将从 4 种 TEXT 类型允许的长度和存储空间进行对比,如表2.5所示。

表2.5各种TEXT类型的对比

从表2.5可以看出,各种TEXT类型的区别在于允许的长度和存储空间不同。因此在 这几种TEXT类型中,根据需求选取既能满足需要又最节约空间的类型即可。

在MySQL中创建表时,需要考虑为字段选择哪种数据类型是最合适的。只有选择了合适的数据类型,才能提高数据库的效率。本小节将讲解选择数据类型的原则。

整数类型和浮点数类型最大的区别在于能否表达小数。整数类型不能表示小数,而浮 点数类型可以表示小数。不同的整数类型的取值范围不同。TINYINT类型的取值范围为0〜 255。如果字段的最大值不超过255,那选择TINYINT类型就足够了。BIGINT类型的取值 范围最大。最常用的整数类型是INT类型。 ​ 浮点数类型包括FLOAT类型和DOUBLE类型。DOUBLE类型的精度比FLOAT类型 高。如果需要精确到小数点后10位以上,就应该选择DOUBLE类型,而不应该选择FLOAT类型。

对于浮点数和定点数,当插入值的精度高于实际定义的精度时,系统会自动进行四舍 五入处理。其目的是为了使该值的精度达到要求。浮点数进行四舍五入时系统不会报警, 定点数会岀现警告。 ​ 在未指定精度的情况下,浮点数和定点数有其默认的精度。FLOAT型和DOUBLE型 默认会保存实际精度。这个精度与操作系统和硬件的精度有关。DECIMAL型默认整数位 为10,小数位为0,即默认为整数。 ​ 在MySQL中,定点数精度比浮点数要高。而且,浮点数会岀现误差。如果要对数据 的精度要求比较高,应该选择定点数。

CHAR类型的长度是固定的,而VARCHAR类型的长度是在范围内可变的。因此, VARCHAR类型占用的空间比 CHAR类型小。 ​ 而且,VARCHAR类型比CHAR类型灵活。 对于长度变化比较大的字符串类型,最好是选择VARCHAR类型。 ​ 虽然CHAR类型占用的空间比较大,但是CHAR类型的处理速度比VARCHAR快。 因此,对于长度变化不大和查询速度要求较高的字符串类型,最好选择CHAR类型。

创建表是指在已存在的数据库中建立新表。这是建立数据库最重要的一步,是进行其他表操作的基础。

MySQL中,创建表是通过SQL语句CREATE TABLE实现的。其语法形式如下。

其中,“表名”参数表示所要创建的表的名称;“属性名”参数表示表中字段的名称; "数据类型"参数指定字段的数据类型,“完整性约束条件”参数指 定字段的某些特殊约束条件。 ​ 注意;在使用CREATE TABLE语句创建表时,首先要使用USE语句选择数据库。选择数据库语句的基本格式为“USE数据库名”。如果没有选择数据库,创建表时 会出现 aERROR 1046 (3D000): No database selected"错误。 ​ 表名不能为SQL语言的关键字,如create、update和order等都不能做表名。一个表中可以有一个或多个属性。定义时,字母大小写均可,各属性之间用逗号隔开,最后一个属性后不需要加逗号。

【示例3-1】 下面创建一个表名为exampleO的表,SQL代码如下:

表3.1完整性约束条件表

主键的主要目的是帮助MySQL以最快的速度查找到表中的某一条信息。主键必须满 足的条件就是主键必须是唯一的,表中任意两条记录的主键字段的值不能相同;主键的值是非空值。主键可以是单一的字段,也可以是多个字段的组合。

1.单字段主键 主键是由一个字段构成时,可以直接在该字段的后面加上PRIMARY KEY来设置主 键。语法规则如下:

其中,“属性名”参数表示表中字段的名称;“数据类型”参数指定字段的数据类型。 【示例3-2】 下面在example 1表中设置stu_id作为主键,SQL代码如下:

代码运行后,example1表中包含3个字段。stu_id字段是整型;stu_name字段是字符 串型;stu_sex是布尔型。其中,stu_id字段是主键。

2.多字段主键 主键是由多个属性组合而成时,在属性定义完之后统一设置主键。语法规则如下: PRIMARY KEY(属性名1,属性名2,…,属性名n) 【示例3-3】下面在example2表中设置stu id与course id两个字段为主键,SQL代码 如下:

代码运行后,example2表中包含3个字段。其中,stu_id和course id两个字段成为主键;stu id和course_id两者的组合可以确定唯一的一条记录。

外键的作用是建立该表与其父表的关联关系。父表中删除某条信息时,子表中与之对应的信息也必须有相应的改变。

【示例3-4】下面在example3表中设置stu_id和course_id为外键。与之相关联的是 example 1表中的主键stu id和course_id。SQL代码如下:

注意:子表的外键关联的必须是父表的主键。而且,数据类型必须是一致。例如,两者都是INT类型,或者都是CHAR类型。如果不满足这样的要求,在创建子表时, 就会出现"ERROR 1005 (HY000): Can't create table"错误。

非空性是指字段的值不能为空值(NULL)。非空约束将保证所有记录中该字段都有值。

下面在example4表中设置字段id和name的非空约束。SQL代码如下:

唯一性是指所有记录中该字段的值不能重复出现。设置表的唯一性约束是指在创建表时,为表的某些特殊字段加上UNIQUE约束条件。唯一性约束将保证所有记录中该字段的值不能重复出现。

【示例3-6】下面在examples表中设置字段id和stu_id的唯一性约束。SQL代码如下:

在创建表时可以指定表中字段的默认值。如果插入一条新的记录时没有为这个字段赋值,那么数据库系统会自动为这个字段插入默认值。默认值是通过DEFAULT关键字来设置的。

查看表结构是指查看数据库中已存在的表的定义。查看表结构的语句包括DESCRIBE语句和SHOW CREATE TABLE语句。通过这两个语句,可以查看表的字段名、字段的数据类型和完整性约束条件等。

代码运行后,结果显示如下:

技巧:如果直接使用SHOW CREATE TABLE examplel语句,结果的显示效果会比较差。尤其是遇到内容比较长的记录,显示的结果会很混乱。代码最后加上“\G” 参数,可以更加美观的显示内容,对内容比较长的记录效果尤为明显。

修改表是指修改数据库中已存在的表的定义。修改表比重新定义表简单,不需要重新加载数据,也不会影响正在进行的服务。MySQL中通过ALTER TABLE语句来修改表。 修改表包括修改表名、修改字段数据类型、修改字段名、增加字段、删除字段、修改字段 的排列位置、更改默认存储引擎和删除表的外键约束等

表名可以在一个数据库中唯一的确定一张表。数据库系统通过表名来区分不同的表。

段名可以在一张表中唯一的确定一个字段。数据库系统通过字段名来区分表中的不同字段.

増加无完整性约束条件的字段

増加有完整性约束条件的字段

删除字段是指删除已经定义好的表中的某个字段。

字段修改到第一个位置

字段修改到指定位置

删除表是指删除数据库中已存在的表。删除表时,会删除表中的所有数据。

执行ALTER TABLE语句,删除 example4表的外键约束。删除example4表的外键的SQL语句如下:

查询结果显示,example4表中已经不存在外键了。现在,已经消除了 example4表与 example1表的关联关系,即可直接使用DROP TABLE语句删除example1表。SQL代码如下:

THE END
0.零基础入门到精通,收藏这篇就够了sql基础教程sql教程SQL 保姆级入门教程 哈喽,大家好!今天我们学习MySql相关知识,希望大家能有所收获。 === 1.查询所有列 select * from user_profile AI写代码 1 2 2.查询多列 select device_id, gender, age, university` `from user_profile AI写代码 1 2 3.group by的用法 group by语句用于将jvzquC41dnuh0lxfp0tfv8|gkzooa><765<648ftvkimg8igvcomu86682676?9
1.MySQL基础知识入门教程吾爱破解3、高度非过程化;用SQL操作数据库时大部分的工作由DBMS自动完成 3.SQL的分类 1、DDL(Data DefinitionjvzquC41yy}/7;uqlkk/ew4vjtkbf665:7?8;66/30nuou
2.mysql入门到精通完整学习教程,基础入门数据库实战也可以通过视频系统的学习mysql,推荐老杜讲的MySQL教程,开启我们的MySQL学习之旅,学习更多的MySQL知识。 课程学习目录 001-MySQL数据库-数据库概述 002-MySQL数据库-什么是SQL 003-MySQL数据库-安装MySQL 004-MySQL数据库-卸载MySQL 005-MySQL数据库-查看MySQL服务 jvzquC41yy}/lrfpuj{/exr1r1gg9=h4d794f?
3.SQL入门教程第一课 了解SQL 1.1 数据库基础 1.1.1 数据库 1. 从SQL的角度看,数据库是一个以某种有组织的方式存储的数据集合。最简单的办法是将数据库想象为一个文件柜。这个文件柜是一个存放数据的物理位置,不管数据是什么,也不管数据是如何组织的。 AI写代码 1 数据库(database):保存有组织的数据的容器(通常是一个文件jvzquC41dnuh0lxfp0tfv8vsa5<5795:31gsvrhng1jfvjnnu1719=888:=
4.【2025】SQL入门教程(详解版)从零基础入门到精通,看完这一篇就够了但是由于各种各样的数据库出现,导致很多不同版本的SQL 语言。 为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的关键词(比如SELECT、UPDATE、DELETE、INSERT、WHERE 等等),这些就是我们要学习的SQL基础。 2. SQL 的类型 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。jvzquC41dnuh0lxfp0tfv87523e89=<46;<0c{ykenk0fnyckny03>6538>52
5.数据库系统基础原理及应用书籍oracleSQL数据》【摘要书评Oracle从入门到精通 第5版 oracle软件开发零基础入门教程书 数据库系统基础原理及应用书籍 oracle SQL数据收藏 ¥ 累计评价0 降价通知 -+ 加入购物车jvzquC41kvkn0si0eqs0396233?9:;82754ivvq
6.MySQL基础快速入门知识总结(附思维导图)MysqlMySQL 为关系型数据库(Relational Database Management System), 这种所谓的关系型可以理解为表格的概念, 一个关系型数据库由一个或数个表格组成,这篇文章主要给大家介绍了关于MySQL基础快速入门知识的相关资料,需要的朋友可以参考下+ 目录 GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!【 如果你想靠AI翻身,jvzquC41yy}/lk:30pku1jwvkerf1;75:49/j}r
7.sql基础教程第二版pdf下载MICK高清扫描版sql基础教程 第二版是一本SQL的新手入门书籍,由日本资深数据库专家MICK编著,孙淼,罗勇共同翻译。第2版基于新版本RDBMS全面升级,并新增一章介绍从应用程序执行SQL语句的方法。全书从数据库、表的结构到查询、更新表的语法,常用的函数,表的联结等,内容逐步深入。对于初学者常见的疑难点,均通过专栏进行讲解。各章节后精jvzquC41yy}/fmtqq0ipo8xqhvjpyw43379287mvo
8.《sqlserver零基础教程书SQLServer从入门到精通第5版高性能mysql8数京东JD.COM图书频道为您提供《sql server零基础教程书SQLServer从入门到精通第5版高性能mysql8数据库技术开发基础原理及应用书籍sql必知必会进阶教程书2023》在线选购,本书作者:,出版社:清华大学出版社。买图书,到京东。网购图书,享受最低优惠折扣!jvzquC41kvkn0si0eqs0395:65:23A::794ivvq