mysql 保留两位小数 查询_玩转MySQL数据库5天就够了(2)

本文介绍了MySQL数据库的基本操作,包括SQL语句的分类,如DDL、DML、DCL和DQL。重点讲解了如何在MySQL中创建、查看、更新和删除数据库以及数据表。在数据表操作中,详细讨论了整数型、小数型(定点和浮点)以及字符串类型字段的使用,并展示了如何进行数据保留两位小数的查询。
摘要由CSDN通过智能技术生成

6f4976554d0503805ed7f1aad88ae863.png

一、MySQL概述

1、MySQL体系结构图

e8d7885934bfbab8dbe4e4566f60b66f.png

2、与数据库相关的几个名词

  • 数据库:database
  • 数据表:table
  • 字段:field(列信息)
  • 记录:record(行信息)
注:1)一个MySQL数据库实例,可以同时创建多个database数据库
​ 2)一个database数据库可以同时拥有多个table数据表
​ 3)每个表都有自己的表头信息,如ID、Name、Gender、Addtime,称为field字段
​ 4)每个表可以拥有多个记录,如Tom、King、Kylie、Jennie等个人信息

通过以上信息,我们可以得出,数据记录是如何保存和存储在数据库里的,即:

数据(记录record) —> 数据表(table) —> 数据库(database)

那么由此可知,想要存放一条记录,那么必须得先有==数据库—>数据表—>数据记录==

二、MySQL语句

1、什么是SQL语句

SQL 是 Structure Query Language(结构化查询语言)的缩写,它是使用关系模型的数据库应用语言,由 IBM 在 20 世纪 70 年代开发出来,作为 IBM 关系数据库原型 System R 的原型关 系语言,实现了关系数据库中的信息检索。

20 世纪 80 年代初,美国国家标准局(ANSI)开始着手制定 SQL 标准,最早的 ANSI 标准于 1986 年完成,就被叫作 SQL-86。标准的出台使 SQL 作为标准关系数据库语言的地位得到了 加强。SQL 标准目前已几经修改更趋完善。

正是由于 SQL 语言的标准化,所以大多数关系型数据库系统都支持 SQL 语言,它已经发展 成为多种平台进行交互操作的底层会话语言。

2. SQL语句的分类

  • DDL(Data Definition Languages)语句:

数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括 create、drop、alter、rename、truncate

  • DML(Data Manipulation Language)语句:

==数据操纵语句==,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括 insert、delete、update等。

  • DCL(Data Control Language)语句:

数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。

  • DQL(Data Query Language)语句:

数据查询语句,用于从一个或多个表中检索信息。主要的语句关键字包括 select

3. MySQL中如何求帮助

  • 亘古不变的官档

MySQL5.6官方文档

MySQL5.7官方文档

  • man文档

man文档可以对mysql的一些基本工具及后台命令求帮助,比如:

[root@db01 ~]# man mysql
[root@db01 ~]# man mysql_install_db
[root@db01 ~]# man mysqldump
[root@db01 ~]# man mysqld
  • MySQL的命令行求帮助
mysql> help;
mysql> ?
mysql> help create table;

根据内容进行查找帮助
mysql> ? contents
   Account Management
   Administration
   Data Definition
   Data Manipulation
   Data Types
   Functions
   Functions and Modifiers for Use with GROUP BY
   Geographic Features
   Language Structure
   Storage Engines
   Stored Routines
   Table Maintenance
   Transactions
   Triggers
   
寻求账户管理的帮助(一级一级的向内部查)
mysql> ? Account Management
mysql> ? CREATE USER

三、数据库操作

1、创建数据库

创建db1库
create database db1;
创建db1库并指定默认字符集
create database db1 default charset gbk;
如果存在不报错(if not exists)
create database if not exists db1 default character set utf8;
说明:不能创建相同名字的数据库!

2、查看数据库

查看所有数据库:
mysql> show databases;

3、更新数据库

所谓的更新数据库,主要是更新数据库的字符集。

更改db1库的默认字符集
alter database db1 default character set gbk;
alter database db2 default charset utf8;

注:数据库名称不能更新,只能删除后在重新创建。

