SQL教程

SQL简介

SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。


在您的网站中使用 SQL

要创建一个显示数据库中数据的网站,您需要:

  • RDBMS 数据库程序(比如 MS Access、SQL Server、MySQL)

  • 使用服务器端脚本语言,比如 PHP 或 ASP

  • 使用 SQL 来获取您想要的数据

  • 使用 HTML / CSS ,不区分大小写


    RDBMS

    • RDBMS 指关系型数据库管理系统,全称 Relational Database Management System。

    • RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server、IBM DB2、Oracle、MySQL 以及 Microsoft Access。

    • RDBMS 中的数据存储在被称为表的数据库对象中。

    • 表是相关的数据项的集合,它由列和行组成。

SQL select

从 "Websites" 表中选取 "name" 和 "country" 列:

SELECT name,country FROM Websites;

SELECT * FROM Websites:选取所有列

SQL select distinct

SELECT DISTINCT country FROM Websites;去掉 "country" 列重复值:

SQL where

从 "Websites" 表中选取国家为 "CN" 的所有网站:

SELECT * FROM Websites WHERE country='CN';

数值字段,不使用引号。

SELECT * FROM Websites WHERE id=1;

运算符:= <> > < >= <= between 在某个范围内

like 搜索某种模式 in 指定针对某个列的多个可能值

SQL AND & OR

SELECT * FROM Websites WHERE country='CN' AND alexa > 50;

SELECT * FROM Websites WHERE country='USA' OR country='CN';

SELECT * FROM Websites WHERE alexa > 15 AND (country='CN' OR country='USA');

SQL order by 对结果集按照一个列或多个列,默认按升序进行排序

SELECT * FROM Websites ORDER BY alexa;

SELECT * FROM Websites ORDER BY alexa DESC; 降序

SELECT * FROM Websites ORDER BY country,alexa;

SQL insert into向表中插入新记录 id自动更新

INSERT INTO Websites (name, url, alexa, country) VALUES ('百度','https://www.baidu.com/','4','CN');

SQL update更改表中已存在的记录

UPDATE Websites SET alexa='5000', country='USA' WHERE name='菜鸟教程';

执行没有 WHERE 子句的 UPDATE应用到所有

SQL delete

DELETE FROM Websites WHERE name='Facebook' AND country='USA';

DELETE FROM Websites ;删除所有


SQL高级教程

1. SELECT TOP,LIMIT,ROWNUM规定要返回的记录的数目。

  • SQL Server/MS Access语法
  • SELECT TOP number|percent column_name(s) from table_name;

  • MySQL语法
  • SELECT column_name(s) from table_name limit number;

  • SELECT * from persons limit 5;

  • Oracle语法
  • SELECT column_name from table_name where rownum<=number;

  • SELECT TOP 50 percent * from websites; 百分比为参数

2. LIKE 在 WHERE 子句中搜索列中的指定模式。

SELECT col from tab where col like pattern;

3. 通配符

通配符 描述
% 替代0个或多个字符
- 替代一个字符
[charlist] 字符列中任何单一字符
[^charlist] 不在字符列中任何单一字符
  • select * from web where url like 'https%'; 以……开头
  • select * from web where url like '%oo%'; 包含00
  • select * from web where url like '_oogle'; 任意开始接oogle

(NOT) REGEXP操作正则表达式

select * from web where name REGEXP '^[GFs]'; 以G或F或s开头

select * from web where name REGEXP '^[^GF]'; 不以G或F开头

4. IN

select col from tab where col in(value1,value2,…)

5. BETWEEN

  • select col from tab where col (not) between value1 and value2;
  • select * from web where() and country not in ('USA');
  • select * from web where name between 'A' AND 'H'; name以字母开头

6.别名

  • select col as exp from tab; 列的别名
  • select cols from tab as exp; 表的别名
  • select CONCAT(url,',',alexa,',',country) as site_info from web; 结合三列
  • select w.name,w.url,a.count,a.date from web as w,access as a where a.siteid=w.id and w.name=www ; 别名化简SQL语句

7.SQL连接(JOIN)

LEFT/RIGHT/INNER/OUTER JOIN

  • SELECT web.name,access.count,access.date from web INNER JOIN access ON web.id=access.siteid ORDER BY access.count
  • SELECT col FROM tab1 LEFT JOIN tab2 ON tab1.name=tab2.name 从左表(table1)返回所有的行,如果右表中没有匹配,则结果为 NULL。
  • SELECT col FROM tab1 RIGHT JOIN tab2 ON tab1.name=tab2.name
  • SELECT col FROM tab1 FULL OUTER JOIN tab2 ON tab1.name=tab2.name 只要tab1和tab2其中一个表存在匹配则返回行

