【MySQL数据库】 二

本文主要介绍了数据库操作的操作流程 , 以及数据库和数据表的基本操作 . 

一.数据库操作工作流程

1.用户在客户端输入SQL

2.客户端把SQL通过网络发送给服务器

3.服务器会执行这个SQL,把结果返回给客户端

4.客户端收到结果显示到界面上

二.数据库的操作

1.创建数据库

create database 数据库名;

*后面加上if not exists 如果数据库已经存在,也不会报错(适用于批量执行sql)

*设置字符集: 后面加上character set utf8 / charset utf8. (手动设定的一个字符集很关键,mysql默认字符集是拉丁文, 不设置字符集后续如果插入中文可能会出现乱码)

>字符集

*针对汉字进行编码

*英文字母在计算机使用ASCII表示(使用 数字 表示字符) , 但是ASCII只能表示英文字母和标点符号以及阿拉伯数字

汉字的表示一般有两种

也是使用数字来表示汉字,在这两个表上,同一个汉字表示的数字不同;同一个数字,表示的汉字也不同

*gbk

使用两个字节,表示一个汉字

*uft8

使用三个字节,表示一个汉字

目前utf8是主流,因为utf8不仅可以表示中文,其他国家的语言字符也能表示!

说明:

* java中使用的字符集默认是utf8

* mysql默认字符集是拉丁文

* mysql的utf8是残缺版(缺少了emoji表情),完整版是utf8mb4

注意:

1.不区分大小写

2.命令行cmd输入的sql必须以分号 ; 结尾

Tip:中文输入时使用英文标点 , 省去了切换中英文的麻烦 , 方便编写代码 . 

【MySQL数据库】 二_第1张图片

2.查看所有数据库

show databases;

【MySQL数据库】 二_第2张图片

3.选中数据库

use 数据库名;

一旦选中某个数据库,后续操作,就都是针对该数据库展开了

4.删除数据库

drop  database 数据库名;

注意:

在工作中,这是一个危险操作,一旦删掉数据库,数据库中的所有数据都没了,

那么如何防患于未然?

1.设置权限,限制普通用户的删除权限

2.备份

三.表的操作

1.创建表

create table (列名 类型, 列名 类型 , … )


mysql数据类型

*数字类型

BIT(M)

M指定位数,默认为1

二进制,只能存0,1

TINYINT

1字节

相当于Java里的Byte

SMALLINT

2字节

相当于Java里的Short

INT

4字节

相当于Java里的Integer

BIGINT

8字节

相当于Java里的Long

FLOAT(M,D)

4字节 不能精确表示小数

相当于Java里的Float

DOUBLE(M,D)

8字节  不能精确表示小数

相当于Java里的Double

DECIMAL(M,D)

表示小数,M为有效长度,D为小数点位数

能够精确表示小数

NUMERIC(M,D)

同上

注意:

DECIMAL虽然精确存储,但是占用的空间也更多,效率更低

*字符串类型

varchar(size)

可变长字符串,size表示长度(单位是字符,不是字节)

text

长文本数据,不常用

mediumtext

中等长度文本数据,不常用

blob

二进制形式的长文本数据,不常用

注意:

varchar(10) 最多是个字,哪怕是汉字,也是十个. 

*时间类型

时间戳:以1970年1月1日0点0时0分为基准,计算当前时刻和基准时刻的秒数/毫秒之差

timestamp

4字节

范围从1970-2038年

datetime

8字节

范围从1000-9999年

2.显示数据库中的所有表

show tables;

【MySQL数据库】 二_第3张图片

3.查看指定表结构

desc 表名;

(describe)

【MySQL数据库】 二_第4张图片

说明:

int(11)的含义是:打印的时候,显示最多占11个字符这么宽,和存储范围无关

4.删除表

drop  table 表名;

说明:

和删除数据库一样,都是危险的操作

在创建和删除表的时候,可以加上if exists或者 if not exists

mysql注释:

#

--


上述是数据库和表的基本操作


价格使用什么类型表示?

价格一般是保留两位小数

* 如果用double/float , 小数表示不精确

* 如果用decimal, 有精度保证,但是效率低

正确的做法是:使用int (精度+效率)

用分的单位来表示钱

比如用1234分来表示12.34元

你可能感兴趣的:(MySQL数据库,数据库,mysql)