4、删除数据库

删除db1库
drop database db1;

四、数据表操作

1、创建数据表

第一步:选择数据库

选择数据库
mysql> use db1;

第二步:创建数据表

create table 表名 (字段1,字段2,...)
create table 表名 (字段1 数据类型(字符长度),字段2,...)
create table 表名 (字段1 数据类型(字符长度) 约束条件,字段2,...)

案例:创建数据包

create table t1(
  id int not null auto_increment primary key,
  name varchar(40) not null,
  age tinyint unsigned default 0,
  mobile char(11),
  remark varchar(255)
);

备注:
not null,当前字段插入或更新数据时不能为空
auto_increment,自动增长,插入时设置为null即可
primary key,主键,要求此字段的每个值必须唯一
unsigned,无符号型,说白了就是必须为0或正整数
default,默认值,不写默认就是这个值

2、字段类型(了解)

2aaa969b67c0db418e0e7138af45739e.png

☆ 整数型

2459747c8c26a2d76bb4f9c216fa6049.png

☆ 小数型

① 定点类型(精确值)=> DECIMAL和NUMERIC

DECIMALNUMERIC 类型的存储精确的数值数据。使用这些类型时,重要的是要保留精确的精度,例如使用货币数据。在MySQL中, NUMERIC被作为DECIMAL来应用,所以下面的举例DECIMAL同样适用于 NUMERIC

price DECIMAL(5,2)
在上面的例子中,薪水字段的类型为decimal,表示精确的数字。其中,5代表精度,2代表刻度。
精度表示数值存储的有效位数,刻度表示小数点后面可存储的位数。
DECIMAL(5,2)能够存储五位数和两位小数的任何值,因此可以存储在price列中的值的范围-999.99是 999.99

特殊注意:
DECIMAL(M)和DECIMAL(M,0)是相等的,存储长度取决于M的值,默认情况下M值为10.刻度为0表示没有小数。

② 浮点类型(近似值)=> FLOAT和DOUBLE

FLOATDOUBLE类型代表近似数字数据值。MySQL对于单精度值使用四个字节,对于双精度值使用八个字节。 FLOAT单精度浮点数精确到约7位小数,DOUBLE双精度浮点数精确到大约15位小数 。FLOAT类型会随着数值的增大精度会减小。

FLOAT(M,D),其中,M表示存储的有效位数,D代表小数点后面的位数;即整数位数+小数部分不能超过M值。
colum1 FLOAT(7,4)
上面例子中,如果你插入为999.00009到cloum1列,那么mysql在存储时会四舍五入变为999.0001插入。

③ 对比总结

248016b3594e7a5d7303822eb57c6cb1.png

☆ 字符串类型

① CHAR类型

CHAR类型的字符串为定长.长度范围是0到255之间的任何值.占用定长的存储空间,不足的部分用空格填充;读取时删掉后面的空格。

存储空间:CHAR(M)类型的存储空间和字符集有关系,一个中文在utf8字符集中占用3个bytes、gbk占用2个bytes、数字和字符统一用一个字符表示。

存储机制:在不够M长度时,MySQL在存储数据时,需要填充特殊的空格.

举个栗子:

name CHAR(M),M表示字符数

② VARCHAR类型

VARCHAR是变长存储,仅使用必要的存储空间。

存储空间:VARCHAR(M)类型的存储空间和字符集有关系,一个中文在utf8字符集中占用3个bytes、gbk统一占用2个bytes、数字和字符一个字符表示。

存储机制:VARCHAR(M)字段存储实际是从第二个字节开始存储,然后用1到2个字节表示实际长度,剩下的才是可以存储数据的范围,因此最大可用存储范围是65535-3=65532字节;

第一个字节标识是否为空.(长度小于255字节,使用一个字节来表示长度;大于255字节使用两个字节来表示长度)。

③ TEXT类型

长度超过VARCHAR最大长度的字符,都可以使用TEXT类型进行保存。

☆ 日期时间类型

f183ad90b12512ec4095eb71f6ad5e52.png

日期时间类型字段定义主要看需要哪种格式!

3、查看数据表