8.UNION合并两个或多个 SELECT 语句的结果

SELECT city,name FROM UNION (ALL包含重复值)SELECT city FROM app ORDER BY city;

SELECT city,name FROM web WHERE city='CN' UNION ALL SELECT city app_name FROM app WHERE city='CN' ORDER BY city; 带where

9.复制

SELECT INTO从一个表复制信息到另一个表

SELECT * INTO newtab FROM tab WHERE 1=0; 创建新表

SELECT cols INTO newweb FROM web; 复制一些列到新表

SELECT web.name,access.count,access.date INTO newweb FROM web LEFT JOIN access ON web.id=access.siteid; 复制多个表数据到新表

*MySQL数据库不支持SELECR……INTO,支持INSERT INTO……SELECT

*CREATE TABLE AS SELECT * FROM

INSERT INTO tab2 SELECT * FROM tab1;复制表1到另一个已存在的表2

INSERT INTO newweb (name,city) SELECT name,city FROM web WHERE id=1;

10.CREATE DATABASE语句用于创建数据库

CREATE DATABASE wenyu;

CREATE TABLE table_name

(

col_name1 data_type(size),

col_name2 data_type(size),

name varchar(255)

);

data_type 参数规定列的数据类型(例如 varchar、integer、decimal、date 等等)。size 参数规定表中列的最大长度。

11.约束(Constraints)用于规定表中的数据规则。

CREATE TABLE 在创建表时规定; ALTER TABLE 在表创建之后规定

  1. NOT NULL--某列不能存储 NULL 值。

    CREATE TABLE Persons(

    ID int NOT NULL,

    name varchar(255) NOT NULL

    );设置列不接受NULL值

    ALERT TABLE persons MODIFY Age int NOT NULL; 添加约束

    ALERT TABLE persons MODIFY Age int NULL; 删除约束

  2. UNIQUE -- 保证某列的每行必须有唯一的值。

    ID int NOT NULL UNIQUE; SQL

    CONSTRAINT uc_PersonID UNIQUE (name); MySQL命名约束

    ALERT TABLE Persons ADD UNIQUE (name);创建约束

    ALERT TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (name); 命名约束并定义多个列约束

    ALERT TABLE Persons DROP INDEX uc_PersonID; MySQL

    ALERT TABLE Persons DROP CONSTRAINT uc_PersonID; SQL

  3. PRIMARY KEY -- NOT NULL 和 UNIQUE 的结合。

    每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。PRIMARY KEY (name);

    ID int NOT NULL PRIMARY KEY;

    CONSTRAINT pk_PersonID PRIMARY KEY (ID,name); MySQL命名约束

    ALERT TABLE Persons ADD PRIMARY KEY(name);创建约束

    ALERT TABLE Persons ADD CONSTRAINT pk_PersonID PRIMARY KEY(name);

    ALERT TABLE Persons DROP PRIMARY KEY; MySQL

    ALERT TABLE Persons DROP CONSTRAINT pk_PersonID; SQL

  4. FOREIGN KEY - 一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键)。

    CREATE TABLE orders (PRIMARY KEY (OID),FOREIGN KEY (PID) PEFERENCES Persons (PID));

    CREATE TABLE orders ( OID int NOT NULL PRIMARY KEY, PID int FOREIGN KEY PEFERENCES Persons(PID) );

    PRIMARY KEY (OID),CONSTRAINT fk_PerOrders FOREIGN KEY (PID)

    PEFERENCE Persons(PID); 命名

    ALERT TABLE Orders ADD FOREIGN KEY (name) PEFERENCE Persons(name);

    ALERT TABLE Orders ADD CONSTRAINT fk_PerOrders FOREIGN KEY (name) PEFERENCE Persons (name);

    ALERT TABLE Persons DROP FOREIGN KEY fk_PerOrders; MySQL

    ALERT TABLE Persons DROP CONSTRAINT fk_PerOrders; SQL

