第一课 了解sql
数据库(database):保存有组织的数据的容器(一个文件或一组文件)。通常数据库软件称为数据库管理系统(DBMS)。
表(table):某种特定类型的结构化清单。表名实际上是数据库名和表名等的组合。
模式(schema):关于数据库和表的布局及特性的信息。
列(column):表中的一个字段。表由一个或多个列组成。每一个列都有相应的数据类型,每个表列都有相应的数据类型。
行(row):表中的一个记录,即一行代表一个记录。
主键(primary key):一列(或一组列),能够唯一的标识表中的每一行。条件:任意两行都不具有相同的主键;每一行都必须有一个主键值(主键列不允许为空,null值);主键列的值不允许修改和更新;主键值不能重用(某行删除,其主键不能赋给以后的行)。
sql:structured query language,结构化查询语言。
第二课 检索数据
检索单列
select prod_name from products;
检索多列
select prod_id,prod_name, prod_price from products;
检索所有列
select * from products;
检索不同的值
select DISTINCT vend_id from products;
DISTINCT作用于所有的列,不仅仅是跟在后面的那一列,即不能部分使用DISTINCT
限制结果(mysql)
select * from products limit 5;
#只检索前面5行数据
select * from products limit 5 offset 5;
#从第5行开始的5行数据
SQL Server 和 Access 中使用 TOP 关键字来限制最多返回多少行:
SELECT TOP 5 prod_name FROM Products;
DB2中:
SELECT prod_name FROM Products FETCH FIRST 5 ROWS ONLY;
Oracle,需要基于 ROWNUM(行计数器)来计算行:
SELECT prod_name FROM Products WHERE ROWNUM <=5;
MySQL、MariaDB、PostgreSQL 或者 SQLite,需要使用 LIMIT子句:
SELECT prod_name FROM Products LIMIT 5;
第三课 排序检索数据
一列排序:
select * from products order by prod_name;
多列排序:
select * from products order by prod_price,prod_name;
先对prod_price排序,当prod_price值一样时候才对prod_name排序
按列位置排序:
select * from products order by 2,3;
对第2列、第3列进行排序
排序方向:
select * from products order by prod_price DESC,prod_name ;
默认是升序排序,DESC是降序排序。若对多个列进行降序排序,必须对每一列指定DESC,如select * from products order by prod_price DESC,prod_name DESC;
《sql必知必会》------day6
《sql必知必会》------day5
《sql必知必会》------day4
《sql必知必会》------day3
《sql必知必会》------day2
《sql必知必会》------day1