MySQL(3)常见使用命令:数据表及表结构

本文详细介绍如何在SQL中创建表结构,包括不同数据类型的使用、常见约束的应用,以及如何查看、修改和删除表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【1 创建表】

(在这之前,必须先选定使用哪个数据库及use 数据库名;才可以创建表)

create table 表名(

     列名数据类型, ----某一列,存放的数据是什么类型

     列名数据类型,

    ……

     列名数据类型 ---最后一个列不需要逗号。

);

【注意】

多个列之间使用逗号隔开,最后一个列不需要输入逗号。

创建表的时候,一定切换到某一个具体的数据库。

use数据库名。


列字段数据类型解释:
【字符类型】
varchar:长度可变   
name varchar(20):设置name字段的长度为20,name的储存长度在20以内都可以,并且会自动适应长短。
char:长度固定
name char(20):设置name字段的长度为20,name的存储长度在20以内,如果不满20,用空格补足。
例如:lisi 只有4个长度,剩下的用空格补足。
--优缺点
char 的性能好,固定长度。 
varchar可以节省空间,由于长度不固定,会根据实际长度占空间。【varchar只是在MySQL中使用】
【varchar2只是在Oracle中的】
通常时候,如果长度不固定,我们使用varchar。
使用char的情况。当某个字段的长度固定的时候,可以采用char。例如身份证号或者手机号。


【大数据类型】
BLOB-字节:存放二进制内容,一般可以存放视频、音频、图片等。
tinyblob:255字节
blob:64KB
mediumblob:16MB
longblob:4GB


TEXT-字符:存放大文本,存放txt。
tinytext:255字节 
text:64KB 
mediumtext:16MB  
longtext:4GB


通常我们不会把文件存储到数据库。(占用资源,操作速度慢)
我们会把文件的路径(通常存放在本地磁盘)存到数据库中。




【数值型】
整形:TINYINT 、SMALLINT、MEDIUMINT、INT、BIGINT
小数:FLOAT(单精度)、DOUBLE(双精度)
在定义类型的时候可以设置两个参数,如sal float(5,2):sal字段总共5位长度,可以有两位小数,如果 插入12345或者1234,默认为999.99,因为要保证小数点前三位和小数点后两位的格式。


【位数据类型】
BIT: 1 或者0组成的数据
其数据有两种取值:0和1,长度为1位。在输入0以外的其他值时,系统均把它们当1看待。这种数据类型常作为逻辑变量使用,用来表示真、假或是、否等。


【日期型】
date:日期----只有日期, 年月日
time:时间-----时分秒
dateTime:日期和时间都包含 “yyyy-MM-dd”
timestamp:日期和时间都包含 -------当数据被修改的时候,里面的值会自动进修改,保存当前的时间。
timestamp: 当其他数据发生改变的时候,这个字段会自己修改为当前时间。



例如:

createtable emp(
       id int,
       name varchar(20),
       age int,
       sex int,
       birthday date
);

【2 查看表】

show tables;查看该数据库的所有的表


show create table 表名 :查看建表语句以及字符集—了解【可以理解为 show   - create table 表名】;


desc 表名:查看表的列的信息(查看表结构)

就是查看

       id int,
       name varchar(20),
       age int,
       sex int,
       birthday date


【3 约束】

--主键约束:primary key 

作用:设置某一个字段为主键,主键的特性是唯一(不能重复),并且不能为空。
一般使用一个没有任何意义的字段,比如id作为一个主键(没有意义就不需要修改)。
如果主键是一个int类型,还可以设置主键自增长。(即在插入记录的时候可以不用设置主键,让其自动以递增的形式添加)
一张表中只能有一个主键。

【示例】

create table 表名 (
	id int primary key auto_increment,
	name varchar(20),
	………….
);
--唯一约束:unique  

 内容不允许重复,可以为null(null不算重复)。 

一个表里可以添加多个唯一约束。


写法: 列名 类型(长度) unique
【示例】
create table 表名 (
	id int primary key auto_increment,
	name varchar(20) unique,
	………….
);

唯一约束和主键约束的区别
1、唯一约束可以是空(null)。 但是主键约束不能为空

2、一张表中只能有一个主键,但是唯一约束可以有多个

--非空约束:not null

不允许为空。 表示该列的内容不允许为空。


写法: 列名 类型(长度) not null,
【示例】

create table emp(
	id int primary key auto_increment,
	name varchar(20) unique,
	age int not null,
	………….
);

约束的目的。
目的:保证数据的正确性。
约束列。限制列的内容。


【4 数据表结构的修改】

--增加列:
alter table 表名 add 列名 类型(长度) 约束;


【示例】
添加备注列-remark(tabaleName为表的名字)

alter table tableName add remark varchar(20);

--添加主键-几乎不用
alter table 表名 add primary key (列名)
主键一般都是在建表的时候直接设置

--修改现有列的类型或者长度
alter table 表名 modify 列名 类型(长度) ;
注意:通常我们不会修改列的类型。

--修改现有列的名称
alter table 表名 change 旧列名 新列名 类型(长度) 
注意:通常我们不会修改列的名称。


--删除一个现有列
alter table 表名 drop 列名
注意:通常我们不会删除列。


--修改表名
rename table 旧表名 to 新表名
注意:通常我们不会重命名数据库表名。


会使用java操作数据。java程序完成。去该表名。要求java程序进行修改。

修改表的字符集
查看表的字符集:show create table 表名;
修改表的字符集:alter table 表名 character set 字符集


【5 删除表】

drop table 表名;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值