SQL学习

SQL简介

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

SQL能做什么?

  1. 面向数据库执行查询
  2. 可从数据库取回数据
  3. 可在数据库中插入新的记录
  4. 可更新数据库中的数据
  5. 可从数据库中删除记录
  6. 可创建新的数据库
  7. 可在数据库中创建新表
  8. 可在数据库中创建储存过程
  9. 可在数据库中创建视图
  10. 可以设置表、储存过程和视图的权限

RDBMS

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

SQL语法

数据库表

  一个数据库通常包含一个或多个表。每个表有一个名字标识(例如:“Websites”),表包含带有数据的记录(行)。

一些最重要的 SQL 命令

SELECT - 从数据库中提取数据
UPDATE - 更新数据库中的数据
DELETE - 从数据库中删除数据
INSERT INTO - 向数据库中插入新数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引

SQL 对大小写不敏感

SQL select 语句

SELECT 语句用于从数据库中选取数据。

SQL select 语法

select column_name, column_name from table_name

例如:从“Websites” 表中选取“name”和“country”列

select name,country from Websites;

SQL select distinct 语句

SELECT DISTINCT 语句用于返回唯一不同的值。在表中,一个列可能会包含多个重复值,此语句可以列出不同(distinct)的值。

SQL SELECT DISTINCT 语法

select distinct column_name, column_name from table_name;

例如:仅从 “Websites” 表的 “country” 列中选取唯一不同的值,也就是去掉 “country” 列重复值

select distinct country from Websites;

SQL where 子句

where 子句用于过滤记录,提取那些满足指定条件的记录。

SQL语法

secect column_name, column name from table_name where column name operator value;

例如从 “Websites” 表中选取国家为 “CN” 的所有网站:

select * from Websites where country = 'CN';

文本字段 vs. 数值字段

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)
在上个实例中 ‘CN’ 文本字段使用了单引号
如果是数值字段,不要使用引号。
例如:

SELECT * FROM Websites WHERE id=1;

SQL and & or 运算符

用于基于一个以上的条件对记录进行过滤
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

and 运算符实例

例如:从 “Websites” 表中选取国家为 “CN” 且alexa排名大于 “50” 的所有网站:

select * from Websites where country = 'CN' and alexa > 50;

or 运算符实例

例如从 “Websites” 表中选取国家为 “USA” 或者 “CN” 的所有客户:

select * from Websites where country = 'USA' or country = 'CN';

SQL order by 关键字

  用于对结果集按照一个列或者多个列进行排序,默认按照升序排列,如果需要降序,则使用desc关键字,还可以按照列名进行排序。比如:

select from * Websites order by id;

SQL insert into 语句

  用于向表中插入新记录
  语法:有两种编写形式
  第一种无需指定要插入数据的列名,只需要提供被插入的值即可:

insert into table_name values (value1, value2, value3, …);

  第二种需要指定列名及被插入的值

insert into table_name (column1, column2, column3, …) values (value1, value2, value3, …)

SQL update 语句

  update 用于更新表中已存在的记录
  语法:

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

  注意 SQL UPDATE 语句中的 WHERE 子句!
  WHERE 子句规定哪条记录或者哪些记录需要更新。如省略了 WHERE 子句,所有的记录都将被更新!执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。
  实例:
  假设要把 “菜鸟教程” 的 alexa 排名更新为 5000,country 改为 USA,使用下面的 SQL 语句:

update Websites
set alexa = '5000', country = 'USA'
where name = '菜鸟教程';

SQL delete 语句

  delete 语句用于删除表中的记录(行)。
  语法:

delete from table_name
where some_column = some_value;

请注意 SQL DELETE 语句中的 WHERE 子句!WHERE 子句规定哪条记录或者哪些记录需要删除。如省略了 WHERE 子句,所有的记录都将被删除!
实例:

delete from websites
where name = 'facebook' and country = 'USA';

删除name为facebook并且country为USA的行

SQL SELECT TO

SELECT TOP 子句用于规定要返回的记录的数目,对于拥有数千条记录的大型表来说,是非常有用的。
注意: 并非所有的数据库系统都支持SELECT TOP语句。MySQL支持LIMT语句来选取指定的条数数据,Oracle可以使用ROWNUM来选取。

SQL Service / 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(s)
from table_name
where rownum <= number;

实例

select * from Persons where rownum <= 5;

MySQL SELECT LIMIT 实例

从“Websites”表中选取头两条记录;

select * from Websites limit 2;

SQL SELECT TOP PERCENT 实例

在 Microsoft SQL Server 中还可以使用百分比作为参数,下面的 SQL 语句从 websites 表中选取前面百分之 50 的记录:

select top 50 percent * from Websites;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值