所使用的数据库资料在:数据库资料
1.1 基础概念
1.数据库(database)
保存有组织的数据的容器(通常是一个文件或一组文件)
注意:常用的mysql,等是数据库管理系统DBMS;由这些软件创建和操作的容器才是数据库;
 
2.表(table)
表是一种结构化的文件,可用来存储某种特定类型的数据;可以保存顾客清单,产品目录等其他信息;就像是,把东西往抽屉里放,并不是随便扔在抽屉里就行,而是在抽屉里放一些文件夹,将相关东西放在相关的文件夹里;这里抽屉,便是数据库,是个容器,而文件夹便是 表,是用来存储特定类型的数据;
 
名称:
表的名称在一个数据库中应该是唯一的;
 
模式:
关于数据库和表的布局及特性的信息。
比如:定义了数据在表中如何存储,存储什么样的数据,数据如何分解,各部信息如何命名等;
 
3.列(column)和数据类型
表由列组成。列存储表中某部分的信息。
将表想象成一个电子表格,网格中每一列存储着某种特定的信息。例如,在顾客表中,一列存储顾客编号,另一列存储顾客姓名,而地址、城市、州以及邮政编码全都存储在各自的列中。
 
数据类型
所允许的数据的类型。每个表列都有相应的数据类型,它限制(或允许)该列中存储的数据
 
4.行(row)
表中的一个记录。
表中的数据是按行存储的,所保存的每个记录存储在自己的行内。如果将表想象为网格,网格中垂直的列为表列,水平行为表行。
 
5.主键
一列(或一组列),其值能够唯一标识表中每一行。
表中每一行都应该有一列(或几列)可以唯一标识自己。顾客表可以使用顾客编号,而订单表可以使用订单ID。雇员表可以使用雇员ID或雇员社会安全号。
 
主键满足的条件:
  • 任意两行都不具有相同的主键值
  • 每一行都必须有一个主键值(主键列不允许NULL值)
  • 主键列中的值不允许修改或更新
  • 主键值不能重用(如果某行从表中删除,它的主键值不能赋给以后的新行)
 
1.2 SQL-Structured Query Language
任务--提供一种从数据库中读写数据的简单有效的方法。
 
优点:
  • SQL不是某个特定数据库供应商专有的语言。几乎所有重要的DBMS都支持SQL;
  • SQL简单易学。它的语句全都是由有很强描述性的英语单词组成,而且这些单词的数目不多。
  • SQL虽然看上去很简单,但实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。
 
第2课  检索数据
 
2.1   SELECT语句
用途是从一个或多个表中检索信息。
检索一列
输入:
SELECT prod_name FROM Products;
输出:
prod_name
-------------------
Fish bean bag toy
Bird bean bag toy
Rabbit bean bag toy
8 inch teddy bear
12 inch teddy bear
18 inch teddy bear
Raggedy Ann
King doll
Queen doll
分析:上述语句利用SELECT语句从Products表中检索一个名为prod_name的列。所需的列名写在SELECT关键字之后,FROM关键字指出从哪个表中检索数据。
注意:检索出来的数据是未排序的,因为没有明确排序查询结果;
          多条SQL语句用分号隔开;
 
在处理SQL语句时,其中的所有空格都会被忽略;包括回车符;SQL语句仅以分号结束
 
检索多列
输入:
SELECT prod_id, prod_name, prod_price
FROM Products;
输出:
prod_id prod_name prod_price
--------- -------------------- ----------
BNBG01 Fish bean bag toy 3.4900
BNBG02 Bird bean bag toy 3.4900
BNBG03 Rabbit bean bag toy 3.4900
BR01 8 inch teddy bear 5.9900
BR02 12 inch teddy bear 8.9900
BR03 18 inch teddy bear 11.9900
RGAN01 Raggedy Ann 4.9900
RYL01 King doll 9.4900
RYL02 Queen dool 9.4900
检索所有列
SELECT *
FROM Products;
警告:使用通配符
一般而言,除非你确实需要表中的每一列,否则最好别使用*通配符。虽然使用通配符能让你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。
提示:检索未知列
使用通配符有一个大优点。由于不明确指定列名(因为星号检索每一列),所以能检索出名字未知的列。
 
