MySQL.MySQL入门

Posted qq_51102350

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL.MySQL入门相关的知识,希望对你有一定的参考价值。

mysql

一,MySQL简介

DBMS:database manage system
MySQL即为一种数据库软件

MySQl是基于 客户机——服务器 的DBMS

服务器:负责数据处理(添加、删除和更新)和访问,运行在称为数据库服务器的计算机上
服务器为MySQL DBMS。可以在本地安装的副本上运行,也可连接到远程服务器上的副本

客户机:发出处理数据的请求
可以是:MySQL提供的工具,脚本语言,Web应用开发语言、程序设计语言(C++,JAVA)等。

二,客户机

着重介绍三个客户机

①mysql命令行

  • 命令输入在mysql>之后
  • 命令用;结束
  • 输入help获得相应帮助,如:输入help select 获得SELECT语句的使用帮助
  • 输入quit或exit退出

②MySQL Administrator
图形交互客户机之一

③MySQL Query Browser
图形交互客户机之二

三,使用MySQL

连接数据库:
为了连接到MySQL,需要以下信息:

  • 主机名,若连接本地MySQL服务器,为localhost
  • 端口,默认为3306
  • 用户名
  • 密码

SHOW、USE和DESCRIBE语句

了解数据库:

SHOW DATABASES;

选择数据库:

USE 数据库名;

若输出Database changed表示选择成功

了解某个数据库内的表:

SHOW TABLES;

了解表列:

SHOW COLUMNS FROM 表的名称;
DESCRIBE 表的名称;//两者等价


对每个字段返回一行
行中包含字段名、数据类型、是否允许NULL、键信息、默认值和其他信息(如auto_increment)

四,检索数据

①基本检索

SELECT语句

检索单个列:

SELECT 列名
FROM 表名;

SELECt 表名称.列名称
FROM 表名称;

SELECT 表名称.列名称
FROM 数据库名称.表名称

之后会显示该列的所有内容,内容未经排序

关于SQL语句和大小写的问题:
SQL语句不区分大小写
一种好的写法:对SQL关键字用大写,对列名和表名用小写

检索多个列:

SELECT 列名1,列名2,列名3
FROM 表名;

检索所有列:

SELECT *
FROM 表名;

检索不同的行:
DISTINCT关键字

有时,一个列中可能会有多个相同的值,此时使用DISTINCT将会返回仅不同的值。

SELECT DISTINCT 列名称
FROM 表名称;

限制结果:
LIMIT关键字

注意,表中行号从0开始

//返回前五行
SELECT 列名称
FROM 表名称
LIMIT 5;

//返回从行4开始的5行
SELECT 列名称
FROM 表名称
LIMIT 45;

//等价写法
SELECT 列名称
FROM 表名称
LIMIT 5 OFFSET 4

②排序检索

子句(clause)的概念

为一列排序:
升序使用ASC关键字,降序使用DESC关键字

SELECT 列名
FROM 表名
ORDER BY 列名;//默认升序排序

SELECT 列名
FROM 表名
ORDER BY 列名 DESC;//降序排序

其中的FROM 表名ORDER BY 列名就是所谓的子句。

按多个列排序:

SELECT 列名称1,列名称2,列名称3
FROM 表名称
ORDER BY 列名称1,列名称2 DESC;

关于该语句:首先按照列名称1升序排序,对于列名称1相同的行,将按照列名称2降序排序

寻找一个列中最高或最低的值:

SELECT 列名称
FROM 表名称
ORDER BY 列名称 DESC
LIMIT 1;

此时,将返回该列中最高的值
需注意子句的次序

五,详解WHERE子句

WHERE子句用于指定检索条件

①初识WHERE

SELECT 列名称1,列名称2
FROM 表名称
WHERE 列 运算符 值

运算符:= <>(!=) > < >= <= BETWEEN(在某个范围内)LIKE(以某种模式)

检查单个值:

注意:
文本值:用单引号或双引号环绕,不区分大小写
数值:不环绕

BETWEEN操作符:

SELECT 列名称1,列名称2
FROM 表名称
WHERE 列名称 BETWEEN 值一 AND 值二;

空值检查:
空值NULL
与字段包含0,空字符段或仅包含空格相区别

IS NULL子句

SELECT 列名称
FROM 表名称
WHERE 列名称 IS NULL

②组合WHERE子句

AND子句和OR子句
IN和NOT

AND:

SELECT 列名称1,列名称2
FROM 表名称
WHERE 条件一 AND 条件二

OR:

SELECT 列名称1,列名称2
FROM 表名称
WHERE 条件一 OR 条件二

使用圆括号分组操作符
AND操作符优先级高于OR

SELECT 列名称1,列名称2
FROM 表名称
WHERE (条件一 AND 条件二) OR (条件一 AND 条件二)

IN:

SELECT 列名称1,列名称2
FROM 表名称
WHERE 列名称 IN (值1,值2ORDER BY 列名称

IN功能与OR相当,如上列,将输出列中值为值1或值为值2的结果

NOT
用于对子句取反

SELECT 列名称1,列名称2
FROM 表名称
WHERE 列名称 IN (值1,值2ORDER BY 列名称

③通配符

通配符:用来匹配值的一部分的特殊字符

LIKE操作符:只有使用LIKE操作符,才能在搜索子句中使用通配符

搜索模式:由字面值、通配符或两者组合构成的搜索条件。

百分号(%)通配符:
%表示任意字符出现任意次数

例:

这里输出了所有name满足:首字母为m,中间为m,末尾为s的行
此例旨在说明%可以出现在搜索模式的任何地方

下划线(_)通配符
_ 仅匹配单个任意字符

④正则表达式

REGEXP关键字:告诉MySQL,把后面跟的作为正则表达式处理

SELECT 列名称
FROM 表名称
WHERE 列名称 REGEXP 正则表达式

将输出值中包含所给正则表达式的行
特别注意:

  • 对于转义字符,虽然大多数正则表达式为\\,但MySQL要求两个反斜杠(MySQL解释一个,正则表达式库解释另一个)
  • LIKE与REGEXP的区别,LIKE匹配的是整个值,但REGEXP仅需匹配值中的一部分

以上是关于MySQL.MySQL入门的主要内容,如果未能解决你的问题,请参考以下文章

C# 入门算法“冒泡排序“ 升序 降序 最大值 最小值 平均值

C# 入门算法“冒泡排序“ 升序 降序 最大值 最小值 平均值

php之快速入门学习-11(数组排序)

sql 升序降序排列

oracle 默认是升序还是降序

sql查询降序和升序的问题