首页 > 酒水分类 > 葡萄酒

数据库排序规则选什么,数据库排序规则怎么选

酒易淘 葡萄酒 2022-09-05 14:42:53

品牌名称:酱香白酒加盟 所属行业:酒水 > 白酒

基本投资:10~50万元 投资热度:

加盟意向:1634 门店数量:534家

索要资料 查看详情

  

  数据库的概念和术语是按照数据结构组织、存储和管理数据的仓库;这是长期存储在计算机中的大量数据的有组织的、可共享的、统一的集合。把握长期存储方便管理大量数据(支持并发访问)。它比磁盘快。数据库:数据库是相关表的集合;数据表:表格是数据的矩阵;列:包含相同类型的一系列数据;行:或记录是一组相关的数据;主键:主键是唯一的;一个数据表只能包含一个主键;(主键不为空且唯一)外键:外键用于关联两个表,保证参照完整性;MyISAM存储引擎本身不支持外键,只起解释作用;Innodb完全支持外键;(外键存储在从表、从表和主表的关系列和关联列中)复合键:或组合键;将多个列(字段)指定为索引键;索引:用于快速访问数据表中的数据;索引是对表中一列或多列的值进行排序的结构;(抓取其索引为便于排序的一列或多列数据)SQL语言和组件用于访问数据和查询、更新和管理关系数据库系统。SQL是关系数据库系统的标准语言。抓一点,SQL是一种用来操作数据库的语言,即OK,关系数据库的标准语言。   

  

  SQL命令包括: DQL、DML、DDL、DCL和TCL。本文只介绍DDL数据定义语言的实用部分,用于定义数据库。数据表show :显示现有的数据库或表显示数据库。显示所有数据库#显示数据库;#显示所有数据库- xiaojie | -集合中的7行(0.00秒)显示表;使用tangyujie显示当前选定数据库的所有数据表;数据库已更改显示表格;空集(0.00秒)使用数据库名;选择一个数据库,并选择具体的数据库操作使用测试;#指定选择数据库Database changedcreate:创建数据库或表create database database name您可以安全地创建一个数据库(如果该表已经存在,将报告一个错误)加上如果不存在检测;如果数据库已经存在,将不会创建它;否则,如果不存在,创建数据库(不报错,只给出提示);#创建唐玉洁数据库。如果没有查询OK,1行受影响(0.00秒)显示数据库;-| Database |-| information _ schema | | hello | | MySQL | | performance _ schema | | sys | | tangyujie | | test | | Xiaojie |-8行in set (0.00 sec)创建表表名;表的不安全创建(如果表已经存在,将报告一个错误)加上如果不存在检测;如果数据表已经存在,则不会被创建;否则,如果不存在则创建表stu (id int,name varchar (10),age tiny)engine=innodb default charset=utf8mb 4;显示表格;-Tables _ in _ tangyujie | -表的不安全删除(如果表不存在,会报错)加上如果存在检测;如果不存在,则不会报错(会提示警告)掉表stu查询正常,0行受影响(0.01秒)显示表。如果存在stu,则空集合(0.00秒)丢弃表;好,0行受影响,1个警告(0.00秒)删除数据库数据库名称;库的不安全删除(如果库不存在,将报告错误)加上如果存在检测,如果它不存在,将不报告错误(将引发   

