Lesson 3:MySQL的表操作

目录

一、数据表的基本操作

1.1 创建表

1.2 查看数据库中有哪些表

1.3 查看指定的表结构

1.4 删除表

1.5 删除表和删除数据库的风险比较。

1.6 举例

二、表的增删改查

2.1 增加语句

2.2 查询语句

2.2.1 全列查询

2.2.2 指定列查询

2.2.3 查询字段为表达式

2.2.4 去重查询

2.2.5 排序

2.2.6 条件查询

2.2.7 分页查询

2.3 修改语句

2.4 删除语句

总结


一、数据表的基本操作

1.1 创建表

use 数据库名;
create table 表名(
    列名 类型,
    列名 类型,
    ~~~~
    列名 类型,
);

注意事项:

①在创建表前,需要先选择数据库。

②表名不能和SQL中的关键字冲突。如果非得使用,用反引号将表名引起来。

③使用()将所有列包裹起来,先列名再类型

1.2 查看数据库中有哪些表

show tables;

1.3 查看指定的表结构

desc 表名;

desc就是describe。

1.4 删除表

drop table 表名;

1.5 删除表和删除数据库的风险比较。

结论:删除表的风险更大。

原因:数据库中表很多,删除一旦执行,程序有可能没有用到被删除的表,程序不会第一时间报错,等发现表被删了,这时数据库就包含了一些错误的数据,就更难处理了。删除库会触发报警程序,程序员可以第一时间发现并处理。因此认为删除表的风险更大。

1.6 举例

 

二、表的增删改查

学习sql的目的主要是为了学习增删改查,即CRUD,分别对应create、retrieve、update、delete。

2.1 增加语句

--插入一条完整的数据
insert into 表名 values(列1的值,列2的值---列n的值);
--指定列插入
insert into 表名 (列1,列2,列3) values(列1的值,列2的值,列3的值);
--一次性插入多行数据
insert into 表名 values(列1的值,列2的值,列n的值),(列1的值,列2的值,列n的值);
insert into 表名 (列1,列2,列3) values(列1的值,列2的值,列3的值),(列1的值,列2的值,列3的值);

注意事项:

①插入中文得指定字符集

show variables like '%character%'; 查看当前的字符集

建议使用mysql中的utf8mb4,因为mysql中的utf8不完整,有些字符表示不了,如emoji表情。

②列的数目必须和插入的值的数目对应。

③指定列插入的情况下,有的列没有插入,就是默认值。

2.2 查询语句

2.2.1 全列查询

select * from 表名;

注意:

查询结果是一个“临时表”,仅仅是先在内存里存了一下,接下来就打印,打印完了就没了,不会持久化存储。

 

2.2.2 指定列查询

select 列名,列名 from 表名;

注意:

select不会修改磁盘数据,即不会影响数据库服务器磁盘上的原始数据。

2.2.3 查询字段为表达式

select 列之间的运算表达式 as 别名,列之间的运算表达式 from 表名;
select 列之间的运算表达式,常量 from  表名;
----举例
select name,math+chinese+english as total from score;
select name,math+10 from score;
select name,math,100 from score;

注意:

①表达式是指列之间的运算,如列1+列2,列1-列2等运算,也可以是列+常数。

②也可以给某个列直接指定一个常量,但是不建议这样写。

③ 使用as给运算表达式起别名。

④null运算后结果还是null。

2.2.4 去重查询

select distinct 列名,列名 from 表名;

注意:

如是是一个指定的列,把相同的记录给去重。如果是多个列,当这些列都相同的时候,才能视为一个重复记录。

2.2.5 排序

select 列名,列名(列名表达式) from 表名 order by 列名1 asc/desc,列名2 asc/desc;

注意:

①asc 升序,desc降序。默认升序。

②先根据列名1排序,列名1的值相等,在根据列名2的值排序。

2.2.6 条件查询

select语句+where+条件

运算符说明
<  <=  > >=小于、小于等于、大于、大于等于
=等于(不是赋值),null =null 的结果是null,相等于false
<=>等于,null <=>null的结果是true
!=  <>不等于
between a and b范围匹配,[a,b],注意是闭集
in(option,option)离散区间,判断是否在这几个选项中存在

is null

 判断是否为空值,不建议使用  = null 或者   <=>null
is not null
like

模糊查询,需要搭配通配符

%:代替任意多个的任意字符

_:代替一个的任意字符

数值也可使用模糊匹配,如'5%'

AND  OR NOT 逻辑运算符,先算and后算or

2.2.7 分页查询

limit a offset b ,其中,a是指限制查询结果的最大数目,b是指从第b+1条数据开始查询

当查询结果很多且一下子全部差出来,数据库磁盘IO和数据库客户端到服务器端的网络IO开销会很大。因此,在大部分情况下,不希望一下子就查询出这么多数据,用户也看不过来。通过分页查询可以限制一次查询返回的结果数目。

2.3 修改语句

update 表名 set 列名=值,列名=值 where 条件;

注意事项:

①也可以搭配order by 和limit使用。

②会修改数据库服务器硬盘的数据

③如果没有指定条件,修改就会对所有的记录生效。

④在使用时,一定要反复确认筛选条件。

2.4 删除语句

delete from 表名 where 条件;

注意:

①如果不加条件,就是删除整张表,一条一条的删除。

总结

主要写了表的一些基础的增删改查操作,其中查询操作最为复杂和重要。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刘减减

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

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

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

打赏作者

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

抵扣说明:

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

余额充值