增删改查常用语法
[内容时间:2021.09.03]
创建表
建表语句的语法格式
表名在数据库当中一般建议以 t_ 或者 tbl_开始。tbl也就是table缩写
因为往后会有视图,索引之类的,不止是 表 这种对象
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型 //最后一个不能有逗号
);
建表可以设置默认值
create table 表名( 字段名1 数据类型 default 1, //代表默认值是 1 ,不是NULL了 字段名2 数据类型, 字段名3 数据类型, …… );
关于MySQL当中字段常见的数据类型
int 整数型
bigint 长整型(java中的long)
float 浮点型
char 定长字符串
varchar 可变长字符串(255个字符)
date 日期类型(对应java的 java.sql.Date 类型,不是util的)
BLOB 二进制大对象(存储图片、视频等流媒体信息)Binary Large OBject
CLOB 字符大对象(存储较大文本,比如可存储4GB的字符串)Charater Large OBject
- char的效率比varchar效率高,因为char类型不需要做运算,varchar需要动态判断你存入多少个字符,虽然varchar方便,但是牺牲了效率
- BLOB和CLOB类型的需要使用java的IO流才能插入,普通的 insert 语句搞不定
向表中插入数据
语法格式:第一种方法
insert into 表名(字段名1,字段名2,字段名3,...) values(值1,值2,值3,...) 要求:字段的数量和值的数量相同,并且数据类型要对应相同 ======================================== insert语句一执行,表中必然多一行。 即使多的这一行记录当中某些字段是NULL,后期也没办法在执行insert语句插入数据了。 只能用 update 来更新修改 写部分字段的话,那要另外改才行,不能再插入了,因为那就是下一行了,要把NULL改掉语法格式:第二种方法
insert into 表名 values(值1,值2,值3,...) 这种方法对字段没有要求,但是对value的顺序和数量有严格要求一次插入多行数据
语法格式: insert into 表名 (字段名1,字段名2,字段名3,...) value(值1,值2,值3,...),(值1,值2,值3,...),(值1,值2,值3,...)
表的删除
语法格式:
drop table if exists t_student; 如果这个表存在,就删除
表的复制
语法格式:
将查询结果当做表创建出来 create table 表名 as select语句 要完整的表就*,要部分数据的话那就字段1,字段2将查询结果插入到表中
语法格式: 先创建好表 insert into deot1 select * from dept; //类似上面吧反正
修改数据
语法格式:
update 表名 set 字段名1=值,字段名2=值,... where 条件 注意:没有条件,整张表数据全部更新例 1:将dept1 的 10部门改为人事部,地点改为上海
update dept1 set loc='SHANGHAI',dname='RENSHIBU' where deptno=10; 如果没有where,那所有的数据的loc和deptno全改成shanghai和renshibu
删除数据
语法结构:
删除单条记录 delete from 表名 where 条件; 删除所有记录 delete from 表名; 注意:delete之后表还在,没释放内存空间,还可以把数据回滚,所以效率低,不建议用来删除数据量庞大的整表数据 删除大表应该用truncate删除大表数据
truncate table 表名; 截断删完之后只剩表头,而且数据不可回滚,谨慎使用!
关于表结构的修改
(图没了,之后给找回来!)