2.2   检索不同的值
即只显示不同的值,相同的只显示一次;
关键字:DISTINCT
如:
输入:
SELECT vend_id
FROM Products;
输出:
vend_id
----------
BRS01
BRS01
BRS01
DLL01
DLL01
DLL01
DLL01
FNG01
FNG01
而:
输入:
SELECT DISTINCT vend_id
FROM Products;
输出:
+---------+
| vend_id |
+---------+
| BRS01 |
| DLL01 |
| FNG01 |
+---------+
3 rows in set (0.00 sec)
分析:
SELECT DISTINCT vend_id告诉DBMS只返回不同(具有唯一性)的vend_id行,所以正如下面的输出,只有3行。如果使用DISTINCT关键字,它必须直接放在列名的前面。
 
注意:不能部分使用DISTINCT
DISTINCT关键字作用于所有的列,不仅仅是跟在其后的那一列。例如,你指定SELECT DISTINCT vend_id, prod_price,除非指定的两列完全相同,否则所有的行都会被检索出来。
 
2.3   限制结果
SELECT语句返回指定表中所有匹配的行,很可能是每一行。如果你只想返回第一行或者一定数量的行,该怎么办呢?这是可行的,但是在各种DBMS中不一样
在MySQL、MariaDB、PostgreSQL或者SQLite,需要使用LIMIT 子句,像这样:
输入:
SELECT prod_name
FROM Products
LIMIT 5;
输出:
prod_name
-----------------
8 inch teddy bear
12 inch teddy bear
18 inch teddy bear
Fish bean bag toy
Bird bean bag toy
分析▼
上述代码使用SELECT语句来检索单独的一列数据。LIMIT 5指示MySQL等DBMS返回不超过5行的数据.
 
 
如果想得到后面5行的数据,像这样:
输入:
SELECT prod_name
FROM Products
LIMIT 5 OFFSET 5;
输出:
prod_name
-------------------
Rabbit bean bag toy
Raggedy Ann
King doll
Queen doll
分析▼
LIMIT 5 OFFSET 5指示MySQL等DBMS返回从第5行起的5行数据。第一个数字是指从哪儿开始,第二个数字是检索的行数。
所以,LIMIT指定返回的行数。带OFFSET的LIMIT指定从哪儿开始。
 
注意:第0行
第一个被检索的行是第0行,而不是第1行。因此,LIMIT 1 OFFSET 1会检索第2行,而不是第1行。
 
提示:MySQL和MariaDB快捷键
MySQL和MariaDB支持简化版的LIMIT 4 OFFSET 3语句,即LIMIT 3,4。使用这个语法,,之前的值对应LIMIT, ,之后的值对应OFFSET。
 
 
2.4   使用注释
SELECT prod_name    -- 这是一条注释
FROM Products;
分析▼
注释使用-- (两个连字符)嵌在行内。-- 之后的文本就是注释,例如,这用来描述CREATE TABLE语句中的列就很不错。
 
多行注释
/* SELECT prod_name, vend_id
FROM Products; */
SELECT prod_name
FROM Products;
注释从/*开始,到*/结束,/*和*/之间的任何内容都是注释。这种方式常用于给代码加注释,就如这个例子演示的,这里定义了两个SELECT语句,但是第一个不会执行,因为它已经被注释掉了。

