mysql 1.检索数据 不要where 也可以 select

【主键】

1、主键(primary key)①一一列(或一组列),其值能够唯一区分表中每个行。

2、表中的任何列都可以作为主键,只要它满足以下条件:

 任意两行都不具有相同的主键值;

 每个行都必须具有一个主键值(主键列不允许NULL值)。

【列】

列(column) 表中的一个字段。所有表都是由一个或多个列组成的

【数据库命令行】

use databases; 选择数据库

show databases; 查看所有的数据库,

status; 查看mysql数据库的运行状态

show tables 查看数据库中的表

show columns from table; 查看列字段信息

show columns from schemaname.tablename

SHOW COLUMNS from xtp_credit_asset_auto ;

SHOW COLUMNS from xtp_credit_asset_20200717

describe table;查看表结构

【mysql自带的数据库】

【information_schema】

1、information_schema 看作是一个数据库,确切说是信息数据库

举例

TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表

SELECT

CONCAT(

'ALTER TABLE ',

table_name,

' RENAME TO ',

REPLACE(table_name, '20200716', '20200717'),

';'

) //contact 拼凑字段 >> alter table_name rename to table_name_new ;

FROM

information_schema.TABLES // 正常用法 数据库.表名称的引用方法

WHERE

table_schema = 'xtp2' // 字段 显示其他数据库的名称

and table_name LIKE '%20200716' // 该字段显示数据库里面的表的名称

//这个sql语句的执行结果 得到很多sql语句 最后再执行以下 拼凑sql出来

【replace 用法】

REPLACE(s,s1,s2)使用字符串s2 替代字符串s 中所有的字符串s1

【select】

select 检索的理解:

select * from table

1、筛选出来的结果是一行行的 也就是会先匹配一行到数据  检索出一行当中的需要的数据 拉出来

2、再继续检索下一行

【检索数据】

1、检索单个 多个列

select zd from table; select zd,zd1 from table;

2、检索所有的列

select * from table

>>>可以用*匹配所有筛选 也可以只选择指定的字段

>>> SELECT == select SQL语句对大小写不敏感

3、消除重复的该字段 返回唯一

当distinct应用到多个字段的时候,其应用的范围是其后面的所有字段,而不只是紧挨着它的一个字段,而且distinct只能放到所有字段的前面

select distinct zd from table

select distinct zd,zd1 from table 消除后面所有重复的字段

select distinct * from table

不能部分使用DISTINCT

>>> distinct 默认去重后面所有的字段   【理解错误】  多个字段distinct 会导致去重范围缩小的

保留更多  因为  需要满足多个字段的同时重复 才会去重

如果给出SELECT DISTINCT vend_id,
prod_price,除非指定的两个列都不同,否则所有行都将被
检索出来。

【限制结果】

select zd fom table limit 5;

返回前五行

select zd fom table limit 5,5;

返回从行5开始的5行 start,rows_count

>>>第一行是 0行 最后一行是 -1

LIMIT 4 OFFSET 3意为 从行3开始取4行

<问题? 如何选取后五行?>

答:默认顺序的最后五行

排序取 order by zd desc limit 5

不排序取 limit  95,-1; // 检索记录行 96-last. 

【使用完全限定的表明】

使用列名 引用列

使用表明.列名 引用列 完全限定

select table.zi from table

数据库名.表名 完全限定的方法引用

>>> 也可以使用别名来引用

【排序检索】

不指定排序方式 order by   

select ..... order   by  A,B    升序 从低往上排 默认升序 理解就是 从小往大排序  

先升A再升B

单列排序///

之前的检索 出来的数据结果都是按照 随机 默认的排序来的

order by 语句默认按照升序对记录进行排序。

目前 看来是 先标点符号 后 数字升序 再 字母 升序

select zd from table  order by zd;

对返回的数据进行排序

select zd from table order by zd;  

select zd from table order by zd1; 非检索列排序  也可以

多列排序///

select zd,zd1 from table order by zd2,zd3;

优先zd2 排序 仅在有多个zd2的字段值 相等 相重复的情况下 才按照zd3来排序 否则用不到zd3

指定排序方向 order by  desc   降序排列 单个  

单列指定排序

select sz,zd1 from table order by zd desc; 降序排列

多列指定排序   如果想在多个列上进行降序排序,必须对每个列指定DESC关键字

如果既不指定ASC也不指定DESC,则假定为ASC  默认

不指定就变成升序了

select sz,zd1 from table order by zd desc,name  desc 降序排列

首先按照价格 降序排列 再在前面的排序基础上 二级排序按照名字 升序排列

讨论1: a 于 A 这么排序?

在字典(dictionary)排序顺序中,A被视为与a相同,这是MySQL(和大多数数据库管理系统)的默认行为 需要区分的话 需要管理员的帮助

注意:

order by 作用到其后面的所有字段

desc 只作用 其前面的字段,

distinct 作用到后面所有的字段

ASC 升序排列 默认 没用

<组合使用>

order by zd desc limit 1 最大的一个 升序 取第一个

order by zd limit 1 默认 升序 取最小的一个

<组合使用的位置顺序  注意>

from  order by    limit

from .. on.. join.. where .. group by .. having ..select distinct ...order by ..  limit..

问:如何按照指定的 方式排序??指定的列名称 

答:order by zd

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值