MySQL.MySQL入门
Posted qq_51102350
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 4,5;
//等价写法
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,值2)
ORDER BY 列名称
IN功能与OR相当,如上列,将输出列中值为值1或值为值2的结果
NOT
用于对子句取反
SELECT 列名称1,列名称2
FROM 表名称
WHERE 列名称 IN (值1,值2)
ORDER BY 列名称
③通配符
通配符:用来匹配值的一部分的特殊字符
LIKE操作符:只有使用LIKE操作符,才能在搜索子句中使用通配符
搜索模式:由字面值、通配符或两者组合构成的搜索条件。
百分号(%)通配符:
%表示任意字符出现任意次数
例:
这里输出了所有name满足:首字母为m,中间为m,末尾为s的行
此例旨在说明%可以出现在搜索模式的任何地方
下划线(_)通配符
_ 仅匹配单个任意字符
④正则表达式
REGEXP关键字:告诉MySQL,把后面跟的作为正则表达式处理
SELECT 列名称
FROM 表名称
WHERE 列名称 REGEXP 正则表达式
将输出值中包含所给正则表达式的行
特别注意:
- 对于转义字符,虽然大多数正则表达式为\\,但MySQL要求两个反斜杠(MySQL解释一个,正则表达式库解释另一个)
- LIKE与REGEXP的区别,LIKE匹配的是整个值,但REGEXP仅需匹配值中的一部分
以上是关于MySQL.MySQL入门的主要内容,如果未能解决你的问题,请参考以下文章