mysql_数据表结构的sql以及增删改查

1.数据表的创建语句

注意:创建表的时候,一定要先切换到某一个具体的数据库
语法:use 数据库名

数据表结构:
在这里插入图片描述
建表语句:

create table 表名(
	列名 数据类型, 
	列名 数据类型,
	……
	列名 数据类型 (最后一个列不需要逗号)
);

注意:多个列之间使用逗号隔开,最后一个列不需要输入逗号。
创建表的时候,一定切换到某一个具体的数据库。
use 数据库名。

1.1 数据类型

(1)字符类型:
Java中的String 和char 类型 对应 mysql 中的 varchar(列的长度)、char(列的长度)

A:varchar:长度可变
name varchar(20):设置name字段的长度为20,name的储存长度在20以内都可以,并且会自动适应长短。

B:char:长度固定
name char(20):设置name字段的长度为20,name的存储长度在20以内,如果不满20,用空格补足。
例如:lisi
只有4个长度,剩下的用空格补足。

如果存储的长度超出了表中列的长度,存储报错。

使用场景:
问题:char 的性能好。 varchar可以节省空间。
通常时候,如果长度不固定,我们使用varchar。

使用char的情况。当某个字段的长度固定的时候,可以采用char。例如身份证号或者手机号。

(2)大数据类型
Java中:
A:字节流:InputStream
B:字符流:Reader

mysql中:
A:BLOB 保存的字节数据
B:TEXT 保存字符数据

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

(3)数值型 :
Java中:byte、short 、 int 、 long 、float、 double

A:整形:TINYINT 、SMALLINT、MEDIUMINT、INT、BIGINT、FLOAT、DOUBLE
在创建数据表的时候,数值型也有自己的长度,一般不需要指定,使用默认的长度。
在这里插入图片描述
B:小数:FLOAT(单精度)、DOUBLE(双精度) 在定义类型的时候可以设置两个参数,如sal
float(5,2):sal字段总共5位长度,可以有两位小数。

(4)逻辑型
java中的boolean对应mysql中的BIT
BIT:1或者0组成的数据

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

(5)日期型

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

1.2 查看表

  • show tables : 查看该数据库的所有的表
  • show create table 表名 :查看建表语句以及字符集—了解
  • desc表名:查看表的列的信息(查看表结构)

1.3 约束

1.主键约束(单独讲)

2.唯一约束
唯一约束:unique 内容不允许重复,可以为null(null不算重复)。
写法: 列名 类型(长度) unique
【示例】

create table primarykey_demo (
 id int primary key auto_increment,
 name varchar(20) unique
);

唯一约束和主键约束的区别
1、唯一约束可以是空(null)。 但是主键约束不能为空
2、一张表中只能有一个主键,但是唯一约束可以有多个

【示例2】:可以存在多个null值,null不算重复

insert into primarykey_demo (id) values (1);
insert into primarykey_demo (id) values (2);

在这里插入图片描述

【示例3】:如果插入的值重复会报错

insert into primarykey_demo (name) values ('tom');

在这里插入图片描述
再次插入’tom’时报错
在这里插入图片描述

3.非空约束
非空约束:not null 。不允许为空。 表示该列的内容不允许为空。
写法: 列名 类型(长度) not null,
【示例】

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

1.4 数据表结构的修改

修改数据表:可以对表名、表中的列名、列的类型、列的约束进行增删改。
语法:alter table 表名 增/删/改 列名 类型(长度) 约束

1.增加列
语法: alter table 表名 add 列名 类型(长度) 约束;
例:在primarykey_demo表上增加address列,且此列不能为空

alter table primarykey_demo add address varchar(20) not null;

2.修改现有列类型、长度和约束
语法:alter table 表名 modify 列名 类型(长度) 约束;
例:修改address类为int类型,约束改为唯一

alter table primarykey_demo modify address int unique;

在这里插入图片描述
3.修改现有列名称
语法:alter table 表名 change 旧列名 新列名 类型(长度) 约束;

4.删除现有列
语法:alter table 表名 drop 列名 ;

5.修改表名
语法: rename table 旧表名 to 新表名;

6、修改表的字符集
语法:alter table 表名 character set 编码集;

1.5 数据表的删除

语法:drop table 表名;

猜你喜欢

转载自blog.csdn.net/qq_24099547/article/details/83870178