示waring)注意:删库跑路不是吹出来的,不要轻易使用dropdrop database tangyujie;Query OK, 0 rows affected (0.01 sec) show databases;+--------------------+| Database |+--------------------+| information_schema || hello || mysql || performance_schema || sys || test || xiaojie |+--------------------+7 rows in set (0.00 sec)alter :修改现有的数据库对象,例如 修改表的属性或者字段 (列)desc 数据表明; 展示数据表的结构 desc stu;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(11) | YES | | NULL | || name | varchar(10) | YES | | NULL | || age | tinyint(4) | YES | | NULL | |+-------+-------------+------+-----+---------+-------+3 rows in set (0.00 sec)alter table 指定表名 add 新列名 类型(类型长度); 添加一列字段\新增一列grade varchar(5); 等级列, 成绩等级alter table stu add grade varchar(5);Query OK, 0 rows affected (0.02 sec)Records: 0 Duplicates: 0 Warnings: 0 desc stu;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(11) | YES | | NULL | || name | varchar(10) | YES | | NULL | || age | tinyint(4) | YES | | NULL | || grade | varchar(5) | YES | | NULL | |+-------+-------------+------+-----+---------+-------+4 rows in set (0.00 sec)alter table 指定表名 modify 指定列名(字段) 新的类型(新的长度) -- 修改类型将 grade 改为 int 类型的 成绩alter table stu modify grade int(11);Query OK, 0 rows affected (0.02 sec)Records: 0 Duplicates: 0 Warnings: 0 desc stu;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(11) | YES | | NULL | || name | varchar(10) | YES | | NULL | || age | tinyint(4) | YES | | NULL | || grade | int(11) | YES | | NULL | |+-------+-------------+------+-----+---------+-------+4 rows in set (0.00 sec)alter table 指定表名 change 旧的列名 新的列名 新类型(类型长度) --修改列名+类型将 grade 列改成 addr 列 类型改成 varchar(10);alter table stu change grade addr varchar(10);Query OK, 0 rows affected (0.02 sec)Records: 0 Duplicates: 0 Warnings: 0 desc stu;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(11) | YES | | NULL | || name | varchar(10) | YES | | NULL | || age | tinyint(4) | YES | | NULL | || addr | varchar(10) | YES | | NULL | |+-------+-------------+------+-----+---------+-------+4 rows in set (0.00 sec)alter table 指定表名 drop 指定列名; -- 将指定列删除alter table stu drop addr;Query OK, 0 rows affected (0.02 sec)Records: 0 Duplicates: 0 Warnings: 0 desc stu;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id | int(11) | YES | | NULL | || name | varchar(10) | YES | | NULL | || age | tinyint(4) | YES | | NULL | |+-------+-------------+------+-----+---------+-------+3 rows in set (0.00 sec)DMLData Manipulate Language - 数据操作语言 (记录的增删改查)insert :插入记录insert into 指定表(指定列) values(指定值);指定插入一条记录 id 1001 name = 孙悟空 age = 100insert into stu(id, name, age) values(1001, '孙悟空', 100);Query OK, 1 row affected (0.01 sec) select * from stu;+------+-----------+------+| id | name | age |+------+-----------+------+| 1001 | 孙悟空 | 100 |+------+-----------+------+1 row in set (0.00 sec)values 赋值顺序需要和指定列顺序保持一致insert into stu(name, id, age) values('沙和尚', 1002, 100);Query OK, 1 row affected (0.00 sec) select * from stu;+------+-----------+------+| id | name | age |+------+-----------+------+| 1001 | 孙悟空 | 100 || 1002 | 沙和尚 | 100 |+------+-----------+------+2 rows in set (0.00 sec)不指定列, 默认按照所有列顺序插入 valuesinsert into stu values(1003, '白龙马', 100);Query OK, 1 row affected (0.00 sec) select * from stu;+------+-----------+------+| id | name | age |+------+-----------+------+| 1001 | 孙悟空 | 100 || 1002 | 沙和尚 | 100 || 1003 | 白龙马 | 100 |+------+-----------+------+3 rows in set (0.00 sec)update :更新记录update 表名 set 字段1 = 值1 字段2 = 值2 where 条件指定记录;指定设置 id = 1003的 记录 name = 猪八戒 (跟新记录)update stu set name = '猪八戒' where id = 1003;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0 select * from stu;+------+-----------+------+| id | name | age |+------+-----------+------+| 1001 | 孙悟空 | 100 || 1002 | 沙和尚 | 100 || 1003 | 猪八戒 | 100 |+------+-----------+------+3 rows in set (0.00 sec)delete :删除记录delete from 表名 where 条件指定记录;指定删除id = 1003的记录delete from stu where id = 1003;Query OK, 1 row affected (0.00 sec) select * from stu;+------+-----------+------+| id | name | age |+------+-----------+------+| 1001 | 孙悟空 | 100 || 1002 | 沙和尚 | 100 |+------+-----------+------+2 rows in set (0.00 sec)DQLData Query Language - 数据查询语言select :从一个或者多个表中检索特定的记录数据准备insert into stu values(1003, '猪八戒', 100);insert into stu values(1004, '白龙马', 100);insert into stu values(1009, '白骨精', 78);insert into stu values(1006, '哪吒', 88);insert into stu values(1004, '观音', 99);select * from stu;+------+-----------+------+| id | name | age |+------+-----------+------+| 1001 | 孙悟空 | 100 || 1002 | 沙和尚 | 100 || 1003 | 猪八戒 | 100 || 1004 | 白龙马 | 100 || 1006 | 哪吒 | 88 || 1004 | 观音 | 99 || 1009 | 白骨精 | 78 |+------+-----------+------+7 rows in set (0.00 sec)select 指定列查询select 指定列1, 指定列2, 指定列3... from 表名;指定查询 stu 表中的name + age 列信息select name, age from stu;+-----------+------+| name | age |+-----------+------+| 孙悟空 | 100 || 沙和尚 | 100 || 猪八戒 | 100 || 白龙马 | 100 || 哪吒 | 88 || 观音 | 99 || 白骨精 | 78 |+-----------+------+7 rows in set (0.00 sec)select 条件查询select * from 表名 where 条件指定查询记录条件指定查询 id = 1003的记录select * from stu where id = 1003;+------+-----------+------+| id | name | age |+------+-----------+------+| 1003 | 猪八戒 | 100 |+------+-----------+------+1 row in set (0.00 sec)select 去重查询select distinct 指定去重列 from 表名;按照id号进行去重查询select id from stu;+------+| id |+------+| 1001 || 1002 || 1003 || 1004 || 1006 || 1004 || 1009 |+------+7 rows in set (0.00 sec) select distinct id from stu;+------+| id |+------+| 1001 || 1002 || 1003 || 1004 || 1006 || 1009 |+------+6 rows in set (0.00 sec)select 排序查询 (查询后排序)select * from stu order by 指定列1 排序规则, 指定列2 排序规则;排序规则:默认升序, asc 指定升序 desc 指定降序先按照 id 升序排序, id 相同再按照 age 降序排序select * from stu order by id asc, age desc;+------+-----------+------+| id | name | age |+------+-----------+------+| 1001 | 孙悟空 | 100 || 1002 | 沙和尚 | 100 || 1003 | 猪八戒 | 100 || 1004 | 白龙马 | 100 || 1004 | 观音 | 99 || 1006 | 哪吒 | 88 || 1009 | 白骨精 | 78 |+------+-----------+------+7 rows in set (0.00 sec)select 起别名select 指定列1 别名, 指定列2 别名... from stu;将 age 取个别名为年龄select age '年龄', name from stu;+--------+-----------+| 年龄 | name |+--------+-----------+| 100 | 孙悟空 || 100 | 沙和尚 || 100 | 猪八戒 || 100 | 白龙马 || 88 | 哪吒 || 99 | 观音 || 78 | 白骨精 |+--------+-----------+7 rows in set (0.00 sec)select 聚合函数分组查询

  

