③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之约束一

上一篇下一篇

猜你喜欢

热点阅读