③MySQL之DML(数据操作语言)、DDL(数据定义语言)
2021-09-07 本文已影响0人
SimonLike
1,创建表
1.1,建表语句:
create table 表名(
字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型,
...
);
1.2,关于MySQL当中字段的数据类型,常见的
int 整数型 (java中的int)
bigint 长整形 (java中的long)
float 浮点型 (java中的float double)
char 定长字符串 (String)
varchar 可变长字符串 (StringBuffer/StringBuilder)
date 日期类型 (java中的java.sql.Date类型)
BLOB 二进制大对象(存储图片、视频等流媒体信息)Binary Large Object (java中的object)
CLOB 字符大对象(存储较大文本,比如:存储4G的字符串。)Character Large Object (java中的object)
char和varchar怎么选择
在实际开发中,当某个字段中的数据长度不发生改变的时候,是定长的采用char。例如:性别、生日等。
当一个字段的数据长度不确定时采用varchar。例如:简介、昵称等。
1.3,创建学生表:
学生信息包括:
学号:bigint
姓名:varchar
性别:char
班级编号:int
生日:char
create table t_student(
no bigint,
name varchar(255),
sex char(1),
classno int,
birth char(10)
);
2,删除表:
删除语句(当这个表存在的话删除):drop table if exists 表名;
删除t_student表
mysql> drop table if exists t_student;
重新创建t_student表,default设置默认值
create table t_student(
no bigint,
name varchar(255),
sex char(1) default 1,
classno int,
birth char(10)
);
3,insert语言插入数据
语法格式:insert into 表名(字段名1,字段名2,字段名3,...) values(值1,值2,值3,...);
要求:字段的数量和值的数量相同,并且数据类型要对应相同。
mysql> insert into t_student(no,name,sex,classno,birth) values(123,'jack','1',12,'2020-05-09');
改变字段顺序不会影响数据的插入
mysql> insert into t_student(name,sex,classno,birth,no) values('kitty','1',12,'2021-05-09',124);
缺少字段也不会影响数据的插入,剩下其他字段会自动插入NULL
mysql> insert into t_student(name) values('simon');
注意:当一条insert语句执行成功之后,表格当中必然会插入一行记录,即使这行记录中某些字段是NULL,
后期也没法再执行insert语句对这行记录插入数据了,只能使用update进行更新。
字段可以省略不写,但是后面的values对数量和顺序都要按表设计的字段进行赋值插入。
mysql> insert into t_student values(123,'jack','1',12,'2020-05-09');
一次插入多行数据
mysql> insert into t_student values(126,'jack1','2',13,'2020-05-09'),(126,'jack2','2',13,'2020-09-09'),(127,'jack3','1',13,'2020-02-09');
4,表的复制
语法结构:create table 表名 as select语句; 将查询结果当做表创建出来。
复制t_student表的记录到t_student2表中
mysql> create table t_student2 as select * from t_student;
复制dept表的记录到dept1表中
mysql> create table dept1 as select * from dept;
5,将查询结果插入到一张表中
语法结构:insert into 表名 select语句; 将查询结果插入到一张表中
将t_student表的记录查询出来,插入到t_student2表中
mysql> insert into t_student2 select * from t_student;
6,修改数据
语法结构:update 表名 set 字段名1=值1,字段名2=值2...where 条件;
注意:没有条件整张表数据全部更新。
将部门10的LOC修改为:SHANGHAI,将部门名称修改为RENSHIBU
mysql> update dept1 set loc = 'SHANGHAI',dname = 'RENSHIBU' where deptno = 10;
7,删除数据
语法结构:delete from 表名 where 条件;
注意:没有条件整张表数据全部删除。
删除no是123的学生
mysql> delete from t_student2 where no = 123;
删除所有数据
mysql> delete from t_student2;
怎么删除大表(truncate table 表名; 表被截断,不可回滚,数据永久丢失)
truncate table dept1;
8,给表文件添加字段
语法结构:alter table 表名 add 新字段名 数据类型;
9,删除表文件字段
语法结构:alter table 表名 drop 字段名;
上篇:②MySQL之DQL数据查询语言二
下篇:④MySQL之约束一