【MySQL从小白到高手】第二篇:数据表的操作~和基础的增删改查

本文详细介绍了MySQL中数据表的操作,包括数据表类型、创建表、查看表、查看表结构、删除表以及注释。同时讲解了SQL的基础操作,如增删改查,特别是插入数据和查询语句的各种用法,包括全列查询、指定列查询、去重、排序和条件查询等。
摘要由CSDN通过智能技术生成

目录

本节目标

一、数据表的操作

①MySQL管理数据的方式

②数据表类型

③创建表

④查看表

⑤查看表结构

⑥删除表

⑦注释

二、增删改查

1. 新增,insert 往表里面插入数据~

 2.查找语句

①最基础的查找,全列查找,直接把一个表的所有列,和所有行都查询出来~~

 ②指定列查询~只查询自己关注的列

③指定查询字段为表达式~

 ④查询字段指定别名

 ⑤针对查询的结果去重~~

⑥ 排序~针对查询结果(临时表)进行排序(不会影响到数据库服务器上的原始数据的)

⑦ 排序也可以依据表达式或者别名来进行排序~~

 ⑧排序的时候还可以通过order by来指定多个列进行排序~~先根据第一个列进行排序,如果第一列结果相同,相同的结果再通过第二列排序.....

⑨ select中的条件查询


本节目标

1.数据表的操作~

2.增删改查基础部分

一、数据表的操作

①MySQL管理数据的方式

看图:

一个数据库中可以有很多个数据表

每个数据表有很多行,每一行称为是一条"记录".

每一行又有很多列,每一列称为一个"字段".

MySQL这样的数据库,就是要求每一行这里的列都是一致的~~

例:第一行是三列,第二行就也是三列......每一行都是三列

第一行的第一列是一个整数,第二行的第一列就也是一个整数......第一行的第二列是一个字符串,第二行的第二列就也是一个字符串.......

为了描述这个数据表中列的信息,在创建数据表的时候,就需要指定"表头"(表头就是一个表格第一行的那个描述信息)

看图:

但是不是所有的数据,都是按照表格的方式来组织数据的~~

MySQL、Oracle、SQL server 都是按照表格来组织,称为"关系型数据库"

Redis、HBase、MongoDB 不要求按照表格方式组织(类似于文档/键值对),称为"非关系型数据库"

 

②数据表类型

在创建表之前,要先简单认识一下MySQL中的数据类型~~

数值类型:

整型:

BIT[ (M) ]   M指定位数,默认为1

TINYINT   1字节

SMALLINT   2个字节

INT   4个字节

BIGINT   8个字节

浮点型:

FLOAT(M  D) M指有效数字的长度  D指定小数位数

DOUBLE(M  D)

DECIMAL(M  D) 能够精确的表示小数

 字符串类型:

VARCHAR(SIZE) 可变长度字符串,SIZE单位是字符.可以根据实际需要,来指定要用多少空间

TEXT 长文本数据

MEDIUMTEXT 中长度文本数据

BLOB 二进制形式的长文本数据

日期类型:

DATETIME  8字节 

TIMSTAMP   4字节

如果尝试插入的数据格式不符合要求,就直接提示咱们了~~ 

③创建表

create  table  表名  (列名  类型,  列名  类型......);

在进行表操作之前,要先选中数据库.

在指定的时候,列名在前,类型在后~ 

④查看表

show tables;

操作的前提,也是得先选中数据库~~

 

⑤查看表结构

desc 表名;

查看某个表里面有几列,每一列都是啥类型,每一列是啥名字,每一列其他补充信息~~

⑥删除表

drop table 表名;

删除表操作,也是一个非常危险的操作!!!

谨慎对待!!!一旦删除之后,可能无法恢复

⑦注释

coment"姓名"

创建表的时候,可以使用coment来给某个列后面加上注释~~(局限于建表的时候使用)

--删除表

这个是咱们更普遍使用的注释~~

