MySQL基础语句

冷不防 2024-04-01 12:05 120阅读 0赞

0 写在前面

如今数据库可视化工具已经很强大了,往往只需要点开软件点击鼠标就可以完成很多操作。例如:Navicat Premium (收费,功能齐全。收费不过可以破解)、SQLyong、DBeaver等软件

虽然现在大多数情况下不需要手写SQL语句了,但是最基本的还是要会,起码能看懂是什么意思。

最近使用了SQL语句,所以记录一下。

1 数据库基本知识

本文使用有格式的编写器,例如:高亮的是SQL的语法,普通灰色字体的是个人自定义的语段。请注意识别。

在这里插入图片描述

创建数据库

  1. CREATE DATABASE database_name

删除数据库

  1. DROP DATABASE database_name

选择数据库

  1. USE database_name

2数据库表基本知识

创建数据表

  1. CREATE TABLE table_name (column_name column_type)

删除数据表

  1. DROP TABLE table_name

更新数据表信息

(1)添加表字段

  1. ALTER TABLE table_name ADD new_column DATATYPE

使用FIRST关键字可以将新增列的顺序调整至数据表的第一列

  1. ALTER TABLE table_name ADD new_column DATATYPE FIRST

使用AFTER关键字可以将新增列调整至数据表的指定列之后

  1. ALTER TABLE table_name ADD new_column DATATYPE AFTER old_column

(2)删除表字段

  1. ALTER TABLE table_name DROP old_column

(3)修改表字段类型

  1. ALTER TABLE table_name MODIFY column_name NEW_DATATYPE

(4)修改字段名称

  1. ALTER TABLE table_name CHANGE old_column_name new_column_name DATATYPE

3 操作数据基本知识

插入数据

  1. INSERT INTO table_name (column1, column2,column3...columnN)
  2. VALUES
  3. (value1, value2, value3...valueN);

查询数据

  1. SELECT column1, column2, column3...columnN FROM table_name

(1)使用*可以替代字段名,SELECT语句会返回表的所有字段

例:

  1.     SELECT * FROM table_name

(2)可以使用WHERE语句来包含任何条件

例:

  1. SELECT * FROM table_name WHERE column=1

(3)可以使用LIMIT属性设定返回的记录数

例:返回查询结果的前三条记录

  1. SELECT * FROM table_name LIMIT 3

例:返回查询结果的第三条记录

  1. SELECT * FROM table_name LIMIT 2,1
  2. 2指的是第几条数据(从0开始计数),1指的是从2开始返回几条数据)

(4)可以使用OFFSET指定开始查询的偏移量,默认情况下偏移量为0

例:

  1.     SELECT * FROM table_name LIMIT 2 OFFSET 3 等于 SELECT * FROM table_name LIMIT 2,3

更新数据

  1. UPDATE table_name SET column1=value1, column2=value2
  2. WHERE condition

删除数据

  1. DELECE FROM table_name
  2. WHERE condition

LIKE子句

LIKE子句中使用%号来表示任意字符,其的效果类似正则表达式中的*,如果没有使用%,那么LIKE的效果等价于=

  1. SELECT * FROM table_name
  2. WHERE column1 LIKE %condtion%

UNION

  1. SELECT column1, column2, column3...columnN FROM table_a
  2. [WHERE condition]
  3. UNION [ALL | DISTINCT]
  4. SELECT column1, column2, column3...columnN FROM table_b
  5. [WHERE condition]

NION的作用的连接两个查询结果集

DISTINCT的作用是对两个结果集进行去重处理,默认情况下已经是DISTINCT的结果了

ALL的作用的不对两个结果集进行去重处理

ORDER BY

  1. SELECT * FROM table_name
  2. ORDER BY column1 [ASC | DESC]

ASC:将结果集按column1升序排列,默认情况下使用升序排序

DESC:将结果集按column1降序排列

GROUP BY

把数据按照指定列(可以是一列或者多列)进行分组,通常和计算函数COUNT()还有SUM(),AVG()等求值函数一起使用

把数据按照指定列(可以是一列或者多列)进行分组,通常和计算函数COUNT()还有SUM(),AVG()等求值函数一起使用

例:根据column1将数据进行分组,并且统计每种数据的记录数

  1. SELECT column1, COUNT(*) FROM table_name
  2. GROUP BY column1
  3. WITH ROLLUP可以将GROUP BY的统计结果集基础上再做相同的统计(SUMAVG....)

4操作多个表查询

INNER JOIN

INNER JOIN被称为内连接或者等值连接,获取两个表中字段匹配关系的记录

LEFT JOIN

LEFT JOIN被称为左连接,获取左边所有记录,右表没有的记录补为NULL

RIGHT JOIN

RIGHT JOIN被称为右连接,获取右边所有数据,左表没有的记录补为NULL

05 大小写问题

在使用sql语句的时候,

SQL 关键字和函数名 SQL 的关键字和函数名不区分大小写。

MySQL 在 Windows 系统下不区分大小写,但在 Linux 系统下默认区分大小写。因此,数据库名、表名和字段名,都不允许出现任何大写字母,避免节外生枝。

发表评论

表情:
评论列表 (有 0 条评论,120人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQL基础语句

    0 写在前面 如今数据库可视化工具已经很强大了,往往只需要点开软件点击鼠标就可以完成很多操作。例如:Navicat Premium (收费,功能齐全。收费不过可以破解)、