SQL-基础学习1--SELECT,LIMIT,DISTINCT,注释的更多相关文章

  1. [SQL基础教程] 2-1 SELECT语句基础

    [SQL基础教程] 2-1 SELECT语句基础 列的查询 Syntax SELECT<列名>,..... FROM<表名>; SELECT col_1, col_2 FROM ...

  2. SQL 基础学习(2) Joining 和function , 作业没有做,需要看百宝箱。NOsql的概念

    SQL 基础学习(2) Joining 可以同时关联(joining)多张表进行复杂的查询. 相比于用Rails捞出数据再用Ruby进行过滤组合,使用SQL更加高效,节能. 以下是 users has ...

  3. Oracle SQL 基础学习

    oracel sql 基础学习 CREATE TABLE USERINFO ( ID ,) PRIMARY KEY, USERNAME ), USERPWD ), EMAIL ), REDATE DA ...

  4. sql基础学习

    学习参考网站:http://www.runoob.com/sql/sql-tutorial.html 一.SQL命令 1.SELECT 语句 用于从数据库中选取数据. select column_na ...

  5. SQL 基础学习(1):下载DB Browser for SQLite. 下载graphviz(为了使用Rails ERD的前提)出现❌,已debug.

    SQL is a standard language for storing, manipulating and retrieving data in databases. 关系型数据库:RDBMS( ...

  6. SQL基础学习_04_视图

    视图 1. 视图的创建     视图就是保存好的SELECT语句,这些SELECT语句执行之后会产生新的表,所以在SQL中,视图和表是不做差别对待的,也就是SQL也可以对视图做一些操作:     由于 ...

  7. SQL基础学习_02_查询

    SELECT语句 1. SELECT语句查询列(字段):     SELECT <列名>    FROM <表名>;     该语句使用了两个SQL子句,SELECT子句列举了 ...

  8. SQL基础学习_05_函数、谓词、CASE表达式

    函数 算术函数 1. 四则运算: +.-.*./  2. ABS:求绝对值, ABS(数值) 3. MOD: 求余,MOD(被除数,除数) 4. ROUND:四舍五入,ROUND(对象数值,保留小数的 ...

  9. SQL基础学习_03_数据更新

    数据的插入 1. 基本INSERT语句     INSERT的基本语法为:     INSERT INTO  <表名> (列1, 列2, 列3,  -) VALUES (值1, 值2, 值 ...

随机推荐

  1. local search——配图

  2. 金阳光Android自动化测试第一季

    第一季:http://www.chuanke.com/v1983382-106000-218422.html 第一节:Android自动化预备课程基础(上)     1. 基于坐标点触屏:monkey ...

  3. python基础学习笔记——类空间问题以及类之间的关系

    一. 类的空间问题 1.1 何处可以添加对象属性 class A: def __init__(self,name): self.name = name def func(self,sex): self ...

  4. 26、android上跑apache的ftp服务

    一.为啥 在android设备跑ftp服务,在现场方便查看日志,目前就是这么用的. 二.前提: 从apache的官网下载依赖包:http://mina.apache.org/ftpserver-pro ...

  5. wamp搭建的服务器远程无法访问的问题

    最近在一台win2003的服务器上安装配置好了wamp,服务启动正常,服务器本机访问localhost正常,但是我自己的电脑(相对于服务器来说是远程机器)访问时,提示显示You don't have ...

  6. Leetcode37--->Sudoku Solver(填充数独)

    题目: 给定一个不完整的数独,要求填充好数独:最初给出的数独是有效的,且假设一定有答案: 举例: A sudoku puzzle... 解题思路: 该题与青蛙走迷宫问题很相似,都是用深度优先: 代码如 ...

  7. php 图表的操作

    <?php $dir=dirname(__FILE__);//查找当前脚本所在路径 require $dir."/db.php";//引入mysql操作类文件 require ...

  8. Leetcode 462.最少移动次数使数组元素相等

    最少移动次数使数组元素相等 给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1. 您可以假设数组的长度最多为10000. 例如: 输入: [1,2, ...

  9. Codeforces Round #470 (rated, Div. 2, based on VK Cup 2018 Round 1)

    A. Protect Sheep time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  10. Text Region Mask

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/52886351 Python code ...