😽个人主页:tq02的博客_CSDN博客-C语言,Java,Java数据结构领域博主
🌈梦的目标:努力学习,打败数据库,拼搏一切,让自己的未来不会有遗憾。
🎁欢迎各位→点赞👍 + 收藏⭐ + 评论📝+关注✨
本章讲解内容:数据库的操作 以及 表结构的操作(DDL)使用:MySQL 数据库
前言
一般数据库分为两种,关系型数据库和非关系型数据库。而我们使用MySQL操作的是关系型数据库。
SQL分类:
- DDL数据定义语言,用于维护存储数据的结构。代表指令:create,drop,alter
- DML数据操纵语言,用于对数据进行操作。代表指令:insert,delete,updat DML中又单独分了一个DQL,数据查询语言,代表指令:select
- DCL数据控制语言,主要负责权限管理和事物。代表指令:grant,revoke,commit
接下来通过对数据库、表进行操作,来理解。
注:在MySQL当中,不区别大小写。
一.数据库的操作
** 1.1显示当前数据库**
显示当前数据库,显示的是 目前为止 所拥有的数据库。
语法格式:**SHOW DATABASES;**
注:MySQL中会有4个自带的,因此千万不能操纵这4个数据库。否则可能会导致MySQL异常,需要重新安装。
1.2创建数据库
创建有3种方式
- 创建一个新的数据库,用于存放数据。 语法格式:CREATE DATABASE 数据库名;
- 创建一个数据库,不确定是否存在。 (使用IF NOT EXISTS 如果存在则不创建) 语法格式:CREATE DATABASE IF NOT EXISTS 数据库名;
- 创建一个 指定字符集** 的数据库,不确定是否存在。 语法格式:CREATE DATABASE IF NOT EXISTS 数据库名 CHARACTER SET 字符集名;**
注:1.如果创建的数据库没有指定字符集时,默认为 utf8 。
2.由于MySQL的utf8编码不是真正的utf8,它不包含某些复杂的中文字符,建议使用utf8mb4;
3.字符集一般使用两种,**gbk和utf8**,不同的字符集,字符排序是不一样的。 gbk使用2个字节代表一个中文,utf8使用3个字节代表一个中文。
创建实例图:
1.3使用数据库
此方式,更加趋向于,指定数据库,然后对其进行其他操作。
语法格式:**use 数据库名**;
1.4删除数据库
语法格式:**drop database 数据库名**;
此操作,将数据库彻底删除,包含存储在数据库中的表和数据。慎之又慎!!!
二.数据类型
数据表里存放的数据是需要数据类型的。而数据库的数据类型和编程语言的数据类型不同,因此需要单独的学习。
可是有人会说怎么麻烦,为什么不通用呢?因为数据库出现的时间比Java语言早。
2.1数值类型
数值分为整型和浮点型。
数据类型大小说明对应的java类型BIT [(M)]M指定位数,默认为1二进制数,M范围1到64,存储数值范围从0到2^M-1默认为1时,对应BooleanTINYINT1字节 ByteSMALLINT2字节 ShortINT4字节 IntergerBIGINT8字节 LongFLOAT(M,D)4字节单精度,M指定长度,D指定小数位数 FloatDOUBLE(M,D)8字节 DoubleDECIMAL(M,D)M/D最大值+2双精度,M指定长度,D指定小数位数 BigDecimalNUMERIC(M,D)M/D最大值+2双精度,M指定长度,D指定小数位数 BigDecimal
注:1字节(bytes)=8bit。 数值类型可以指定为无符号,表示不取负数。
2.2字符串类型
数据类型大小说明对应的java类型 VARCHAR(SIZE) 0 —— 65,535字节可变长度字符串 String TEXT 0 —— 65,535字节长文本数据 String MEDIUMTEXT 0 —— 16 777 215 字节中等长度文本数据 String BLOB 0 —— 65,535字节二进制形式长文本数据 byte[ ]
2.3日期类型
数据类型大小 说明对应的java类型DATETIME 8字节范围从1000到9999年,不会进行时区的检索及转换。java.util.Date、java.sql.TimestampTIMESTAMP 4字节范围从1970到2038年,自动检索当前时区并进行转换java.util.Date、java.sql.Timestamp
一般使用DATETIME。
三.数据表的操作
需要操作数据表,我们需要先选择数据库: use 数据库名;
3.1 创建表结构。
语法格式:create Table 表名( 字段名1 数据类型 [ 列级完整性约束], ------------------------- [ 列级完整性约束], 字段名n 数据类型 [ 列级完整性约束], );
列级完整性约束:
- NOT NULL :限制列取值不为空。
- DEFAULT: 给定列的默认值。
- UNIQUE:限制列的取值不重复。
- CHECK:限制列的取值范围。
- PRIMARY KEY:指定本列为主码。
- FREIGN KEY :定义本列为引用其他表的外码。
注:列级完整性约束 可不用 定义,目前刚刚接触,之后会有更详细讲解。
comment--->注释,可加可不加。且中文需要英文的单引号包括。
讲解:
3.2查看数据库中拥有的数据表
语法格式:show tables;
3.3查看指定的表结构
语法格式:**desc 表名;**
讲解:
3.4修改表结构
对数据表的结构进行修改。
1.修改列的数据类型定义: alter** table 表名 **** MODIFY**** 字段名 新字段类型 ; ** 2.修改列名 : alter table 表名 CHANGE COLUMN 旧字段名 新字段值 字段类型 ; ** 3.更改表名:alter table 旧表名 RENAME 新表名**** ****;**
4.添加列:**alter** **table** **表名 add 字段名 字段类型;**
1.修改列的数据类型定义
** 2.修改列名**
** 3.更改表名**
4.添加列
3.5删除表结构
1.将数据表彻底删除:**drop 表名; **
2.删除数据表字段:2种,第一种删除单列:ALTER TABLE 表名 DROP 字段;
第二种删除多列: ** ALTER TABLE 表名 DROP 字段1,字段2;**
删除字段book_price之后,表中便无此字段。
总结
理解方式: 数据库------>仓库,数据表------> 存放在仓库中已分类好的货物 ,数据库包含数据表。
而数据库的操作步骤:
1.用户在客户端输入 SQL。 2.客户端会把 SQL 通过网络发送给服务器 3.服务器执行这个 SQL把结果返回给客户端 4.客户端收到结果,显示到界面上
版权归原作者 tq02 所有, 如有侵权,请联系我们删除。