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