查看所有表
mysql> show tables;

4、更改数据表

更改表属性(修改字段、修改引擎)

增加一列成为第一列
alter table t1 add id int first;
在age后面增加一列叫sex
alter table t1 add sex enum('男','女','保密') after age;

删除age这个列
alter table t1 drop age;

修改列名和数据类型
alter table t1 change id ID bigint;
修改列的数据类型
alter table t1 modify ID int;

查看数据库有哪些存储引擎
show engines;
修改表的存储引擎
alter table t1 engine MyISAM;
查看修改存储引擎是否成功
show create table t1;
修改表的默认字符集
alter table t1 default charset=utf8;

更改表名称:

移动表到另一个库里并重命名
rename table db01.t1 to db02.t11;
或者
alter table db01.t1 rename db02.t11;

只重命名表名不移动
rename table tt1 to tt2;
或者
alter table tt1 rename  tt2;

5、删除数据表

drop table 表名;

五、数据操作

1、添加数据

以下是往表里插入数据的几种不同方法
insert into 表名 set 字段1=xx,字段2=xx;
insert into t1 set id=3,name='li';

insert into 表名 values(值1,值2),(值1,值2)
insert into t1 values(1,'zhang'),(2,'wang');

insert into 表名 (指定字段1,指定字段2) values(字段1值,字段2值);
insert into t2 (id,name) values(3,'li');


insert into t1 select * from t2;
insert into t1(name) select name from t2;
说明:
1.插入的数据来自于另外一张表
2.一定要保证两张表的结构一致(插入表里字段数和后面表查找出来的字段要相匹配)
3.两张表结构完全一致;或者人造让两边字段一致

2、查询数据

查询表里所有记录
select * from t1;

3、更新数据

update 表名 set 字段1=新值,字段2=新值,... where 条件;

案例:
update t1 set name='harry' where id=1;
update t1 set name='jack',id=33 where id=3;
update t1 set id=222,name='wanger' where id=2;

4、删除数据

删除表里所有的记录
delete from 表名;

delete from t1;
truncate 表名;

根据条件删除
delete from t1 where id>3;
注意:
truncate不能加where条件删除数据;只能全部删除表里的所有记录。

5、delete与truncate

- delete:删除数据记录
  - 数据操作语言(DML)
  - 在事务控制里,DML语句要么commit,要么rollback
  - 删除大量记录速度慢,只删除数据不回收高水位线
  - 可以带条件删除
- truncate:删除所有数据记录
  - 数据定义语言(DDL)
  - 不在事务控制里,DDL语句执行前会提交前面所有未提交的事务
  - 清里大量数据速度快,回收高水位线(high water mark)
  - 不能带条件删除
学好Oracle的六条总结 1、如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL, 但可以看懂它们,你就可以跳到2。否则请先学习一下数据库基础和SQL语言, 不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应用 边学习、记忆。2 、要想学好ORACLE,首先要学习ORACLE的体系结构,现在你不需要深入 理解它们,但要分清几个关键的概念: instance (实例)、数据文件、日志文件、参数文件、数据文件与表空间的关系 3、2是有关ORACLE的一些基本概念,下面要学习的是一些简单的的实际操作 ,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此过程 中你将对SQL和ORACLE体系结构有个更深入的了解。 4、到了这一步你基本上算是初步掌握了ORACLE,下面将要根据你的方向来具 体学习其它的ORACLE知识了。如果你是开发人员,则需要更多地去学习 PL/SQL以及DEVELOPER,而这将是一门新的课程。如果你是一名DBA, 请继续。 5、可以根据自己的实际情况,进行有选择的学习,也就是说下面的内 没有特别顺序要求。可以选择深入学习ORACLE的管理、备份与恢复、性能 调整、网络等。当然在学习这些知识的过程中,如果有实际的工作更好,这样 可以在实际中成长,学会TROUBLE SHOOTING 目录 1.1 数据库基本知识 1.2 关系数据库 1.3 数据库设计基础 1.4 SQL基本命令 1.5 Oracle简介 1.6 启动和关闭Oracle 1.7 Oracle 命令复习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值