MySQL基本语句操作的总结


本文摘自PHP中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于MySQL基本语句操作的总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

数据库操作语句

推荐课程:MySQL教程

  • 创建
    create database 数据库名

  • 查看所有数据库
    show databases。

  • 查看指定数据库建表语句及字符集
    show create database 数据库名

  • 删除数据库
    drop database 数据库名

  • 修改数据库字符集-了解
    alter database 数据库名 character set ‘字符集’

  • 切换数据库
    use 数据库名

  • 查看当前数据库名称
    select database();

数据表结构的增删改查
有了数据库之后,想保存数据,必须在数据库中先有数据表。

  • 创建数据表:
    use 数据库名

  • 查看表:
    show tables;查看该数据库的所有表
    desc 表名;查看表的列的信息(表结构)

  • 单表创建时约束
    为了防止重名,保障存储在数据表中的数据完整和有效性。
    约束常用语法:列名 数据类型 约束条件
    一张表中只能有一个主键:id int primary key auto_increment

  • 数据表结构删除:可以对表名、列名、类的类型、类的约束条件进行增删改。
    增加列:alter table 表名 增/删/改 列名 类型(长度) 约束;
    修改列类型、长度和约束:alter table 表名 modify 列名 类型(长度) 约束;
    修改现有列名称:alter table 表名 change 旧列名 新列名 类型(长度) 约束;
    修改现有列:alter table 表名 drop 列名 ;
    修改表名:rename table 旧表名 to 新表名;
    修改表的字符集:alter table 表名 character set 编码集;
    数据表删除:drop table 表名;

  • 数据表小结
    数据表创建(重要)
    create table 表名(
    列名 数据类型 约束 ,
    列名 数据类型 约束 约束,
    ………
    );
    查看表
    show tables:查看所有的表
    show create table 表名: 查看建表语句以及字符集
    desc 表名:查看表结构。
    修改表的语句(了解)
    alter table 表名(add|modify|drop|change) 列名 类型(长度) 约束。
    rename table 旧表名 to 新表名
    删除表
    drop table 表名

简单数据表内容的增删改查(很重要)

  • insert语句――数据记录的增加
    CRUD:create、read/retrieve、update、delete
    在Java代码中对数据库操作最频繁的就是对表中数据的CRUD操作。
    数据的存储位置:表。

方式一:全写
语法:insert into 表名 (列名,列名,列名…) values (值,值,值…);
注意:

1、值与列一一对应。有多少个列,就需要写多少个值。如果某一个列没有值。可以使用null。表示插入空。
2、值的数据类型,与列被定义的数据类型要相匹配。并且值的长度不能够超过定义的列的长度。
3、字符串:插入字符类型的数据,必须写单引号。在mysql中,使用单引号表示字符串。
4、date 时间类型的数据也可以直接使用单引号表示: ‘yyyyMMdd’ ,’yyyy-MM-dd’,’yyyy/MM/dd’ 。
5、在插入数据的时候, 如果某些列可以为null, 或者是自动增长的列, 或者有默认值的, 在插入的时候可以省略. 或者编写null, 实现自动增长.
6、如果给表中的所有列插入数据, 这时可以省略表后面的列名, 直接写values.

使用select*from 表名――查看该表所有信息。

方式二:省略部分列
某一列有默认值,或者允许空,才可以省略。
主键是自增长的认为是有默认值的,也可以省略。

方式三:省略所有列
语法:insert into 表名 values(值,值,值);

  • update语句――修改表记录
    语法:update 表名 set 列名=值,列名=值…[where 条件语句];
    中括号不是语法内容,在这里表示这个条件语句可加可不加。
    注意事项:
    1、如果不加条件,将会修改某一列的所有值。
    2、一般修改数据时,都需要增加条件。
    多个列使用逗号隔开。

