笔记二:MySQL语法上


这里可以通过进入终端或者使用一些软件进行学习,软件的话推荐Navicat。终端的话,通过win+R进入终端后输入mysql -u root -p后按回车输入前面安装时的密码就可以进入mysql下进行操作,退出 mysql可以使用 exit 命令

数据库和数据表

下面是对数据库的三个基本操作:

  • 创建MySQL数据库:CREATE DATABASE 数据库名;
  • 删除MySQL数据库:DROP DATABASE 数据库名;
  • 选择MySQL数据库:USE 数据库名;

选定数据库之后就可以创建相应的数据表,创建MySQL数据表需要的信息:表名、表字段名和定义每个表字段

  • 创建MySQL数据表:CREATE TABLE table_name (column_name column_type);

以下是一个基本示例:

CREATE TABLE IF NOT EXISTS `runoob_tbl`(
   `runoob_id` INT UNSIGNED AUTO_INCREMENT,
   `runoob_title` VARCHAR(100) NOT NULL,
   `runoob_author` VARCHAR(40) NOT NULL,
   `submission_date` DATE,
   PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

实例解析:

  • 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
  • AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
  • PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
  • ENGINE 设置存储引擎,CHARSET 设置编码。

对应的也有删除数据表的命令:

  • 删除MySQL数据表:DROP TABLE table_name;

插入数据

创建好数据表之后就可以使用通用的INSERT INTO SQL语法插入数据:

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

如果数据是字符型,必须使用单引号或者双引号,如:”value”。

查询数据

MySQL 数据库使用SQL SELECT语句来查询数据:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M];
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件
  • SELECT 命令可以读取一条或者多条记录
  • 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
  • 你可以使用 WHERE 语句来包含任何条件
  • 你可以使用 LIMIT 属性来设定返回的记录数
  • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0

更新数据

如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作:

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause];
  • 你可以同时更新一个或多个字段
  • 你可以在 WHERE 子句中指定任何条件
  • 你可以在一个单独表中同时更新数据

删除数据

你可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录:

DELETE FROM table_name [WHERE Clause];
  • 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除
  • 你可以在 WHERE 子句中指定任何条件
  • 您可以在单个表中一次性删除记录

LIKE子句

用于获取某个字段中含有特定字符的所有记录,SQL LIKE 子句中使用百分号 % 字符来表示任意字符,类似于UNIX或正则表达式中的星号 *****。如果没有使用百分号 **%**, LIKE 子句与等号 = 的效果是一样的

以下是 SQL SELECT 语句使用 LIKE 子句从数据表中读取数据的通用语法:

SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue';
  • LIKE 通常与 % 一同使用,类似于一个元字符的搜索
  • 你可以使用 AND 或者 OR 指定一个或多个条件
  • 你可以在 DELETE 或 UPDATE 命令中使用 WHERE…LIKE 子句来指定条件

UNION操作符

MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

MySQL UNION 操作符语法格式:

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
  • expression1, expression2, … expression_n: 要检索的列。
  • tables: 要检索的数据表。
  • WHERE conditions: 可选, 检索条件。
  • DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
  • ALL: 可选,返回所有结果集,包含重复数据。

排序

可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。

以下是 SQL SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据:

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]
  • 你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果
  • 你可以设定多个字段来排序
  • 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列
  • 你可以添加 WHERE…LIKE 子句来设置条件

GROUP BY语句

GROUP BY 语句根据一个或多个列对结果集进行分组,在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。

对应语法:

SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

如:SELECT name, COUNT(*) FROM employee_tbl GROUP BY name;


文章作者: 不才叶某
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 不才叶某 !
评论
  目录