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 表名;