eg:将所有人的年龄修改为20岁
update user set age=20;
eg:将姓名为张三的人年龄改为18岁
update user set age=18 where name=“张三”;

  • delete语句――删除表中数据的语句
    语法:delete from 表名 [where 条件语句]
    如果没有where,删除表中所有数据
    delete删除的是行。

  • Truncate语句――删除数据
    语法:truncate table 表名;
    先删除表,再创建表,就相当于将数据全部删除了。
    就性能来讲:truncate table 的性能更好。

数据记录增删改小结:
新增:
insert into 表名 values(值,值,值……)
insert into 表名(列名1,列名2,列名3….) values(值1,值2,值3……)
insert into 表名(列名2,列名4,列名5….) values(值2,值4,值5……)

修改:
update 表名 set 列名=值,列名=值 where 条件

删除:
delete from 表名 where 条件
如果不加where 条件,就是删除所有的数据。

删除:清空数据
truncate table 表名
通过删除整张表之后再重新创建一张表来达到清空数据的目的。

delete 和 truncate的区别是delete删除的数据在事务管理的情况下还能恢复,而truncate则不能恢复。

SQL中的聚合/聚集函数
聚合函数:多个数据进行运算,运算出一个结果。
例如:求和、平均值、最大值、最小值。
SQL语言中定义了部分函数可以实现这些操作。
在这里插入图片描述count函数――统计记录数(统计行数)
语法:select count() | count(列名) from 表名
select count(
) from 表名: 统计表中的行数。

sum求和函数
语法:select sum(列名) from 表名;
select sum(列名) from 表名 where 条件

avg函数――平均值
语法: select avg(列名) from 表名;

max/min 最大值/最小值
select max(列名),min(列名) from 表名

group by 分组查询****
按照某一列或者某几列。把相同的数据,进行合并输出。
select … from … group by 列名;

说明:其实就是按列进行分类,然后可以对分类完的数据使用聚集函数进行运算。
注意事项:
1、聚合函数:分组之后进行计算;
2、通常 select的内容:a 被分组的列,b 聚合函数。
3、如果遇到这种情况 按照 每种,每个。 类似的这些语句的时候,通常会使用分组。
4、如果使用group by 对数据进行分组之后还要过滤。这时一般不能使用where,因为where关键字的后面不能跟上面讲解的这些函数。如果需要在过滤的条件中加上述的函数,只能使用having关键字。
5、where 后不能跟 聚合函数,having中可以跟 聚合函数。

group by 列名 having 条件
分组之后加过滤条件。

where 和 having 的区别。
1、having 通常与group by 分组结合使用。

2、having 可以书写聚合函数 (聚集函数出现的位置: select 之后,group by … having 之后)where 不可以。
也就是说Where后面的条件having后都可以有,having后跟的条件where后不一定能跟

3、where 是在分组之前进行过滤的。having 是在分组之后进行过滤的。
查询时,如非必要,用where的效率更高,因为先将数据筛选之后再进行其他条件判断。

说明 : select … from … where 条件1 … gropu by … having 条件2 order by

条件1 会先执行过滤
进行分组
条件2进行过滤

select语句的执行顺序与查询小结:
查询关键字的出现顺序是固定的

select …要显示的内容… from …表名… where 条件…. group by …分组的列 …having …分组后的条件… order by …排序
select …5… from …1… where …2… group by …3…having …4… order by …6.

1

2

3

4

5

select product,sum(price) as总价 from orders

    where price>10

        group by product

            having 总价>30

                order by 总价 asc;

在这里插入图片描述查询的执行顺序

  1. from : 表名

  2. where:条件过滤
    (定义别名)

  3. group by : 分组
    (聚合函数执行)

  4. having : 分组之后进行过滤。

  5. select :执行完毕之后,查询内容。

  6. order by : 排序输出显示.

以上就是MySQL基本语句操作的总结的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

mysql数据库的还原与恢复以及导入操作

mac下mysql环境搭建的步骤详解

mysql里面字段是什么意思?

关于mysql触发器的问题

mysql8.0.19安装教程

史上最全mysql使用规范分享

mysql能存储多少条数据

怎么改mysql数据库的名字

mysql中关于超长自动截断的案例详解

mysql 详细单表增删改查crud语句

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...