MySQL第二弹
创始人
2024-02-21 07:55:08
0

目录​​​​​​​

一、数据库基本操作

1、查看数据库信息

2、查看数据库中的表信息

3、显示数据表的结构(字段)

4、常见的数据类型

4.1 数值类型

4.2 日期和时间类型

4.3 字符串类型

二、SQL语言概述

1、SQL语言

2、SQL分类

2.1 DDL:数据定义语言,用于创建数据库对象,如库、表、索引等

2.2 DML:数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据(增删改)

2.3 DQL:数据查询语言,用于从数据表中查找符合条件的数据记录

2.4 DCL:数据控制语言,用于设置或者更改数据库用户或角色权限


一、数据库基本操作

1、查看数据库信息

show databases; 

2、查看数据库中的表信息

use 数据库名     #切换到数据库中
show tables
show tables in mysql

3、显示数据表的结构(字段)

describe user;

  • Field:字段名称
  • type:数据类型
  • Null :是否允许为空
  • Key :主键
  • Type:数据类型
  • Null :是否允许为空
  • Default :默认值
  • Extra :扩展属性,例如:标志符列 (标识了种子,增量/步长) 1 2
  • id: 1 3 5 7

第一种方式:

 第二种方式:

以表格的形式输出:

4、常见的数据类型

常见的数据类型
类型解释
int整型——用于定义整数类型的数据
flbat单精度浮点4字节32位——准确表示到小数点后六位
double双精度浮点8字节64位
char固定长度的字符类型——用于定义字符类型数据
varchar可变长度的字符类型
text文本
image图片
decimal(5,2) 5个有效长度数字,小数点后面有2位指定长度数组

扩:Char如果存入数据的实际长度比指定长度要小,会补空格至指定长度,如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错

MysQL数据库的数据文件存放在/usr/local/mysql/data目录下,每个数据库对应-个子目录,用于存储数据表文件。每个数据表对应为三个文件,扩展名分别为".frm"、“.MYD”和".MYI"。