select 聚合函数名(指定列) from 表名; 指定对于表每一列进行聚合函数查询一下表中所有的 age 和 age 最大 最小值select sum(age) from stu;+----------+| sum(age) |+----------+| 665 |+----------+1 row in set (0.00 sec) select min(age) from stu;+----------+| min(age) |+----------+| 78 |+----------+1 row in set (0.00 sec) select max(age) from stu;+----------+| max(age) |+----------+| 100 |+----------+1 row in set (0.00 sec)select 指定分组字段 聚合函数(指定字段) from 表名 group by 指定分组字段注意:分组也就意味着去重,一旦分组之后, 就会按照分组列进行去重,一旦去重之后意味着什么? 我们跟随着去重列一同显示出来的其他列也必须是聚合在一起的上述这句话必须理解清楚,你想想,分组前是很多行,分组之后进行了去重,记录需要从多条记录压缩成一条记录,也就意味着,我们需要聚合多条记录.依照age 进行 分组, 将多条记录聚合压缩成分组记录, 名字同组的联在一起,并且统计同组人数select age, count(*), group_concat(`name`) from stu group by age;+------+----------+-----------------------------------------+| age | count(*) | group_concat(`name`) |+------+----------+-----------------------------------------+| 78 | 1 | 白骨精 || 88 | 1 | 哪吒 || 99 | 1 | 观音 || 100 | 4 | 孙悟空,沙和尚,猪八戒,白龙马 |+------+----------+-----------------------------------------+4 rows in set (0.00 sec)select 分页查询

  

