MySQL中DDL(create,delete,alter)语句操作:
1、创建表
建表语句的语法格式:
create table 表名 (
字段1 数据类型 约束条件,
字段2 数据类型 约束条件,
...
字段n 数据类型 约束条件
);
关于MySQL当中字段的常用数据类型:
int 整数型
bigint 长整型(相当于java中的long)
float 浮点型
double 双精度浮点型
char 定长字符串
varchar 可变长字符串(最长255个字符)
date 日期类型(对应java中的java.sql.Date类型)
BLOB 二进制大对象(存储图片,视频等流媒体信息)Binary Large OBject
CLOB 字符大对象(存储较大文本,比如存储4个G的字符串)Character Large OBject
char和varchar怎么选择?
当某个字段中的数据长度不发生改变的时候,是定长的,例如:性别、生日等都是采用char。
当一个字段的数据长度不确定时,例如:姓名等都是采用varchar。
表名在数据库当中一般建议以:t_ 或者 tbl_开始。
2、insert语句插入数据
语法格式:insert into 表明(字段名1, 字段名2…) values(值1, 值2…);
注意:字段的数量和值数量相同,并且数据类型匹配。
这种写法对字段的顺序没有要求,只要后面的数据对应上了就行。
字段也可以省略不写:
insert into 表名 values(值1, 值2…);
注意:这种写法时,值的顺序和个数就固定了,不能乱写,只能按照表结构当中的字段顺序依次填写。
insert还可以一次插入多行数据:
insert into 表名(字段名1, 字段名2…) values(值1, 值2…), (值1, 值2…), (值1, 值2…);
3、表的复制
语法:create table 表名 as select语句;
将查询的结果集当做表创建出来。
4、将查询结果集插入到一张表中
语法:insert into 表名 select语句;
前提是查询到的结果集字段必须和插入表的字段匹配对应。
5、update修改表中数据
语法格式:update 表名 set 字段名1=值1, 字段名2=值2… where 条件;
注意:如果没有where语句,默认整张表数据全部更新。
例题:将部门10的loc修改为’上海’,将部门名称修改为’人事部’。
update dept set loc = ‘上海’, dname = ‘人事部’ where deptno = 10;
例题:更新学生表,将所有的学生年龄加1。
update student set age = age + 1;
6、删除表中记录
语法格式:delete from 表名 where 条件;
注意:如果没有where语句,默认删除整张表中的记录。
例题:删除10号部门的数据。
delete from dept where deptno = 10;
例题:删除部门表中所有的记录。
delete from dept;
用delete删除数据,数据不会释放,删掉后可以利用事务回滚恢复数据。
但有一个关键字叫做truncate,它可以直接剪掉表中所有的数据,只留下了字段名,使用前必须再三请求确认。
truncate table dept; // 表被截断,不可回滚,永久丢失
7、对表结构的修改:create,drop,alter
在实际开发中,对表结构的修改很少使用,如果硬要改,只需用工具修改即可。
修改表结构的语句不会出现在java代码中,出现在java代码中的sql语句包括:insert,delete,update,select。
增删改查有一个术语:CRUD操作。
Create(增加),Retrieve(读取),Update(修改),Delete(删除)。