最近在学习叶梓老师的R语言数据分析预数据挖掘的课程,这里记录一下MySQL的一些基本语句。

MySQL数据库有增、删、改、查四个基本操作,其基本语句如下:

1、增:插入数据

insert语句可以用来讲一行数据查到数据库表中,形式如下;

 insert [into] 表名 [(列名1,列名2,……)] values (值1,值2,……); 

其中 [] 是可选内容。

例如:

insert into mytable(name,sex,birth) values ("小张","1","1993-11-11");

2、删:删除数据(列)

语法:alter table 表名 drop 列名称;

例如,删除tel列:

alter table mytable drop tel;

3、改:修改数据(列)

语法:alter table 表名 change 列名称 列新名称 新数据类型;

例如,将tel列改名为telphone:

alter table mytable change tel telphone varchar(20) default "-";

default后为数据初值,注意,此赋初值的操作仅对用insert into语句新加的数据有效,对原数据没有作用(在Navicat中使用该语句)。

效果如下图:

MySQL数据库的特点 数据库mysql基本语句_MySQL数据库的特点

MySQL数据库的特点 数据库mysql基本语句_字段_02

上一行为表中原有数据,在进行修改列名称修改后,本已赋初值,可以第一行并没有初值,而第二行为新插入的数据,此时就有了初值。

当然以上所有操作可以在Navicat直接选中表,然后选择设计表去快捷修改,这里为了熟悉数据库命令行操作,如下图:

MySQL数据库的特点 数据库mysql基本语句_MySQL数据库的特点_03

 4、查:查询数据

MySQL数据库使用SELECT语句来查询数据。

通用的SELECT语法:SELECT col_name1,col_name2,…… FROM table_name [WHERE Clause] [OFFSET M] [LIMIT N]

其中,col_nameN为你要选择的字段,这里可以是 *,表示选择表里的所有字段。WHERE语句其实就是一个组合的限制条件,比如[WHERE condition1 [AND /OR] condition...]

比如,从以下表中选出性别代号为1的行,这里为了显示所有的字段,所有是SELECT *。

MySQL数据库的特点 数据库mysql基本语句_MySQL数据库的特点_04

然后执行语句,我这里是在Navicat中执行的,也可以到命令行中去执行,Navicat中语句以及执行效果如下:

MySQL数据库的特点 数据库mysql基本语句_MySQL_05

 

5、update查询

如果需要修改或更新MySQL中的数据,可以使用UPDATE命令来操作。

语法:

UPDATE table_name SET field1=new-value1, field2=new-value2,……[WHERE Clause]

当需要更新数据表中特定行的数据时,可用WHERE字句。

可以同事更新一个或多个字段。

例如,在之前的表中,将地址address中值为Null的修改为'未知',则执行以下语句:

update mytable set address='未知' where address is null;

结果如下图:

MySQL数据库的特点 数据库mysql基本语句_MySQL_06

6、DELETE删除语句

用3中的删除会把整个表的数据删掉,而DELETE FROM命令可以用来删除MySQL数据表中的特定记录。

语法:DELETE FROM table_name [WHERE Clause]

例如,删除之前表中telephone中为“-”的数据:

delete from mytable where telphone="-";

结果就是含有telphone的那一行的数据都没有了:

MySQL数据库的特点 数据库mysql基本语句_数据_07

7、LIKE子句

在SELECT语句中,使用WHERE子句获取指定记录时,其用作“=”来使用,而有时需获取字段含有某字符的所有记录,这时我们就需要在WHERE子句中使用LIKE子句,字面意思,就是获取和该子句后面内容相近的记录。

比如要获取字段中含有“张”的记录,可以使用如下语句:

select * from mytable where name like "%张%";

这里注意,LIKE子句中使用百分号%字符来表示任意数量的任意字符,如果没有用百分号,则和“=”是一样的效果。结果如下:

MySQL数据库的特点 数据库mysql基本语句_MySQL数据库的特点_08

 

8、UNION操作符

UNION操作符用于连接两个以上的SELECT语句的结果组合到一个结果集合中,多个SELECT语句回删除重复的数据。

语法:

SELECT expression1, expreesion2,……,expressionn FROM table_name [WHERE conditions] UNION [ALL | DISTINCT] SELECT expression1, expreesion2,……,expressionn FROM table_name [WHERE conditions]

两个或两个以上的SELECT可以是在一个表中SELECT,也可以在不同的表中SELECT。举个在一个表中的组合例子。

在之前的表中选择带有“李”和“张”的字段的记录,代码如下:

select * from mytable where name like "%张%"
UNION ALL
select * from mytable where name like "%李%";

结果是把表中的带有李和张的字段的记录组合在一起:

MySQL数据库的特点 数据库mysql基本语句_MySQL_09

9、排序

如果我们需要对读取的数据进行排序,我们可以使用MySQL的order by子句来设定排序规则,具体语法为:

SELECT field1, field2,……,fieldn FROM table_name ORDER BY field1, [field2...] [ASC DESC]

其中,ASC和DESC是规定升序还是降序,默认不写为升序,即ASC。

比如还是这个表,按生日大小排序的化,在查询里新建查询:

SELECT birth from mytable ORDER BY birth

这里默认不写排序规则,按升序规则排序,结果为:

MySQL数据库的特点 数据库mysql基本语句_MySQL_10

这里由于数据库数据区分不大,所以效果不是很明显,但是仔细看,1995的两条数据互换,表示已进行排序。

如果规定降序排序的话,可以写成。

SELECT birth from mytable ORDER BY birth DESC

 此时的结果为:

MySQL数据库的特点 数据库mysql基本语句_数据_11