--空格(如果少了空格是非法的)和Java中的//类似,都是表示这一行就是注释了 

补充小知识:

在代码中表示"钱"一般有两种方式:

1.使用Decimal/BigDecimal

2.使用 int (单位是分即可) 

在cmd里面,Ctrl+C表示中断当前的输入(一个SQL输入一般,你不想要了,重新输入就直接Ctrl+C) 

二、增删改查

C U R D

C创建

U修改

R查询

D删除 

1. 新增,insert 往表里面插入数据~

insert into 表名 values (列的值,可以有若干个);这里的一个括号,就对应到一条记录

insert进行插入的时候,可以只插入其中的某一列或者某几列,此时其他的列将采用默认值~

insert也可以一次插入多个行~

values后面的每个()都对应到一行,可以一次性的带有多个(),多个()之间使用逗号来分割

注意事项:

1.要求values 后面 () 中的字段的个数和表头约定的列数以及每个列的类型,要匹配~~

2.在SQL中表示字符串,可以使用单引号,也可以使用双引号~

3.如果某一列是datetime,此时如何进行插入?

①通过指定格式的字符串来插入一个指定时间

②通过now()函数来插入一个当前系统时间

 2.查找语句

查找语句是SQL中最核心也最复杂的操作~~

①最基础的查找,全列查找,直接把一个表的所有列,和所有行都查询出来~~

select * from 表名;

*就是通配符,表示一个表的所有列~~

通过select * from就能把一个表里面所有的行和所有的列都查找到~

查找的结果是一个“临时表”

select操作,不会影响到服务器这边硬盘上保存的数据~~

 ②指定列查询~只查询自己关注的列

select 列名(可以有多个)from 表名;

这里在查询的时候会显示的告诉数据库要查的是那些列,数据库就会有针对性的进行返回数据了~

③指定查询字段为表达式~

在查询的时候,同时进行一些运算操作~~列和列之间)

举例1:

查询结果中的英语成绩比真实的多10分

举例2:

查询一下每个同学的总分~(语文+数学+英语)

 ④查询字段指定别名

相当于是给查询结果的临时表,指定新的列名~~

 ⑤针对查询的结果去重~~

关键字distinct

针对查询的结果,把重复的记录去掉~

如果是针对多个列来进行去重,就得这多个列的值都相同的时候才视为重复~~

⑥ 排序~针对查询结果(临时表)进行排序(不会影响到数据库服务器上的原始数据的)

select 列名......from 表名 order by 列名 asc(升序排序)/desc(降序排序);

asc如果省略不写,也是默认升序

有的数据库记录中是带有NULL值的,像这样的NULL认为是最小的~~(升序就排在最前面,降序就排在最后面)

⑦ 排序也可以依据表达式或者别名来进行排序~~

通过别名来排序

 ⑧排序的时候还可以通过order by来指定多个列进行排序~~先根据第一个列进行排序,如果第一列结果相同,相同的结果再通过第二列排序.....

先按照数学排序,如果数学成绩相同,再按照语文排序

多个列排序的时候是有明确优先级的~~

如果不指定多个列的话,只有制定一个列,此时如果结果相同,彼此之间的顺序都是不可预期的~~

⑨ select中的条件查询

在select的后面加上一个where字句,后面跟上一个具体的筛选条件

select 列名 from 表名 where 条件

举例1:

查询英语不及格的同学及英语成绩(<60分)

 

举例2:

查询英语成绩好于语文成绩的同学

举例3:

查询总分在200分以下的同学

举例4:

查询语文成绩大于80,并且英语成绩大于80分的同学

举例5:

查询语文成绩在[80,90]分的同学及语文成绩

这两种写法本质上没有啥区别

举例6:

查询数学成绩是58或者59或者98或者99分的同学及数学成绩

只要数学成绩是()中的任意的值,都可以被查询出来

也可以通过or这样的写法,来实现类似的效果~

 

  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

K稳重

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值