C语言 selenium arraylist hyperlink emacs bitmap Backbonejs vue开发文档 vue树形菜单 后台管理系统模板 vue教学视频 jq遍历元素 python数据类型 python多线程 python数据 python新手教程 python连接mysql数据库 java重写和重载 java集合 java注释 java框架 java替换字符串 java时间戳转日期 java数组最大值 java集合类 java绝对值 linux硬盘 嵌入式linux驱动程序设计从入门到精通 microkms 万能低格工具 小米5c拆机 橄榄山快模 ps调整边缘抠头发丝 微信公众号点餐系统 苹果手机不弹出信任 c程序 屏幕录像机 ipad怎么清理内存垃圾 捷速pdf编辑器 js压缩图片
当前位置: 首页 > 学习教程  > 编程语言

SQL数据操作语言

2021/1/13 20:34:01 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

创建一个数据库,复制下面代码,在MySQL Workbench中运行,就可以创建出一个练习数据操作语言的表了 create table employee ( id mediumint(8) unsigned primary key auto_increment, name varchar(120) not null default , gender varchar…

  创建一个数据库,复制下面代码,在MySQL Workbench中运行,就可以创建出一个练习数据操作语言的表了

create table employee ( 
id mediumint(8) unsigned primary key auto_increment, 
`name` varchar(120) not null default '', 
gender varchar(10) not null default '',
department_id smallint(5) unsigned not null default '0') 
engine=myisam default charset='utf8';

insert into `employee` values (1,'伊一','男',3),(2,'迩二','男',5),(3,'伞三','男',1),(4,'司四','男',2),(5,'武五','男',2),
(6,'刘六','女',3),(7,'戚七','女',2),(8,'巴八','女',3),(9,'玖九','女',3),(10,'石诗','女',2);

在这里插入图片描述

1. 数据的添加操作

  向数据库中添加记录主要使用INSERT INTO(insert into)——插入语句。

1.1 语法规则

  INSERT INTO语法有两种

-- 第一种语法:
INSERT INTO table_name VALUES (value1,value2,value3,...);
-- 第二种语法:
INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);

--语法说明:
	--table_name:要添加数据的表的名称
	--column1,column2,column3,...:需要添加数据的列的名称
	--value1,value2,value3,...:需要添加的数据,注意要对应列名

  注意:

  1. 使用第二种语法的时候,①value和column要对应好,value1是给column1赋值的;②可以只给部分列赋值。
  2. 使用第一种语法的时候,没有列出列名,所以需要按照生成表的顺序依次给每一个列赋值。(不推荐使用,因为在Java程序中使用这种SQL语句插入数据的时候还需要再去看数据库中表的结构,比较麻烦)
  3. 支持批量操作,比如前面在建表之后的数据导入就是批量插入操作。这种写法在数据库操作时会出现,但是在Java程序代码中一般不会出现。

1.2 代码演示:

1.2.1 INSERT第一种语法错误示范

// 第一种语句的错误使用
INSERT INTO employee VALUES (12,'柚咖妹','女');// 报错
INSERT INTO employee VALUES (12,'女','柚咖妹',3);// 可运行成功,但是数据存储有问题

  第一行代码报错信息,字段数和值数目不同。
在这里插入图片描述
  第二行代码添加到数据库的信息,可以看到名字和性别反了,事实上这次能添加成功完全是因为name字段和gender字段存储的类型是一样的,如果不一样也是会报错的。
在这里插入图片描述

  所以不推荐第一种语法的使用,很容易出错

1.2.2 INSERT第二种语法正确示范

// 使用第二种语法
INSERT INTO employee (`name`, gender) VALUES ('柚咖','女');
// 查询employee表的情况,具体用法在SQL数据查询语言中会讲
SELECT * FROM employee;

在这里插入图片描述
  上面所示代码需要提的几点:

  1. `name`的含义:name是SQL中的一个保留字,如果只写name,会报错,在用SQL保留字作为字段名时,使用时需要用` `括起来;
  2. 插入数据时,只添加了name列和gender列,但是id列和department_id列为什么也有数据?这是因为创建表格时对其进行了设置,id会自增,department_id默认为0,如果不设置,柚咖这条记录的id和department会是NULL
    在这里插入图片描述
      第二种语法使用比较灵活,可以所以字段都赋值,也可以只赋值部分字段,其他字段会设置为默认值

2. 数据修改操作

  修改操作就是对数据表中的某一行或某些行进行修改操作。

2.1 语法规则

  修改操作需要用到UPDATE(update),使用的语法如下

UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;
--语法说明:
	--table_name:要修改数据的表的名称
	--column1,column2,column3,...:需要修改数据值的列的名称
	--value1,value2,value3,...:将column1列的值修改为value1……
	--WHERE(where):修改满足WHERE后面条件的行(WHERE可以省略,省略时表示所有记录都修改)

2.2 代码演示

  在修改之前记录情况:
在这里插入图片描述

UPDATE employee SET `name`='思思',department_id=6 WHERE id=4;

  在修改之后记录情况:
在这里插入图片描述

  可以看到,UPDATE可以只修改部分的字段,另外字段修改的顺序不必和表结构中字段顺序相同,比如可以先修改gender字段,再修改name字段值

3. 数据删除操作

  删除数据有两种方法delete删除和truncate删除,主要讲的是delete删除

3.1 语法规则

DELETE FROM table_name WHERE some_column=some_value;
// PS:可以省略WHERE,当省略WHERE时表示删除所有记录

3.2 代码演示

  删除操作之前的数据
在这里插入图片描述
  删除id为10的记录

// 删除id为10的记录
DELETE FROM employee WHERE id=10;

  删除之后的数据:
在这里插入图片描述
  可以看到id为10的记录已经删除了。我们再添加一个新的记录,(石忆,男,5),可以看到这个新纪录的id不是10开始,而是从11开始。
在这里插入图片描述
  为了更明显,我们先删除当前的整个表,再将前面的数据添加回来

-- 删除整个表
DELETE FROM employee;
insert into `employee` (`name`,gender,department_id) values ('伊一','男',3),('迩二','男',5),('伞三','男',1),('司四','男',2),('武五','男',2),
('刘六','女',3),('戚七','女',2),('巴八','女',3),('玖九','女',3),('石诗','女',2);

在这里插入图片描述
  可以看到,id从12开始,也就是说用delete删除的数据,并不会改变设置为自增长字段的数据,这点和下面的truncate区别开。

truncate

  truncate——清空表,再创建一个和当前表结构相同的表

truncate employee;
insert into `employee` (`name`,gender,department_id) values ('伊一','男',3),('迩二','男',5),('伞三','男',1),('司四','男',2),('武五','男',2),
('刘六','女',3),('戚七','女',2),('巴八','女',3),('玖九','女',3),('石诗','女',2);

在这里插入图片描述
  可以看到用truncate删除表,会清空自增长的字段值,因为truncate是重新创建了一张和当前表结构相同的表,是重新开始的


本文链接: http://www.dtmao.cc/news_show_600349.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?