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

  1. 云栖社区>
  2. 博客>
  3. 正文

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

杰克.陈 2015-05-09 11:52:00 浏览587
展开阅读全文
原文: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;

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

 

网友评论

登录后评论
0/500
评论
杰克.陈
+ 关注