mysql 1.检索数据 不要where 也可以
发布日期:2021-05-06 21:08:28 浏览次数:31 分类:精选文章

本文共 2570 字,大约阅读时间需要 8 分钟。

【主键】

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

 

【检索数据】

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 默认去重后面所有的字段

 

【限制结果】

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 zd desc 一起使用

升序 从低往上排 默认升序 理解就是 从小往大排序

单列排序///

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

order by 语句默认按照升序对记录进行排序。 目前 看来是 先标点符号 后 数字升序 再 字母 升序

select zd from table

对返回的数据进行排序

select zd from table order by zd;

select zd from table order by zd1; 非选择列排序

select zd from table order by zd2; 非检索列排序

多列排序///

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

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

 

降序排列 单个

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

多个 顺序 排列

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

首先按照价格 降序排列 在按照名字 升序排列

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

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

注意:order by 作用到其后面的所有字段 desc只作用 其前面的字段

distinct 作用到后面所有的字段

ASC 升序排列 默认 没用

<组合使用>

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

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

 

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

答:order by

上一篇:python insert插入mysql 中文字符报错 及mysql编码介绍
下一篇:pycharm Process finished with exit code

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月11日 07时06分59秒