【百日精通JAVA | SQL篇 | 第二篇】数据库操作

一、数据库实现过程

1.用户在客户端输入SQL

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

3.服务器执行这个SQL,改变数据并把结果返回给客户端

4.客户端收到结果,显示到屏幕上

二、数据库操作

创建数据库

create database xxx;

查看数据库

创建数据库,查看数据库时候,成功以后,下面有个xx.xx sec 这是什么意思,意味着这步骤操作运用了XX秒,像0.01sec,意思是0.01秒 ,0.00sec,是不是意味着他没花费时间,其实并不是,他只是小于0.01秒

注意:

        create database ... 相当于关键字

        SQL关键字不区分大小写,但是平常我们写的时候多用小写

        创建的数据库名,随便起,但是不得重复

        每个单词至少有一个空格

        每句SQL语句需要有一个分号结尾

扫描二维码关注公众号,回复: 17570960 查看本文章

选中数据库

use 52sql;

一旦我们选中了这个数据库,后续基本操作都是针对该数据库展开的;这一步是后续操作的大前提。

 面试真题

删除数据库

drop database 52sql;

有个问题:如果我把MYSQL自带的数据库删除了会怎么样?

        重装下数据库就行了,不会有太大影响。

 删库的危害?

这一步操作非常危险,因为一旦删除了数据库,数据库中的数据就消失了,很难恢复,如果是一些值钱的数据,那么麻烦就大了,恭喜你可以跑路了。

一旦删库跑路了,这个影响可就大了;一般衡量影响,大公司都是按秒计算损失,一个不小心,就是几百万的损失,这还是在很短时间内数据恢复了;如果数据恢复不回来怎么办?那完犊子了。

只要不是主观故意的情况,删库一般是不会吃上公家饭的,但是估计能保住饭碗。

如何针对上述危险操作,防患于未然?

1.权限 不同用户,有不同权限,能进行的操作都是不一样的。

2.备份  万一我们不小心误删数据库数据,通过备份将之前的备份数据,恢复回来。

3.操作的时候,我建议你拉上其他组员跟你一起,拉个 ”分锅侠“ ,有锅一起背,最好找你领导或者导师(因为他们最不想看到你惹祸)。

三、针对数据库已经存在,再创建会报错

create database if not exists 52sql;

即便已经存在了同名数据库,也不会发生报错。

create database 52sql;对一条条执行SQL,不会产生什么影响,主要是我们导入SQL文件时,批量执行sql语句时,避免因为报错,导致中断执行。

四、创建数据库并指定字符集

        创建数据库的同时,我们可以指定字符集。

       

     字符集是什么?

        我们知道常见的字符表有 utf8 gbk  ascii码表

        字符集针对英文、汉字进行编码

        英文字母如何在计算机中表示的?

        ascii 这个编码格式 是利用数字来表示字符。

        但是我们发现在ASCII表只能表示英文字母和标点符号,以及阿拉伯数字。汉字要表示的内容特别多,毕竟几万个汉字,ASCII表肯定不够用,我们可以搞一个更大的表来表示汉字。

        这个时候演化出来很多种表示方式,但是我们常用的表示方式,有两种:gbk utf8,这两个表,同一个汉字,但是表示的数字不同;同一个数字对应的汉字也不同。

        gbk 使用两个字节表示一个汉字,  utf8使用3个字节表示一个字节。,目前windows简体中文版,系统编码默认是gbk。

        但是目前最主流的中文编码格式是utf8,他能表达的汉字特别多,而且其他国家的语言文字符号都能表示,所以他越来越主流了。

        并且java的字符集在编辑运行的时候,通过命令行参数显示指定的,一般默认是utf8。

五、MYSQL为什么要设定字符集?

MYSQL默认的字符集是拉丁文的,手动设定一个字符集是非常关键的,主要是后续如果要插入一些中文,如果不是UTF8或者GBK可能造成中文乱码

注意

mysql的utf8是残缺的(残缺了一些表情),如果我们在网页当中存储信息的时候,误加入了表情之类的符号,就会导致存储失败,完整版是utf8mb4,其实平常设定字符集的时候都无所谓。

六、数据表操作

关系型数据库种,数据是以表的方式来进行组织的。类似于(Excel)

每个数据库中,里面就可以有很多个数据表

每个表可以有很多行,每一行又可以有很多个列(字段)。

1.创建表

create table 表名(列名 类型 列明 类型 ... ...)

这里面的类型,MYSQL本身也支持很多的数据类型

decimal 能够精确表示小数,float和double是不能精确表示小数的,因此如果用double和float来相加时可能出现0.1+0.2 = 0.3000000004,这种情况,所以我们利用decimal来作为类型存储数据。

varchar(SIZE)属于可变长的字符串 , SIZE表示最大长度,单位是字符(不是字节)

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

在MYSQL当中,TIMESTAMP时间戳,用于存储时间。

什么是时间戳?

计算机表示时间的一种经典方式,以1970年1月1日0时0分0秒为基准,计算当前时刻和基准时刻的秒数/毫秒数之差。

TIMESTAMP这个时间戳,这个类型最多存储到2038年,所以我们平常使用的的时间日期类型为Datetime类型,范围从1-9999.

2.查看当前数据库中所有的表。

show tables;

3.查看指定表的结构

Field指的是,一行里有几列,一个为id,一个为name,类型为int和varchar

4.删除表

        删除表,相当于删除了表中所有数据和删除数据库差不多,但是非常危险的操作,在公司里,不能轻易删除表。

注意:

        varchar(20\50)这种数字是怎么定义的,这个地方其实是我自己随意填写的,但是在公司当中会有专门的产品经理,负责明确产品的需求,尤其是明确需求当中的各个细节,注入某个字段的最大长度,我们照着需求进行修改,如果产品经理没有提供,我们需要跟他进行确认。

猜你喜欢

转载自blog.csdn.net/m0_73367097/article/details/146768381
今日推荐