SQL教程的更多相关文章

  1. 郝斌老师的SQL教程

    时隔两年,重拾数据库编程.郝斌老师的sql教程通俗易懂,用作复习简直不能太赞.

  2. SQL 教程

    SQL 教程 http://www.w3school.com.cn/sql/

  3. 请推荐一本SQL教程

    sql系列教程如下 sql教程 SQL 是用于访问和处理数据库的标准的计算机语言. 在本教程中,您将学到如何使用 SQL 访问和处理数据系统中的数据, 这类数据库包括:mysql.SQL Server ...

  4. SQL 教程数据库包括:Oracle, Sybase, SQL Server, DB2, Access 等等,您将学到如何使用 SQL 访问和处理数据系统中的数据

    SQL 基础教程 SQL 教程 SQL 简介 SQL 语法 SQL select SQL distinct SQL where SQL AND & OR SQL Order By SQL in ...

  5. 学习笔记之SQL 教程

    SQL 教程 | 菜鸟教程 http://www.runoob.com/sql/sql-tutorial.html SQL,指结构化查询语言,全称是 Structured Query Language ...

  6. w3c上的SQL 教程---基本语法 语句学习

    SQL 教程路径:http://www.w3school.com.cn/sql/index.asp

  7. SQL-W3School-基础:SQL 教程

    ylbtech-SQL-W3School-基础:SQL 教程 1.返回顶部 1. SQL 是用于访问和处理数据库的标准的计算机语言. 在本教程中,您将学到如何使用 SQL 访问和处理数据系统中的数据, ...

  8. SQL 教程学习进度备忘

    书签:跳过:另外跳过的内容有待跟进 __________________ 学习资源:W3School. _________________ 跳过的内容: 1.  “SQL select”底部的“ AD ...

  9. [SQL] SQL学习笔记之基础操作

    1 SQL介绍 SQL 是用于访问和处理数据库的标准的计算机语言.关于SQL的具体介绍,我们通过回答如下三个问题来进行. SQL 是什么? SQL,指结构化查询语言,全称是 Structured Qu ...

  10. W3Cschool菜鸟教程离线版下载链接

    请在电脑上打开以下链接进行下载w3cschool 离线版(chm):http://pan.baidu.com/s/1bniwRCV(最新,2014年10月21日更新)w3cschool 离线版(htm ...

随机推荐

  1. satpy 处理卫星 FY4A 数据

    读取数据并画图 import os import glob from datetime import datetime, timedelta from satpy.scene import Scene ...

  2. CH32V307/CH32V203 IO翻转速度测试

    CH32V307/CH32V203 IO极限翻转测试 记录RISC-V MCU CH32V307/CH32V203 在144MHz主频.-Os优化下,IO极限翻转频率. GPIO初始化代码如下: /* ...

  3. 小程序调用OCR识别操作的过程,特此记录。

    bu废话,直接记录.(注:我用的是云调用!!!) 对于大家首次使用该操作时,推荐两位大佬的文章,大家完全可以看两位大佬的文章,一步一步来就可以实现. 第一个文章呢,先看这个 https://blog. ...

  4. 向mysql插入数据是出现Incorrect string value错误

    在向Mysql中添加中文数据时,报错(incorrect string value ) 字符转换不正确 插入语句:mysql>  insert into user1 (name,password ...

  5. IIS部署HTTPS站点

    常用的IIS大体有二个版本: IIS8和IIS7,分别有不同的配置方法如下: IIS8.5以上版本 1).新建一个站点,切记尽量不要与旧http协议站点共用一个站点,容易冲突 2).先将https证书 ...

  6. office365启动突然提示注册表错误,无法打开“规则”配置的解决方案

    感觉目前网上的资料,暂无清晰的解答,根据现象分析是outlook的原始邮件文件即psd文件中的规则相关字段存在问题,导致outlook无法打开. 因此网上的各种答疑如重装,调整注册表等等措施都是无效的 ...

  7. 关于邮箱怎么验证是不是真实的企业邮箱(java汉字和英文呼唤)

    企业邮箱的域名一般都是zhangsan@公司域名,或者zhang_san@公司域名这种形式.这里我只列举zhangsan@公司域名这种形式. 公司要我做一个企业邮箱的模糊匹配和验证,刚接到以为很难.结 ...

  8. vue-购物车的部分

    定义一个局部组件 分成三个部分 Vue.component('my-cart',{ template: ` <div class='cart'> <cart-title>< ...

  9. 《基于CNN和SVM的人脸识别系统的设计与实现》论文笔记十六

    一.基本信息 标题:基于CNN和SVM的人脸识别系统的设计与实现 时间:2021 来源:计算机与数字工程 关键词: 人脸识别;卷积神经网络;支持向量机;深度学习; 二.研究内容 问题定义: 针对人脸识 ...

  10. DELL服务器基于centos7安装OMSA

    DELL服务器基于centos7安装OMSA 参考链接: https://www.cnblogs.com/sky-cheng/p/14951071.html https://www.dell.com/ ...