SQL Notes


Structured Query Language Notes

SQL Introduction

  • SQL 是一种 ANSI (American National Standards Institute) 标准的计算机语言
  • 使用SQL 访问和处理数据库
  • SQL虽然是一门标准 但仍有不同版本的SQL 如MySQL等

在网站中使用SQL

  • RDBMS 程序
  • 服务端脚本语言
  • SQL获取数据
  • HTML/CSS

RDBMS

Rational Database Management System

关系型数据库管理系统

MS SQL Server \ IBM DB2 \ Oracle \ MySQL \ Microsoft Access

数据存储在的数据库对象中

表由相关的数据项集合而成 由行和列组成


SQL Grammar

eg.

use Dapao;
set names utf8;
SELECT * FROM Nice;
  • use Dapao 选择数据库
  • set names utf8 设置使用的字符集
  • SELECT * FROM Nice 读取数据表的信息

SQL语言对大小写不敏感

常用SQL命令

  • SELECT 提取信息
  • UPDATE 更新数据
  • DELETE 删除数据
  • INSERT INTO 插入数据
  • CREATE DATABASE 创建数据库
  • ALTER DATABASE 修改数据
  • CREATE TABLE 创建新表
  • ALTER TABLE 改变表
  • DROP TABLE 删除表
  • CREATE INDEX 创建索引
  • DROP INDEX 删除索引

SELECT

选取数据 结果存储在结果表中 成为结果表

select colunm_name,colunm_name
from table_name;
select * from table_name;

SELECT DISTINCT

只列出不同的值 相同的会被过滤掉 语法同SELECT


WHERE

WHERE 用于提取满足指定条件的记录

select column_name, column_name
from table_name
where column_name operator value;

value 部分如果是文字请使用引号括起来 数值不需要

运算符

运算符 描述
=
<> 部分版本的SQL中可写成 !=
>
>=
<=
BETWEEN 在某个范围内 where id between 10 and 30;
LIKE 搜索某种模式
IN 指定针对某个列的多个可能值
where id in (30,50,40); id为上述三个值的的内容

特殊运算符说明

where id between 10 and 30; 
where id in (2,5,7);
where id like 'M%';

between

包括上下限的值 即闭区间

下限在前 上限在后

in

寻找括号内相同的值的数据

like

模糊查询

  • % 表示多个字符
  • _ 表示一个字符
  • M% 查询以M开头的信息
  • %M% 包含M内容的
  • %M_ 查询以M在倒数第二位的所有内容

逻辑运算符

select * from nice where id > 20 and id < 50;
select * from nice where id > 444 or age > 50;
select * from nice where not id > 40;

优先级

() > not > and > or

特殊值 : null

ORDER BY

对于结果集按照一个或多个列进行排序

默认升序 可用DESC 进行降序排列

select column_name, column_name
from table_name
order by column_name,column_name ASC|DESC;

先以第一列的顺序进行排序 再按第二列的顺序

ASC DESC 仅和临近的列进行结合

order by A,B        这个时候都是默认按升序排列
order by A desc,B   这个时候 A 降序,B 升序排列
order by A ,B desc  这个时候 A 升序,B 降序排列

INSERT INTO

向表中插入新纪录

INSERT INTO table_name
VALUES (value1,value2,value3....);
INSERT INTO table_name (column1, column2, column3...)
VALUES (value1,value2,value3....);

UPDATE

update table_name
set column1=value1, column2=value2.....
where some_column=some_value;

Warning: where 子句控制哪些数据需要更新 如果忽略了where语句 所有的内容都将被更新

没有where 语句的update 需要慎重

MySQL 中可以通过设置 sql_safe_updates 参数强制性添加where参数

set_sql_safe_updates=1; 表示开启该参数

DELETE

删除表中的行

delete from table_name
where some_column=some_value;

Warning: where 子句控制哪些数据需要删除 如果忽略了where语句 所有的内容都将被删除

SELECT TOP

TBD



本文作者:Ge15emium
版权声明:本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!