建表的语法结构:
create table 表名 ( 字段名1 数据类型, 字段名2 数据类型, 字段名3 数据类型, ......);
关于MySQL 当中字段常见的数据类型?
int(整数型), bigint(长整型), float(浮点型), char(定长字符串), varchar(可变长字符串), date(日期类型), BLOB(二进制大对象,存储图片、视频等流媒体信息), CLOB(字符大对象,存储较大文本,比如可以存储4G的字符串)。
char 和 varchar 怎么选择?
在实际的开发中,当某个字段中的数据长度不发生改变的时候是定长的,例如:性别、生日等都是采用 char;当一个字段的数据长度不确定,例如:简介、姓名等都是采用 varchar。
BLOB 和CLOB 类型的使用?
电影表:t_movie
id (int) name(varchar) playtime(date/char) poster (BLOB) story(CLOB)
案例:
创建学生表 ,学生信息包括:学号(bigint)、姓名(varchar)、性别(char)、班级编号(int)、生日(char)
create table t_student( no bigint, name varchar(255), sex char(1), classno varchar(255), birth char(10));
语法格式:
insert into 表名(字段名1,字段名2,字段名3,......)values (值1,值2,值3,......)
要求:字段的数量和值的数量相同,并且数据类型要对应相同。
insert into t_student(name) values ('wangwu'); //除name字段外,剩下的所有字段自动插入NULL。
drop table if exists t_student; //当这个表存在的话删除
create table t_student(no bigint, name varchar(255),sex char(1) default 1,classno varchar(255),birth char(10)); //可以设置默认参数
insert into t_student(name) values('zhangsan');
select * from t_student;
注意:当一条insert语句执行成功之后,表格中必然会多一行记录。即使多的这一行记录中某些字段是NULL,后期也没有办法执行,insert 语句插入数据了,只能使用update 进行更新。
insert 的另一种写法:(字段可以省略不写,但是后面的value对数量和顺序都有要求)
insert into t_student values(1,'lisi','0','2001','19980101');
insert 一次插入多行数据
insert into t_student (no,name,sex,classno,birth) values (2,'wangwu','1','2001','19990807'),(3,'zhaoliu','1','2001','19950402');
create table 表名 as select 语句; //将查询结果当做表创建出来。
将查询结果插入到一张表中
insert into dept1 select * from dept;
select * from dept1;
语法格式:
update 表名 set 字段名1 = 值1,字段名2 = 值2,... where 条件;
案例:将部门10 的LOC修改为shanghai,将部门名称修改为renshibu
语法格式:
delect from 表名 where 条件;
注意:没有条件全部删除。
怎么删除大表?
truncate table 表名; //表被截断,永久丢失