当前位置: 首页 > news >正文

Mysql学习笔记(六)增删改查

原文: Mysql学习笔记(六)增删改查

PS:数据库最基本的操作就是增删改查了...

学习内容:

数据库的增删改查

1.增...其实就是向数据库中插入数据..

插入语句

insert into table_name values("要插入的数据");

比如说,我们先创建一个宠物表,用来记录宠物的基本信息以及所有者...

create table pet
(
    name varchar(20),
    owner varchar(20),
    species varchar(20),
    sex char(1),
    birth date,
    death date
);

新建了一个空表之后,我们就应该向表中插入数据了..我们可以使用insert语句向表中插入数据...

insert into pet values('Fluffy','Harold','cat','f','1993-02-04','null');//一条数据的插入...

insert into pet values('Claws','Gwen','cat','m','1994-03-17','null'),('Buffy','Harold','dog','f','1989-05-13','null'),('Fang','Benny','dog','m','1990-08-20','null');//多条数据的插入。。使用逗号隔开..

除了使用insert语句进行插入数据,我们还可以使用读入文件的方式来插入数据...比如说,我们在文件pet.txt文件中放入了我们想要插入的数据值。。每一行有一个记录,我们将每一行的记录使用定位符tab隔开..然后将文件装载到数据库当中就可以将数据插入到数据库了...

windows下的编译器是以\r\n为行结束符...
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
    -> LINES TERMINATED BY '\r\n';

Mysql的插入语句与sqlserver的区别..

区别一:

当我们插入的数据有重复值得时候,通常mysql会使用ingore关键字。。。

新建两个表:

CREATE TABLE person (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  NAME CHAR(40) NOT NULL DEFAULT '',
  age INT NOT NULL DEFAULT 0,
  info CHAR(50) NULL,
  PRIMARY KEY (id)
)


CREATE TABLE person_old (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  NAME CHAR(40) NOT NULL DEFAULT '',
  age INT NOT NULL DEFAULT 0,
  info CHAR(50) NULL,
  PRIMARY KEY (id)
)

INSERT INTO person_old
VALUES (11,'Harry',20,'student'),(12,'Beckham',31,'police')

SELECT * FROM person_old
INSERT INTO person(id,NAME,age,info)
SELECT id,NAME,age,info FROM person_old;


SELECT * FROM person 

使用第二个表来更新第一个表中的数据..

TRUNCATE TABLE person

TRUNCATE TABLE persona_old 

INSERT INTO person_old
VALUES (11,'Harry',20,'student'),(12,'Beckham',31,'police')

##注意下面这条insert语句是没有ignore关键字的
INSERT  INTO person(id,NAME,age,info)
SELECT id,NAME,age,info FROM person_old;

INSERT INTO person_old 
VALUES (13,'kay',26,'student')

##注意下面这条insert语句是有ignore关键字的
INSERT IGNORE INTO person(id,NAME,age,info)//由于主键为id...如果不使用ignore则会出现重复插入主键引起错误..
SELECT id,NAME,age,info FROM person_old;

区别二:

插入自增列时的区别

SQLSERVER需要使用 SET IDENTITY_INSERT 表名 ON 才能把自增字段的值插入到表中,如果不加 SET IDENTITY_INSERT 表名 ON 则在插入数据到表中时,不能指定自增字段的值,则id字段不能指定值,SQLSERVER会自动帮你自动增加一

INSERTINTO person(NAME,age,info) VALUES ('feicy',33,'student')

而MYSQL则不需要,而且自由度非常大.....你可以将id字段的值指定为NULL,MYSQL会自动帮你增一...

我们可以指定id值进行插入,也可以不指定id值进行插入..

INSERT IGNORE INTO person(id,NAME,age,info) VALUES (16,'tom',88,'student')//指定值
INSERT IGNORE INTO person(NAME,age,info) VALUES ('amy',12,'bb')//不指定值...

删:删除数据库中的数据...
删除相对而言很简单,没用什么过多的东西...

delete from table_name where 删除条件...

delete from pet where name="Fluffy"//删除表中的数据..

delete from pet;//删除整个表中的数据信息..

删除列:

alter table pet drop name//删除pet的name列...

删除整张表

drop table pet;//删除整个pet表格...

删除整个数据库...

drop database samp_db//删除samp_db整个数据库...在使用这条语句的时候我们需要格外的小心,因为我们需要获取数据库的drop权限才能对这个数据库进行操作...

改:修改数据库中的数据...也很简单,涉及的东西也很少...

修改列:

alter table pet name change nname varchar(40) default "";

重命名表:

alter table pet rename ppet;

更新:更新数据...也很简单...没什么可说的...

update pet set owner="HHarold" where name="Fluffy" and sex="f";

查询:查询涉及的东西就比较多了...也是数据库常用的操作...我们以pet表格为例进行介绍...
select * from table_name //查询数据库里的所有数据

select * from pet;

select * from table_name where "执行条件",执行条件可以是一条,也可以是多个条件。。多个条件使用逻辑操作符进行连接...//选择特殊行..

select * from pet where name="Fluffy" and sex="f";
select * from pet where name="Fluffy" or xex="f";

select 属性 from pet。。。选择特殊列...多个属性使用逗号隔开...

select name,birth from pet;//选择pet的name 和 pet列

select 属性值 from table_name order by 属性...

显示动物的生日,按照日期来排序..
select name,birth from pet order by birth;

先简单的介绍这么多..下一章还有补充...希望对自己以后能够有用...

 

相关文章:

  • 如何撰写好文档?精益文档的六个实践
  • 最最最常见的Java面试题总结-第一周
  • 耗时一个月,我为拉勾设计的移动端
  • NGUI学习笔记(一):官方视频学习记录
  • 个推用户画像产品 (个像) Android 集成实践
  • asp.net下使用Cookie保存登录信息
  • SQLServer插入数据
  • Sql Xml
  • Notepad++的语法高亮
  • 电脑安装打印机设备搜索不到解决记录
  • JMX详解
  • Spring Security 基于表达式的权限控制
  • Storm 0.9 集群搭建
  • vs2017使用rdlc实现批量打印
  • Click Magick – 下一代点击跟踪和链接管理
  • 【RocksDB】TransactionDB源码分析
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 2017-08-04 前端日报
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • CentOS 7 防火墙操作
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • javascript 总结(常用工具类的封装)
  • js继承的实现方法
  • magento2项目上线注意事项
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Netty源码解析1-Buffer
  • Objective-C 中关联引用的概念
  • Spring Boot快速入门(一):Hello Spring Boot
  • supervisor 永不挂掉的进程 安装以及使用
  • Zsh 开发指南(第十四篇 文件读写)
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 记录一下第一次使用npm
  • 算法之不定期更新(一)(2018-04-12)
  • 微信小程序开发问题汇总
  • 我的zsh配置, 2019最新方案
  • 【干货分享】dos命令大全
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​queue --- 一个同步的队列类​
  • ​渐进式Web应用PWA的未来
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # 数据结构
  • #1015 : KMP算法
  • #pragma 指令
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (1)bark-ml
  • (Forward) Music Player: From UI Proposal to Code
  • (八)Spring源码解析:Spring MVC
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (十一)手动添加用户和文件的特殊权限
  • (算法)前K大的和
  • (学习日记)2024.01.09
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • *Django中的Ajax 纯js的书写样式1