4.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。下面的表显示了需要的每个整数类型的存储和范围。
类型大小范围(有符号)范围(无符号)用途
TINYINT1 Bytes(-128,127)(0,255)小整数值
SMALLINT2 Bytes(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT3 Bytes(-8 388 608,8 388 607)(0,16 777 215)大整数值
INT或INTEGER4 Bytes(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
BIGINT8 Bytes(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
FLOAT4 Bytes(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度 浮点数值
DOUBLE8 Bytes(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度 浮点数值
DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值

4.2 日期和时间类型

  •         表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
  •         每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
  •         TIMESTAMP类型有专有的自动更新特性,将在后面描述。
类型大小 ( bytes)范围格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3'-838:59:59'/'838:59:59'HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:00/2038结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07YYYYMMDD HHMMSS混合日期和时间值,时间戳

4.3 字符串类型

  •         字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。
类型大小用途
CHAR0-255 bytes定长字符串
VARCHAR0-65535 bytes变长字符串
TINYBLOB0-255 bytes不超过 255 个字符的二进制字符串
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据

注意: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 类型,可存储的最大长度不同,可根据实际情况选择。

二、SQL语言概述

1、SQL语言

  • Structured Query Language的缩写,即结构化查询语言
  • 关系型数据库的标准语言
  • 用于维护管理数据库
    • 包括数据查询、数据更新、访问控制、对象管理等功能

2、SQL分类

  • DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
  • DML:数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据
  • DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
  • DCL:数据控制语言,用于设置或者更改数据库用户或角色权限(数据控制语句,用于控制不通数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,如COMMIT、ROLLBACK、GRANT、REVOKE)

2.1 DDL:数据定义语言,用于创建数据库对象,如库、表、索引等

  • DDL语句可用于创建数据库对象,如库、表、索引等
  • 使用DDL语句新建库、表
    •  创建数据库 :CREATE DATABASE数据库名
    •  创建数据表 :CREATE TABLE表名(字段定义.…...….)

创建数据库:

创建数据表:

扩:PRIMARY KEY:主键一般选择没有重复并且不为空值的字段

 删除表: 

2.2 DML:数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据(增删改)

  • DML语句可用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据(增删改)
  • 使用DML语句增删改
    • 插入数据 :INSERT INTO 表名(字段1,字段2[...])  VALUES(字段1的值,字段2的值,。。。)
    • 修改、更新数据表中的数据记录 :UPDATE 表名 SET 宁段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式1] (一定要加where条件)
    • 在数据表中删除指定的数据记录:DELETE FROM 表名 [WHERE 条件表达式];

插入数据:

修改、更新数据表中的数据记录 :

在数据表中删除指定的数据记录:

2.3 DQL:数据查询语言,用于从数据表中查找符合条件的数据记录

  • DQL语句可用于从数据表中查找符合条件的数据记录
  • 使用DQL语句查询
    • 查询数据表 :SELECT * FROM 表名
    • 查询数据表中某些信息 :例如SELECT id,name FROM zz WHERE id=2;
    • 查询数据表并以列表方式竖向显示 :select name from 表名\G;
    • 查询数据表并只显示头2行 :select * from zz limit 2;   
    • 查询数据表并#显示第2行后的前3行:select * from zz limit 2,3;   

查询数据表:

查询数据表中某些信息:

查询数据表并以列表方式竖向显示 :

查询数据表并只显示头2行 :

查询数据表并#显示第2行后的前3行 :

2.4 DCL:数据控制语言,用于设置或者更改数据库用户或角色权限

  • DCL语句可用于设置或者更改数据库用户或角色权限(数据控制语句,用于控制不通数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,如COMMIT、ROLLBACK、GRANT、REVOKE)
  • 使用DCL语句控制
    • 修改表名和表结构 :ALTER TABLE 旧表名 RENAME 新表名;
    • 扩展表结构(增加字段) :ALTER TABLE 表名 ADD address varchar(50) default '地址不详'; 
      • #default '地址不详':表示此字段设置默认值为地址不详,可与NOT NULL配合使用
      • ALTER TABLE yyy ADD address varchar(50) NOT NULL default '地址不详';
    • 修改字段(列)名,添加唯一键 :ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
      • unique key:唯一键(特性:唯一,但可以为空,空值只允许出现一次)
      • Primary key:唯一且非空(主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。)
    • 删除字段 :ALTER TABLE 表名 DROP 字段名;
    • 判断要创建的表是否已存在:if not exists

修改表名和表结构 :

扩展表结构(增加字段) :

  • #default '地址不详':表示此字段设置默认值为地址不详,可与NOT NULL配合使用
  • ALTER TABLE yyy ADD address varchar(50) NOT NULL default '地址不详';

修改字段(列)名,添加唯一键 :

  • unique key:唯一键(特性:唯一,但可以为空,空值只允许出现一次)
  • Primary key:唯一且非空(主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。)
  • CHANGE可修改字段名、数据类型、约束等所有项。

删除字段 :

判断要创建的表是否已存在 :

3use school;
create table if not exists info (                  #判断要创建的info表是否已经存在,如果不存在就继续创建
id int(4) zerofill primary key auto_increment,     #指定主键的第二种方式
name varchar(10) not null,
cardid int(18) not null unique key,
hobby varchar(50));

#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
#int(4) zerofill:表示若数值不满4位数,则前面用"0"填充,例0001
#auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;
自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且
添加失败也会自动递增一次
#unique key:表示此字段唯一键约束,此字段数据不可以重复:一张表中只能有一个主键,但是一张表中可以有多个唯一键
#not null:表示此字段不允许为NULL

相关内容

热门资讯

心态管理培训心得与体会样本三... 心态管理培训心得与体会样本三例  篇一:心态管理培训心得与体会  入职第二天,公司的人事经理对我们新...
实习心得体会 实习心得体会(精选31篇)  当我们经过反思,对生活有了新的看法时,马上将其记录下来,它可以帮助我们...
志愿者活动心得体会 志愿者活动心得体会500字(通用6篇)  当我们经过反思,对生活有了新的看法时,马上将其记录下来,这...
教育名著读书心得 教育名著读书心得(通用29篇)  当我们积累了新的体会时,就十分有必须要写一篇心得体会,这样能够给人...
洛阳实习报告 洛阳实习报告  一段充实而忙碌的实习生活结束了,相信你积累了不少实习心得,让我们一起来学习写实习报告...
《小英雄雨来》读书笔记 《小英雄雨来》读书笔记45篇  读完一本书以后,大家心中一定是萌生了不少心得,何不写一篇读书笔记记录...
团支部个人心得体会 团支部个人心得体会范文(精选5篇)  当我们积累了新的体会时,不如来好好地做个总结,写一篇心得体会,...
劳动节活动心得体会 劳动节活动心得体会(通用5篇)  当在某些事情上我们有很深的体会时,可用写心得体会的方式将其记录下来...
护理学专业的心得体会 护理学专业的心得体会(通用13篇)  在平日里,心中难免会有一些新的想法,马上将其记录下来,这样有利...
工作心得体会感悟 工作心得体会感悟(通用18篇)  从某件事情上得到收获以后,往往会写一篇心得体会,如此就可以提升我们...
采购课程培训心得体会 采购课程培训心得体会范文(通用13篇)  我们心里有一些收获后,可以通过写心得体会的方式将其记录下来...
疫情期间做社区志愿服务心得 疫情期间做社区志愿服务心得  有了一些收获以后,写一篇心得体会,记录下来,这样可以帮助我们分析出现问...
被隔离人员心得体会 被隔离人员心得体会  我们有一些启发后,将其记录在心得体会里,让自己铭记于心,这么做可以让我们不断思...
从优秀到卓越读书心得 从优秀到卓越读书心得(通用18篇)  当阅读了一本名著后,大家心中一定有不少感悟,是时候静下心来好好...
小学生读书心得体会 小学生读书心得体会范文(精选10篇)  当我们受到启发,对生活有了新的感悟时,不妨将其写成一篇心得体...
教师学习心得体会 实用的教师学习心得体会(通用15篇)  我们得到了一些心得体会以后,往往会写一篇心得体会,它可以帮助...
档案管理的心得体会 档案管理的心得体会(精选11篇)  我们得到了一些心得体会以后,可以记录在心得体会中,这样我们就可以...
超市社会实践心得体会 超市社会实践心得体会范文(精选14篇)  我们在一些事情上受到启发后,可以寻思将其写进心得体会中,这...
保密工作心得 保密工作心得保密工作心得通过学习中央领导关于保密工作重要指示精神,了解到了保密工作在我们工作中的重要...
作风建设心得体会 作风建设心得体会(精选16篇)  当我们经过反思,有了新的启发时,可以记录在心得体会中,这样可以不断...