MySQL基础

Mysql介绍

  • MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (关系数据库管理系统) 应用软件之一。
  • MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
  • MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。
  • MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL 作为网站数据库。

步入整体

mysql的information_schema数据库

为了方便管理,默认定义了information_schema数据库,用来存储数据库元信息。其中具有schemata、tables、colums表,功能如下:

  1. schema表中,schema_name存储数据库名
  2. tables表中,table_schema(数据库名)、table_name(表名)。
  3. colmns表中,table_schema(数据库名)、table_name(表名)、column_name(字段名)。

创建数据库

语法:CREATE DATABASE 数据库名;
演示:CREATE DATABASE 数据库名

删除数据库

语法: DROP DATABASE 数据库名;
演示:DROP DATABASE 数据库名;

选择数据库

语法:USE 数据库名;
演示:use 数据库名
注:所有数据库名、表明、表字段都是区分大小写的。

Mysql数据类型

数值类型
数值类型
日期和时间类型
日期和时间类型

字符串类型
字符串类型

创建数据表

语法:CREATE TABLE table_name (column_name column_type);
展示:在这里插入图片描述
注:not null设置字段不能为空;
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔
ENGINE 设置存储引擎,CHARSET 设置编码。

删除数据表

语法: DROP TABLE table_name ;
展示:在这里插入图片描述

插入数据

语法:

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

展示:在这里插入图片描述

查询数据

语法:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]

注:

  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
  • LIMIT 属性来设定返回的记录数。
  • 可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

UPDATE语句

语法:

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]

注:有些字段不能更改,比如id被设置为auto_increment

DELETE 语句

语法:DELETE FROM table_name [WHERE Clause]
注:如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。

like

like通常与%一起使用
举例:

  • ‘%a’ //以a结尾的数据
  • ‘a%’ //以a开头的数据
  • ‘%a%’ //含有a的数据
  • a’ //三位且中间字母是a的
  • ‘_a’ //两位且结尾字母是a的
  • ‘a_’ //两位且开头字母是a的

Union

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

语法:

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

注:

  • distinct表示删除结果中重复的数据(union语句默认删除重复数据)
  • all表示返回所有结果,包含重复的数据

排序

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

语法:

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]

注:

  • 默认按照ASC(升序),可以改为DESC(降序)
  • 可以使用 order by 1; ‘1’表示select 选择结果中的第一列

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;

注:

  • WITH ROLLUP可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)
    如:SELECT name, SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
  • 使用 coalesce 来设置一个可以取代 NUll 的名称
    select coalesce(a,b,c);如果a==null,则选择b;如果b==null,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null(没意义)。
    如:SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;

持续更新中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值