表的创建
建表语句:
sql
Create tables 表名(
字段名1 数据类型,
字段名2 数据类型 default 默认值,
字段名3 数据类型,
。。。
);
关于MySQL当中字段的数据类型,(常用的):
类型 | 描述 |
---|---|
Char(长度) | 定长字符串,存储空间大小固定,适合作为主键或外键【最长255】 |
Varchar(长度) | 变长字符串,存储空间等于实际数据空间【最长255】 |
double(有效数字位数,小数位) | 数值型 |
Float(有效数字位数,小数位) | 数值型 |
Int( 长度) | 整型 |
bigint(长度) | 长整型【Java中Long】 |
Date | 日期型年月日 |
DateTime | 日期型年月日时分秒毫秒【对应Java中的java.sql.Date类型】 |
time | 日期型时分秒 |
BLOB | Binary Large OBject(二进制大对象)【存储图片,视频流媒体信息】 |
CLOB | Character Large OBject(字符大对象)【存储大文本,可存储4G的字符串】 |
其它………………… |
char 和 varchar
char:
表示创建一个六个长度的字符空间,即使字符本身长度少于6,分配的空间依然是6;当长度超过指定的空间(6) 后,直接报错。
varchar:
也是创建一个长度是6的空间,长度超过指定长度依旧会进行报错,但是当长度小于指定时,varchar会自动分配长度【所以相对char效率较低】
当长度是固定的时,如:性别,生日(10位),日期(19位)。使用char效率更好;
当长度不固定时,如:自我介绍。可以使用varchar,可以提高存储效率。
BLOB数据不能直接进行传输,只能使用Java的io流进行传输,并且大文件一般放硬盘中,数据库中存储内存地址
表名在数据库中一般建议以:t__ 或者 tbl__ 开始。
插入数据
语法格式:
Insert into 表名(字段名1 ,字段名2 ,字段名3,。。。) values (值1 ,值2 ,值3,。。。)
要求:字段的数量和值的数量相同,并且数据类型要对应相同。
只指定一个数据其他不指定时,默认用NULL进行填充
一次插入多个数据:
Insert into 表名(字段名1 ,字段名2 ,字段名3,。。。) values
(值1 ,值2 ,值3,。。。),
(值1 ,值2 ,值3,。。。),
(值1 ,值2 ,值3,。。。);
插入一条数据:
注意:当一条insert语句执行成功后,表格中必然会多一条数据,不能再使用insert进行更改,即使这些数据中有些数据是NULL;后期只能使用update进行更新。
当不指定第一个() 中的内容时:第二个括号中的数据必须和表格中的数据配列顺序匹配,反之报错
插入日期
第一种方法,插入的日期格式和显示的日期格式一致
sql
insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) values(9997,'zhangsan','MANAGER', null, '1981-06-12',3000, 500, 10);
第二种方法,采用str_to_date
sql
insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) values(9996,'zhangsan','MANAGER',null,str_to_date('1981-06-12','%Y-%m-%d'),3000, 500, 10);
第三种方法,添加系统日期(now())
sql
insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) values(9995,'zhangsan','MANAGER',null,now() ,3000, 500, 10);
表的复制
sql
Create table 表名 as DQL语句