SQL的基础操作(入门)

131 阅读3分钟
  • SELECT - 从数据库中提取数据
  • SELECT column1, column2, ...
  • FROM table_name;
  • column代表要选择的字段名称,可以有多个字段;用   *    代表所有字段

SQL SELECT DISTINCT 语句

在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。

DISTINCT 关键词用于返回唯一不同的值。

SQL WHERE 子句

WHERE 子句用于提取那些满足指定条件的记录。

SQL WHERE 语法

SELECT column1, column2, ...

FROM table_name

WHERE condition;

下面的运算符可以在 WHERE 子句中使用:

运算符描述
=等于
<>不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE搜索某种模式
IN指定针对某个列的多个可能值

AND和OR 在sql语句中等同于&& 和 ||

ORDER BY语法

SELECT column1, column2, ...

FROM table_name

ORDER BY column1, column2, ... ASC|DESC;

ASC:表示升序排列

DESC:表示降序排列

SELECT TOP 子句用于规定要返回的记录的数目。

SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。

MySQL 语法

SELECT column_name(s)

FROM table_name

LIMIT number;

LIKE操作

SELECT column1, column2, ...

FROM table_name

WHERE column LIKE pattern;

其中pattern为搜索模式

在 SQL 中,通配符与 SQL LIKE 操作符一起使用。

SQL 通配符用于搜索表中的数据。

在 SQL 中,可使用以下通配符:

通配符描述
%替代 0 个或多个字符
_替代一个字符
[charlist]字符列中的任何单一字符
[^charlist]或[!charlist]不在字符列中的任何单一字符

MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。

IN 操作符允许您在 WHERE 子句中规定多个值

SELECT column1, column2, ...

FROM table_name

WHERE column IN (value1, value2, ...);

BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。

SQL BETWEEN 语法

SELECT column1, column2, ...

FROM table_name

WHERE column BETWEEN value1 AND value2;

如需显示不在上面实例范围内的网站,请使用 NOT BETWEEN

SQL 别名

使用AS  AS前为原始名字,AS后为别名

SELECT w.name, w.url, a.count, a.date

FROM Websites AS w, access_log AS a

WHERE a.site_id=w.id and w.name="菜鸟教程";

如果不使用AS则

SELECT Websites.name, Websites.url, access_log.count, access_log.date

FROM Websites, access_log

WHERE Websites.id=access_log.site_id and Websites.name="菜鸟教程";

在下面的情况下,使用别名很有用:

  • 在查询中涉及超过一个表

  • 在查询中使用了函数

  • 列名称很长或者可读性差

  • 需要把两个列或者多个列结合在一起

  • UPDATE - 更新数据库中的数据

UPDATE table_name

SET column1 = value1, column2 = value2, ...

WHERE condition;

注意!!!不加WHERE就会导致所有的数据都被修改

DELETE - 从数据库中删除数据

DELETE FROM table_name

WHERE condition;

如果没有WHERE,自会删除表中所有行,但会保存表的结构、属性、索引不变

  • INSERT INTO - 向数据库中插入新数据 INSERT INTO table_name (column1,column2,column3,...)

VALUES (value1,value2,value3,...);

其中列名可有可无

  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引