MySQL基础sql语句总结(一)

来源:互联网 发布:stm32单片机编程软件 编辑:程序博客网 时间:2024/05/08 18:12

Mysql数据库基础知识点总结(一)
数据库:保存有组织的数据的容器
主键(primary key)
① 一一列(或一组列),其值能够唯一区分表
中每个行。
主键的最好习惯 除MySQL强制实施的规则外,应该坚持的
几个普遍认可的最好习惯为:
不更新主键列中的值;
不重用主键列的值;
不在主键列中使用可能会更改的值。(例如,如果使用一个
名字作为主键以标识某个供应商,当该供应商合并和更改其
名字时,必须更改这个主键。
SQL(发音为字母S-Q-L或sequel)是结构化查询语言(Structured Query
Language)的缩写。

  1. MySQL常用显示语句
    show databases;显示所有的数据库:
    show tables;显示当前数据库中所有的表
    show columns from orderitems;显示某一张表的所有列(这里显示的是orderitems)这里也可以使用desc orderitems;来描述当前表的所有列
    SHOW STATUS ,用于显示广泛的服务器状态信息;
    show create table orders;查看某张表的创建语句这里要注意的是最后面需要传入参数
    show create database mysqldemo;查看创建某个数据库的表语句
    show errors;用来显示服务器错误或警告消息。
    show warnings;用来显示服务器错误或警告消息。

  2. MySQL 常用查询语句:
    select prod_name from products;检索单个列,如果没有指定排序规则的话,返回的数据顺序是没有意义的。

在处理SQL语句时,其中所有空格都被忽略。SQL语句可以在一行上给出,也可以分成许多行。多数SQL开发人员认为将SQL语句分成多行更容易阅读和调试。

select prod_id,prod_name,prod_price from products;检索多个列,多个列使用逗号隔开
select * from products;检索所有的列

一般,除非你确实需要表中的每个列,否则最
好别使用 * 通配符。虽然使用通配符可能会使你自己省事,不
用明确列出所需列,但检索不需要的列通常会降低检索和应
用程序的性能。使用通配符有一个大优点。由于不明确指定列
名(因为星号检索每个列),所以能检索出名字未知的列。

select distinct vend_id from products;只返回他们不相同的数据

不能部分使用 DISTINCT DISTINCT 关键字应用于所有列而
不仅是前置它的列。如果给出 SELECT DISTINCT vend_id,
prod_price ,除非指定的两个列都不同,否则所有行都将被
检索出来
select distinct vend_id,prod_price from products;如果我们这样使用的话就会导致查询出所有列

select prod_name from products limit 5;查询数据限制返回的个数为5个,没有设置开始行。
select prod_name from products limit 5,5; (注意数据库当中的下标是从0开始的我们的其实位置是第六个)

在行数不够时 LIMIT 中指定要检索的行数为检索的最大行
数。如果没有足够的行(例如,给出 LIMIT 10, 5 ,但只有13
行),MySQL将只返回它能返回的那么多行。MySQL 5的 LIMIT 语法 LIMIT 3, 4 的含义是从行4开始的3
行还是从行3开始的4行?如前所述,它的意思是从行3开始的4
行,这容易把人搞糊涂。
由于这个原因,MySQL 5支持 LIMIT 的另一种替代语法。 LIMIT
4 OFFSET 3 意为从行3开始取4行,就像 LIMIT 3, 4 一样。
select prod_name from products limit 4 offset 3;

  • 排序

    select prod_name from products order by prod_name;按照单个列来排序
    select prod_id,prod_price,prod_name from products order by prod_price,prod_name;

仅在多个行具有相同的 prod_price
值时才对产品按 prod_name 进行排序。如果 prod_price 列中所有的值都是唯一的,则不会按 prod_name 排序。

select prod_id,prod_price,prod_name from products order by prod_price DESC 使用DESC指定排序为倒序,DESC 关键字只应用到直接位于其前面的列名。
如果我们想要在为prod_name 排序的话需要在他设置DESC参数select prod_id,prod_price,prod_name from products order by prod_price DESC,prod_name desc;

在对文本性的数据进行排序时,A与
a相同吗?a位于B之前还是位于Z之后?这些问题不是理论问
题,其答案取决于数据库如何设置。
在字典(dictionary)排序顺序中,A被视为与a相同,这是MySQL
(和大多数数据库管理系统)的默认行为。但是,许多数据库
管理员能够在需要时改变这种行为(如果你的数据库包含大量
外语字符,可能必须这样做)。
这里,关键的问题是,如果确实需要改变这种排序顺序,用简
单的 ORDER BY 子句做不到。你必须请求数据库管理员的帮助

使用order by 和limit组合使用
select prod_price from products order by prod_price DESC limit 1;这里显示的只有一条返回数据,我们要注意的limit是在order by语句之后使用的!

原创粉丝点击