6.表的增删改
创建表:
create table 表名(
字段名a 数据类型 auto_increment,
字段名b 数据类型 not null,
字段名c 数据类型 default '男',
字段名d 数据类型,
primary key(a),
foreign key(d) references 另一个表名(字段名)
);
create table t_a(
id int primary key,
name varchar(20) not null,
age int default 1,
showOne longblob,
photo MEDIUMBLOB
)
数据类型:
3大类:数值、字符串、日期
1、数值:整数 int、小数 double ,十进制数DECIMAL decimal(5,2)
2、字符串相关 char定长 varchar变成 blob字节数据 text(clob)字符数据
3、日期时间 date年月日 time时分秒 datetime年月日时分秒
timestamp :记录数据被修改的时间
create table t_a(
id int primary key,
name varchar(20)
)
删除表:
drop table 表名。
DML : insert 、 delete 、 update
insert into 表名 values(); : 对应的value必须把表的每个字段值都写上,顺序必须对应
t_a(id,name,age)
insert into t_a values(18,'aaa',1);
insert into 表名(字段名1,字段名2...) values(值1,值2...)
insert into t_a(name) values('kkk')
values值的顺序只需要与sql语句中字段顺序一样
如果表的字段不允许为空,则添加数据的时候必须有值。
复制表
insert into 表名(字段名1,字段名2...) select **** from *****....
delete from 表名 where *** ; (如果没有where则是清空表)
删除数据是以行为单位。
update 表名 set 字段1=新值,字段2=新值 where ****
uppate t_student set ssex='女' where ssex='男';
update t_student set sage = sage + 1;
update t_student set sscore = 1
where sage = (select max(sage) from (select * from t_student) as t);
增删改的时候不能from同一张表。
修改表: alter
alter table 表名 add cloumn money(double);
**只修改列的数据类型的方法:
通常可以写成 alter table 表名 modify column 列名 新的列的类型
例如:student表中列sname的类型是char(20),现在要修改为varchar(20),SQL语句如下
alter table student modify column sname varchar(20);
同时修改列名和列的数据类型的方法:
通常可以写成 alter table 表名 change column 旧列名 新列名 新的列类型
例如:student表中列sname的类型是char(20),现在要修改为stuname varchar(20),SQL语句如下
alter table student change column sname stuname varchar(20);**
同时更新多个表
update log,test set log.tes = "1",test.test="2"