SQL

SQL 简介

什么是 SQL?

  • SQL 指结构化查询语言
  • SQL 使我们有能力访问数据库
  • SQL 是一种 ANSI 的标准计算机语言

SQL 能做什么?

  • SQL 面向数据库执行查询
  • SQL 可从数据库取回数据
  • SQL 可在数据库中插入新的记录
  • SQL 可更新数据库中的数据
  • SQL 可从数据库删除记录
  • SQL 可创建新数据库
  • SQL 可在数据库中创建新表
  • SQL 可在数据库中创建存储过程
  • SQL 可在数据库中创建视图
  • SQL 可以设置表、存储过程和视图的权限

在网站中使用 SQL

要创建发布数据库中数据的网站,您需要以下要素:

  • RDBMS 数据库程序(比如 MS Access, SQL Server, MySQL)
  • 服务器端脚本语言(比如 PHP 或 ASP)
  • SQL
  • HTML / CSS

RDBMS

RDBMS 指的是关系型数据库管理系统。
RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access。
RDBMS 中的数据存储在被称为表(tables)的数据库对象中。
表是相关的数据项的集合,它由列和行组成。

SQL语法

数据库表

一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。表包含带有数据的记录(行)。
例:

idnamesexageaddress
1小明13eight 213
2小红12nine 357
3小青12nine 224

上面的表包含三条记录(每一条对应一个人)和两个列(Id、名字)。

SQL (structured query language )

结构化查询语言。专门对数据库进行查找、增加、修改、删除、统计的操作语言。
CURD 增删改查 create update retrieve delete。
书写风格:关键字大小写都行,建议大写。表名大小写都行,但是在一些数据库中不区分大小写,建议小写。(SQL 对大小写不敏感!)

SQL DML 和 DDL

可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。
查询和更新指令构成了 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 - 删除索引

(重要) 基础语法

1.查找

SELECT 字段1,字段2,字段3,... FROM 表名;
python中返回值 形如[(1, 502班, 小明, 男), (), ()]。
字段比较多时简写为 SELECT * FROM 表名; 由于数据库执行时会把*转换为字段再执行,性能极微小下降。
SELECT * FROM 表名 WHERE 字段1 = 过滤值,字典2=过滤值 ; where限定条件查找。

2.添加

INSERT 字段1,字段2,... INTO 表名 VALUES (1, "小明", "男");
简写INSERT INTO 表名 VALUES (1, "小明", "男");

3.修改

UPDATE FROM 表名 SET 字段1=新值,字段2=新值 WHERE 字段1 = 要修改的那一行那一个字段的值;
注意没有where条件限定行的话将会更新整张表。

4.删除

DELETE FROM 表名; 注意会删除整张表。
DELETE FROM 表名 WHERE 字段1 = 值; 限定条件删除某些行。

5.创建表
CREATE  TABLE 表名 {
    字段类型 字段名 其它关键字(主键 备注),
    INT   id   PRIMARY KEY,
    VARCHAR(20) username ,
}

SQL SELECT

SQL SELECT 语句

SELECT 语句用于从表中选取数据。
结果被存储在一个结果表中(称为结果集)。

SQL SELECT 语法

SELECT 列名称 FROM 表名称

以及:

SELECT * FROM 表名称

注释:SQL 语句对大小写不敏感。SELECT 等效于 select。

SQL SELECT 实例

获取 “name” 和 “age” 的列的内容(从 “students” 的数据库表):

SELECT name,age FROM students

"students"表:

idnamesexageaddress
1小明13eight 213
2小红12nine 331
3小青12nine 224

结果:

nameage
小明13
小红12
小青12

SQL SELECT * 实例

现在我们希望从 “students” 表中选取所有的列。
使用符号 * 取代列的名称,就像这样:

SELECT * FROM students

提示:星号(*)是选取所有列的快捷方式。

结果:

idnamesexageaddress
1小明13eight 213
2小红12nine 331
3小青12nine 224

SQL INSERT INTO 语句

INSERT INTO 语句

INSERT INTO 语句用于向表格中插入新的行。

语法

INSERT INTO 表名称 VALUES (值1, 值2,....)

我们也可以指定所要插入数据的列:

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

插入新的行

"students"表:

namesexageaddress
小青12nine 224

SQL 语句:

INSERT INTO students VALUES('小刚', '男', '13', 'nine 478')

结果:

namesexageaddress
小青12nine 224
小刚13eight 411

在指定的列中插入数据

"students"表:

namesexageaddress
小青12nine 224
小刚13eight 411

SQL 语句:

INSERT INTO (name, age) VALUES ('小杨', '13')

结果:

namesexageaddress
小青12nine 224
小刚13eight 411
小杨13

SQL UPDATE 语句

Update 语句

Update 语句用于修改表中的数据。

语法

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

students表:

namesexageaddress
小青12nine 224
小杨13

更新某一行中的一个列

为 name 是 “小杨” 的学生添加 sex :

UPDATE student SET sex= '男' WHERE name= '小杨'

结果:

namesexageaddress
小青12nine 224
小杨13

更新某一行中的若干列

修改 age 和添加 address :

UPDATE student SET age='14', address='eight 230' WHERE name='小杨'

结果:

namesexageaddress
小青12nine 224
小杨14eight 230

SQL DELETE 语句

DELETE 语句

DELETE 语句用于删除表中的行。

语法

DELETE FROM 表名称 WHERE 列名称 = 值

"students"表:

namesexageaddress
小青12nine 224
小杨14eight 230

删除某行

“小杨”会被删除:

DELETE FROM student WHERE name='小杨'

结果:

namesexageaddress
小青12nine 224

删除所有行

可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:

DELETE FROM table_name

或者:

DELETE * FROM table_name

SQL WHERE 子句

WHERE 子句用于规定选择的标准。

WHERE 子句

如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。

语法
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

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

操作符描述
=等于
<>不等于
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE搜索某种模式

注释:在某些版本的 SQL 中,操作符 <> 可以写为 !=。

使用 WHERE 子句

如果只希望选取年龄age是"13" 中的人,我们需要向 SELECT 语句添加 WHERE 子句:

SELECT * FROM students WHERE age='13'

"students"表:

namesexageaddressyear
小明13eight 2132005
小红12nine 3572006
小青12nine 2242006
小刚13eight 4112005

结果:

namesexageaddressyear
小明13eight 2132005
小刚13eight 4112005

引号的使用

请注意,我们在例子中的条件值周围使用的是单引号。
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。
文本值:

这是正确的:
SELECT * FROM students WHERE name='小明'

这是错误的:
SELECT * FROM students WHERE name=小明

数值:

这是正确的:
SELECT * FROM students WHERE year>2005

这是错误的:
SELECT * FROM students WHERE year>'2005'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值