MySQL表的基本操作

第一章 MySQL 库表操作

1.5. 表的基本操作
1.5.1. 数据类型
   
        类型组成:数字、文本、日期/ 时间类型
     
   整型
注意:
 
 1:实际开发的角度,一定要为合适的列选取合适的数据类型,如
     
      一个枚举字段只有 0 1 两个枚举值,选用 TINYINT 就足够了,但在开发场景下却使用了
BIGINT ,这就造成了资源浪费
     
       简单计算一下,假使该数据表中有 100W 数据,那么总共浪费了 700W 字节也就是 6.7M 左右,
如果更多的表这么做了,那么浪费的更多
 
  2:整型 (N) 表现形式:有时代码写法为 int(10), 表示数字宽度限制,要求如下:
   
      无论 N 等于多少, int 永远占 4 个字节
       
      N 表示的是显示宽度,不足则补 0 ,超过长度则会无视长度直接显示整个数字
浮点型
注意:可以使用 float(M D) double(M D) 格式限制宽度按( M )和精度( D ),如 float
(3,2 ),不指定M D 的时,会按照实际的精度来处理
定点型: decimal(size,d) ,作为字符串存储的 DOUBLE 类型,允许固定的小数点,由于 float
double 类型存在精度丢失问题,即写入数据库的数据未必是插入数据库的数据 ,而 decimal 无论写
入数据中的数据是多少,都不会存在精度丢失问题,这就是要引入decimal 类型的原因, decimal
型常见于银行系统、互联网金融系统等对小数点后的数字比较敏感的系统中,结论:float/double
db 中存储的是近似值,而decimal则是以字符串形式进行保存

 文本型:

注意:
1:blob text 都是为了存储很大数据而设计的字符串数据类型, blob 采用二进制形式存储无排序规
则和 字符集,text采用字符形式存储且有排序规则和字符集适用于存储如文章内容、评论等
2:char 是固定长度字符串,其长度范围为 0~255 且与编码方式无关,无论字符实际长度是多少,
都会按照指定长度存储,不够的用空格补足,char类型数据时会将结尾的所有空格处理掉
date型
总结:常用数据类型
1.5.2 创建表
格式:crate table 表名 (表选项)
表定义选项格式为:列名1 列类型1 约束, 列名2 列类型2 约束,……
        默认的情况是,表被创建到当前的数据库中。若表已存在、没有当前数据库或者数据库不存
在,则会出现错误
使用 crate table 创建表时,必须指定以下信息:
         要创建的表的名称不区分大小写,不能使用 SQL 语言中的关键字,如 DROP ALTER
INSERT等。
        必须指定数据表中每个列(字段)的名称和数据类型,如果创建多个列,要用逗号隔开
示例1:创建数据库并新建表
数据表属于数据库,在创建数据表之前,应使用语句 “use < 数据库 >” 指定操作在哪个数据库中进
行,如果没有选择数据库,就会抛出 No database selected 的错误
查看表: mysql>show tables;
示例2:新建员工表
练习:在 mydb2_stuinfo 库中新建班级表 class1 ,字段如下: cla_num int(5) , cla_name
varchar(10) , number int(4) , monitor varchar(20) ,creation_date date
1.5.3. 查看表
show语句:显示当前数据库中已有的数据表
show tables [from 数据库名][like wild];
describe语句:查看数据表中各列的信息
字段意义分析:
Field : 字段名称
type :字段类型
null :是否允许为空
key :索引类型
default :默认值
extra :填充
使用\G可以查看更全面的表定义信息
1.5.4. 删除表
格式: drop table [ if exists ] 表名;
注意:
用户必须拥有执行 drop table 命令的权限,否则数据表不会被删除
推荐使用 if exists 字句,即先判断是否存在,存在则删除,如
1.5.5. 修改表
更改表名(重命名):
# 1
alter table 表名 rename 新表名 ;
# 2
rename table 表名 to 新表名 ;
例:mysql>use mydb2_stuinfo;
   
       mysql> show tables;
   
添加新列
# 例:增加一列 password
mysql> alter table student1 add password char ( 8 );
# 注意:数据库操作后得到的反馈,表明操作的结果。这个信息表示:
Records: 2 : 表示成功导入或处理的记录总数是 2 条。
Duplicates: 0 : 表示在操作过程中没有发现重复的记录。
Warnings : 0 : 表示在操作过程中没有产生任何警告。
# : 再添加一个新列 notes varchar(30) ,位置在 score 之前
# 例:再第一列添加一个新列
删除列 :alter table 表名 DROP 列名;
修改列名:alter table 表名 change 旧列名 新列名 列类型;
 
修改列类型:alter table 表名 modify 列名 列类型;
# 插入新列,修改类型
mysql> alter table student1 add birthday char ( 10 ); # 增加
Query OK, 0 rows affected ( 0.01 sec)
Records: 0 Duplicates: 0 Warnings : 0

1.5.6. 修改列位置

格式:alter table 表名 modify 列名 列类型 after 某列;

 

1.5.7. 练习
新建商品数据库 mydb4_product_db,
使用该数据库
创建商品表 pro_tb1 ,字段包含编号 num int 4 ),商品名 trade_name varchar(30) ,数量 number
int(4) ,单价price float(5,2)
显示创建表的字段内容
新增一列备注 notes varchar(30)
将编号 num 字段类型修改为 char 4
删除该表(先判断)
1.5.8. 复制表的结构
方法一:在 create table 语句的末尾添加 like 子句,可以将源表的表结构复制到新表中,语法格式如
下: create table 新表名 like 源表 

 

方法二:在 create table 语句的末尾添加一个 select 语句,可以实现表结构的复制,甚至可以将源表
的表记录拷贝到新表中,下面的语法格式将源表的结构和记录都拷贝到新表中
create table 新表名 select * from 源表
方法三:如果已经存在一张结构一致的表,复制数据 :
1.5.9. 数据库字典
1:数据字典:类似于系统编目或花名册,它保存数据库服务器上的元数据信息(数据库的整体属
性信息)
2:元数据(meta data) :即 “data about data” 关于数据的数据,理解为描述数据的数据,内容包
括:数据库 的属性信息、数据表的属性信息、字段的属性信息、视图的属性信息、用户信息、统
计类信息等。
3:information_schema 数据库是 MySQL 系统自带的数据库,它提供了数据库元数据的访问方式
mysql> show databases;
4:information_schema 就像是 MySQL 实例的一个百科全书,记录了数据库当中大部分我们需要了
结的信息,比如字符集,权限相关,数据库实体对象信息,外检约束,分区,压缩表,表信息,索
引信息,参数,优化,锁和事物等等。
5:通过 information_schema 我们可以窥透整个 MySQL 实例的运行情况,可以了结 MySQL 实例的
基本信息,甚至优化调优,维护数据库等,可以说是真正的一部百科全书。
1.5.10. 小结
1.5.11. 删除的注意事项
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

보고.싶다

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值