何为分页 limit n, m; 从 n 条记录开始显示m条记录select * from limit 起始记录数, 每页的记录数起始记录数目如何计算, 是每一页的记录数的整数倍eg: 查看第一页的记录,和查看第二页的记录 (每页记录数为3)select * from stu limit 0,3;+------+-----------+------+| id | name | age |+------+-----------+------+| 1001 | 孙悟空 | 100 || 1002 | 沙和尚 | 100 || 1003 | 猪八戒 | 100 |+------+-----------+------+3 rows in set (0.00 sec) select * from stu limit 3,3;+------+-----------+------+| id | name | age |+------+-----------+------+| 1004 | 白龙马 | 100 || 1006 | 哪吒 | 88 || 1004 | 观音 | 99 |+------+-----------+------+3 rows in set (0.00 sec) select * from stu limit 6,3;+------+-----------+------+| id | name | age |+------+-----------+------+| 1009 | 白骨精 | 78 |+------+-----------+------+1 row in set (0.00 sec)如上分别是查看第一页 第二页,第三页的 记录

  

总结熟练的掌握理解了上述这些东西,就大致可以算是会操作数据表了多表查询 将两个表以不同的方式各种形式连接起来联合查询,我们需要不断地积累,根据不同地实际业务场景采取不同地多表查询连接方式灵活地嵌套使用 select 语句, 一条select 查询结果可以做条件 还可以做 表进行内连接查询.应老规矩:简要地总结上述关键字操作DDL回忆use 数据库; 指定数据库操作show databases; 显示所有数据库 show tables; 显示所有数据表create table 表名; create database 库名; 新建表 + 库 不安全 加上 if not exists 修饰可避免报错drop table 表名; drop database 库名; 删除表 + 库 不安全 加上 if exists 修饰可避免报错alter table 表名 add/modify/change 列调整; 可以修改表结构alter table 表名 drop 列名; 删除列DML回忆insert into 表名(指定字段) values(指定值); 增加记录delete from 表名 where 指定删除记录; 删除记录update 表名 set 字段 = 值 where 指定跟新记录; 跟新记录DQL回忆select 指定列 from 表; (指定列查询)select distinct 列 from 表; 去重查询列select * from 表 order by 指定排序列 排序规则select 指定分组字段 聚合函数 from 表 where ... group by 分组字段聚合函数是为了在分组去重之后压缩多条记录为一条.select * from 表 limit 起始记录数, 每页记录数; 分页查询inner join 内连接 left outer join right outer join 外连接, 关系部分 + 其中一表独有部分select 查询结果可做条件 + 可以新表再 select 查询 (子查询)

免费咨询
免费获取加盟资料