DML 之 INSERT|学习笔记

简介: 快速学习 DML 之 INSERT

开发者学堂课程【数据处理:DML 之 INSERT】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/64/detail/1148


DML 之 INSERT


DML

DML 被称为数据操作语言,DQL:SELECT*FROM 表名是查询表记录的语法。登录 mysql 服务器。输入 mysql -uroot -p123

输入 show databases 查看所有的数据库

image.png

比如 exam 数据库,这是练习,输入 use exam 再输入 show tables进入数据库查看表,其中有个 emp 表非常著名,emp 是employ。select*from emp 用于查询该表内所有记录。

image.png

如上图这张表非常著名,来自于 article 的用户,用户提供了三张表,其中一个为 dept,dept 是部门,输入 select*from emp 查询,另一个表为 salgrade,输入 select*from salgrade 查询,

三张表中最为著名的为 emp,输入 select*from emp 查询,这张表练习查询最为方便。表内大多为英文名字,英文名字不容易记住,可改成自己容易记忆的名字。比如表内有四大文员,甘宁、周泰、程普、黄盖,四大文员被改为江东四老,都是孙权手下的人,四大销售员,黛绮丝、殷天正、谢逊、韦一笑是张无忌手下的人,三个经理,刘备、张飞、关羽,两个分析师卧龙诸葛亮、凤雏庞统,一个董事长曾阿牛,一个保洁员张三,工资八万,奖金五万。这张表是查询时需使用的。查询出来对还是错一眼就能看出。表内名字改成中文后也有缺陷,英文有个好处为查询名字中有 A 的,更方便,而汉语不方便,但记忆时特别方便。select*from 表名是查询表记录。表记录的中增、删、改三项操作,如何才知道是否添加了记录,可以通过查询来得知。修改、删除也如此。

输入 mydb1,切回去。输入 show tables,查询。

image.png

发现有个 tb_student,若想把它名字改短,则需输入  

alter table tb_student

-〉rename to stu;

输入 show databases,重新查询,发现名字已改为 stu,输入 select*from stu,查询 stu,显示空集合,即无记录。

插入数据

INSERT INTO 这个语法用于插入记录,INSERT INTO 后面跟表名和

(),()里指定插入的列,VALUES 后给出对应的值,

输入 desc stu,查询,一共有四列

image.png

INSERT INTO stu (

aa,

bb

是不可以的,因为表内无 aa 列,bb 列,需输入存在的列。比如插入 number,name,age,gender。

接下来输入  

VALUES(

括号内需该对应的值,第一个 number 的值为 char11,改成 'ITCAST L-0001',第二个值为 'zhangsan',第三个 int 类型为'28',性别为 'male'。在数据库中,所有字符类型,必须使用单引,不能使用双引,日期类型也要使用单引。

INSERT INTO stu (

number,name,age,gender

VALUES(

'ITCAST-0001' 'zhangsan' '28' 'male'

意思是插入的列给出要插入的值。

第二种形式为  

//插入部分列,没有插入的列,为默认值 NULL

INSERT INTO stu(

number,name,

)VALUES(

'ITCAST-0002','lisi'

记录永远都是一行一行地插入,那两列没给值。

数据库中 int 类型也有 NULL,表示没给值。把代码输入并运行。

输入 select*from stu,查询是否插入。发现已插入,number,name,age,gender 为列名,'ITCAST-0001' 'zhangsan' '28' 'male' 为记录,

image.png

再输入

INSERT INTO stu(

-〉number,name,

-〉)VALUES(

-〉'ITCAST-0002','lisi'

-〉);

插入的列是 number,name,给的值是 'ITCAST-0002','lisi',值给了两列。输入 select*from stu,查询记录。如果把 name,number 这两列的位置换一下,那么 name 的值为 'ITCAST-0001',number 的值为 'zhangsan'。

第三种插入形式为

//不给出插入列,那么默认为插入所有咧,值的顺序要与创建表时列的顺序相同。

INSERT INTO stu VALUES(

'ITCAST-0003','wangwu' '82' 'female'

);

少了要插入的列。创建表时列的顺序为 number,name,age,gender,因此这个顺序与值的顺序对应。这种方式一般不建议这么打,因为它的可读性会降低很多。

输入代码运行,输入 INSERT INTO stu UALUES<'ITCAST-0003' 'wangwu' '82' 'female'>输入 select*from stu,查询,不能用中文,用中文会乱码,甚至报错,是因为控制台有问题,不是数据库有问题。Windows 弹的数据表。插入给了三种形式,第一种是指定所有的,第二种是指定部分的,第三种是未指定列的值是 NULL,不指定值的表示插入所有列,值的顺序要与创建表时列的顺序相同。

image.png

相关文章
|
6月前
|
SQL 安全 关系型数据库
MySQL DML语句insert全表数据添加语句以及注意事项
MySQL DML语句insert全表数据添加语句以及注意事项
58 0
|
7月前
|
SQL
DML(insert与delete)
DML(insert与delete)
43 0
|
SQL 数据处理 数据库
DML 之 DELETE|学习笔记
快速学习 DML 之 DELETE
102 0
DML 之 DELETE|学习笔记
|
SQL Java 数据库连接
INSERT操作
INSERT操作
89 0
INSERT INTO 语句
INSERT INTO 语句
156 0
开发指南—DML语句—INSERT
您可以使用INSERT语句往表中插入数据。
|
SQL 存储 关系型数据库
开发指南—DML语句—UPDATE
您可以使用UPDATE语法修改表中符合条件的行。
|
存储 SQL 关系型数据库
开发指南—DML语句—DELETE
您可以使用DELETE语句删除表中符合条件的行。
129 0
|
关系型数据库 PostgreSQL
PostgreSQL merge insert(upsert/insert into on conflict) 如何区分数据是INSERT还是UPDATE
标签 PostgreSQL , merge insert , upsert , insert into on conflict , 区分 insert update , xmin , xmax 背景 使用insert into on conflict update语法,可以支持UPSERT的功能,但是到底这条SQL是插入的还是更新的呢?如何判断 通过xmax字段的值是否不为0,可以判断,如果是UPDATE,XMAX里面会填充更新事务号。
2162 0
|
SQL 流计算 关系型数据库

相关课程

更多