数据库软件。
MYSQL、Oracle、以及Microsoft SQL Server等数据库是基于客户机-服务器的数据库。服务器部分是负责所有数据访问和处理的一个
软件。与数据文件打交道的只有服务器软件。关于数据、数据添加、删除和数据更新的所有请求都由服务器软件完成。
客户机是与用户打交道的软件。客户机可以是MySql提供的工具、脚本语言、web应用开发语言(ASP,ColdFusion、JSP、PHP)
程序设计语言(c,c++,java)等
可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
查询和更新指令构成了 SQL 的 DML 部分:
- SELECT - 从数据库表中获取数据
- UPDATE - 更新数据库表中的数据
- DELETE - 从数据库表中删除数据
- INSERT INTO - 向数据库表中插入数据
SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
SQL 中最重要的 DDL 语句:
- CREATE DATABASE - 创建新数据库
- ALTER DATABASE - 修改数据库
- CREATE TABLE - 创建新表
- ALTER TABLE - 变更(改变)数据库表
- DROP TABLE - 删除表
- CREATE INDEX - 创建索引(搜索键)
- DROP INDEX - 删除索引
连接:为了连接到mysql,需要以下信息:
1、主机名(计算机名)——如果连接到本地MYSQL服务器,为localhost
2、端口(如果使用默认端口3306之外的端口)
3、一个合法的用户名
4、用户指令(如果需要)
选择数据库 use *
SELECT * FROM 表名称
指示Mysql返回不同的值 DISTINCT
返回前几行 LIMIT
对输出进行排序 ORDER BY
ORDER BY DESC(降序)
根据指定的搜索条件进行过滤 WHER
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
WHERE * BETWEEN * AND *
指定条件范围:IN()、 NOT IN()
LIKE操作符 :表示后面跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较
百分号(%):表示任何字符出现的任意次数。
下划线(_):表示只匹配单个字符而不是多个字符
正则表达式的作用是匹配文本,将一个模式(正则表达式)与一个文本进行比较。
(需要学习一下正则表达式)
计算字段是运行在时在SELECT语句内创建的。字段(field)是与列(column)的意思相近,不过数据库
列一般称为列,而术语字段通常在计算字段的连接上。
拼接(concatenate)将值联结到一起构成单个值
解决方法是将两个列拼接起来。在mysql的select中,可使用Contact()函数来拼接两个列。
Contact()拼接串,即把多个串连接起来形成一个较长的串。
Contact()需要一个或多个指定的串,各个串之间用逗号分隔。
别名是一个字段或值的替换名,别名用AS关键字赋予。
大多数SQL实现支持以下类型的函数
1、用于处理文本串的文本函数
2、用于在数值数据上进行算术操作
3、用于处理日期和时间并从这些值中提取特定成分的日期和时间函数
4、返回DBMS正使用的特殊信息的系统函数
文本函数
Upper():将文本转换为大写
日期和时间处理函数
Date()
分组:
GROUP BY:
HAVING:过滤分组
WHERE:过滤行
使用子查询
SQL最强大的功能之一就是能在数据检索查询的执行中联结(join)表。联结是利用
SQL的SELECT能执行的最重要的操作。
因为相同数据出现多次绝不是一件好事,次因素是关系数据库设计的基础。关系表的设计
就是要保证把信息分解成多个表。一类数据一个表,各表通过某些常用的值(即关系设计
中的关系)互相关联。
外键:外键为某个表中的一列,它包含另一个表的主键值。关系数据可以有效地存储和方便
地处理,因此,关系数据库的可伸缩性(能够适应不断增加的工作量而不失败)远比非关系数据库要好。
内部联结:等值联结
自联结
外部联结:许多联结将一个表中的行与另外一个表中的行相关联,但有时候会需要
包含没有关联行的那些行。
左联结:如果左表的某行在右表中没有匹配行,则在相关联的结果集中右表的所有选择列表均为空值。
右联结:如果右表的某行在左表中没有匹配行,则在相关联的结果集中左表的所有选择列表均为空值。
组合查询:多数SQL查询都只包含从一个或多个表中返回数据的单条SELECT语句。MYSQL也允许执行多个查询。
并将结果作为单个查询结果集返回。这些组合查询通常称为并(union)或复合查询。
有两种基本情况,其中需要使用组合查询:
在单个查询中从不同的表返回类似结构的数据;
对单个表执行多个查询,按单个查询返回数据。
使用全文本搜索:(这边没有细看)
INSERT是用来插入(或添加)行到数据库表的,插入可以用以下几种方式使用:
插入完整的行;
插入行的一部分;
插入多行。
插入某些查询的结果。
INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
更新和删除数据
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
DELETE FROM 表名称 WHERE 列名称 = 值