mysql数据库delete和_mysql数据库 select和delete操作

mysql delete操作

语法:delete from 表名 where.

mysql> select * from user;

+----+--------+---------------------+

| id | name   | birthday            |

+----+--------+---------------------+

|  1 | lisi   | 2000-08-09 00:00:00 |

|  2 | saluya | 2010-01-11 00:00:00 |

|  3 | lucy   | 1993-07-26 00:00:00 |

+----+--------+---------------------+

3 rows in set (0.00 sec)

mysql> delete from user where id = 3;

Query OK, 1 row affected (0.01 sec)

mysql> select * from user;

+----+--------+---------------------+

| id | name   | birthday            |

+----+--------+---------------------+

|  1 | lisi   | 2000-08-09 00:00:00 |

|  2 | saluya | 2010-01-11 00:00:00 |

+----+--------+---------------------+

2 rows in set (0.00 sec)

注意:如果后面不跟where条件过滤,所有的行都会收到影响。

mysql select操作

语法:select 列1,列2.... from 表名 where expr.

#查询所有的数据,数据量过大会使表崩。

mysql> select * from user;

+----+--------+---------------------+

| id | name   | birthday            |

+----+--------+---------------------+

|  1 | lisi   | 2000-08-09 00:00:00 |

|  2 | saluya | 2010-01-11 00:00:00 |

+----+--------+---------------------+

2 rows in set (0.00 sec)

#增加where条件过滤,只查id=2的行。

mysql> select * from user where id=2;

+----+--------+---------------------+

| id | name   | birthday            |

+----+--------+---------------------+

|  2 | saluya | 2010-01-11 00:00:00 |

+----+--------+---------------------+

1 row in set (0.00 sec)

#查询id>=2的行。

mysql> select * from user where id>=2;

+----+--------+---------------------+

| id | name   | birthday            |

+----+--------+---------------------+

|  2 | saluya | 2010-01-11 00:00:00 |

|  3 | lili   | 2009-09-01 00:00:00 |

+----+--------+---------------------+

2 rows in set (0.00 sec)

#固定查询只查看哪几列。

mysql> select id,name from user where id>=2;

+----+--------+

| id | name   |

+----+--------+

|  2 | saluya |

|  3 | lili   |

+----+--------+

2 rows in set (0.00 sec)

select查询模型:

列是变量,where是表达式,值为真假.

#注意:1为true,0为fales,直接写ture也是可以的。

mysql> select id,name from user where 1;

+----+--------+

| id | name   |

+----+--------+

|  1 | lisi   |

|  2 | saluya |

|  3 | lili   |

+----+--------+

3 rows in set (0.00 sec)

#注意:变量为假一行也打印不出来.

mysql> select id,name from user where 0;

Empty set (0.00 sec)

#注意:where条件写布尔型也是可以匹配到的.

mysql> select id,name from user where true;

+----+--------+

| id | name   |

+----+--------+

|  1 | lisi   |

|  2 | saluya |

|  3 | lili   |

+----+--------+

3 rows in set (0.00 sec)

比较运算符:

等于        =

不等于        != 或者 <>

小于        <

小于等于        <=

大于(等于)        >(=)

大于等于        >=

在某集合内    in    (等于in(a,b,...,n)中的任意一个值都行

在某个范围内    between    (在between a and b 之间的值都可以,允许等于边界值)

逻辑运算符:

逻辑非        NOT 或 !

逻辑或        OR 或 ||

逻辑与        AND 或 &&

模糊查询:

像        like

通配符:

通配任意字符    %    (like(诺基亚%))

通配单个字符    _    (like(诺基亚N__))

#变量可以做‘+’,‘-’运算,在mysql数据库种也一样,但是要针对可以做运算的列.

mysql> select id+1 from user  where 1;

+------+

| id+1 |

+------+

|    2 |

|    3 |

|    4 |

+------+

错误案例:

如果不能做加减运算的列,结果如下:

mysql> select id,name+1 from user  where 1;

+----+--------+

| id | name+1 |

+----+--------+

|  1 |      1 |

|  2 |      1 |

|  3 |      1 |

+----+--------+

3 rows in set, 3 warnings (0.00 sec)

#mysql列与列之间可以做“+”,“-”法运算,称之为广义投影.

mysql> select * from student;

+-----+--------+------+------+

| SNO | SNAME  | AGE  | SEX  |

+-----+--------+------+------+

| 1   | 李强   |   23 | 男   |

| 2   | 刘丽   |   22 | 女   |

| 5   | 张友   |   22 | 男   |

+-----+--------+------+------+

3 rows in set (0.00 sec)

mysql> select SNAME,SEX,AGE-SNO from student;

+--------+------+---------+

| SNAME  | SEX  | AGE-SNO |

+--------+------+---------+

| 李强   | 男   |      22 |

| 刘丽   | 女   |      20 |

| 张友   | 男   |      17 |

+--------+------+---------+

3 rows in set (0.00 sec)

mysql> select * from student;

+-----+--------+------+------+

| SNO | SNAME  | AGE  | SEX  |

+-----+--------+------+------+

| 1   | 李强   |   23 | 男   |

| 2   | 刘丽   |   22 | 女   |

| 5   | 张友   |   22 | 男   |

+-----+--------+------+------+

3 rows in set (0.00 sec)

#查找student表中,所有年龄不等于!=22和<>22的学生名字,两种写法都行.

mysql> select SNAME from student where AGE != 22;

+--------+

| SNAME  |

+--------+

| 李强   |

+--------+

1 row in set (0.00 sec)

mysql> select SNAME from student where AGE <> 22;

+--------+

| SNAME  |

+--------+

| 李强   |

+--------+

1 row in set (0.00 sec)

#查询年级大于22岁的学生名字.

mysql> select SNAME from student where AGE > 22;

+--------+

| SNAME  |

+--------+

| 李强   |

+--------+

1 row in set (0.00 sec)

#查询年龄等于22或者等于23的学生名字,"or"用法.

mysql> select SNAME,AGE from student where AGE=23 or AGE= 22;

+--------+------+

| SNAME  | AGE  |

+--------+------+

| 李强   |   23 |

| 刘丽   |   22 |

| 张友   |   22 |

+--------+------+

3 rows in set (0.00 sec)

#查询年龄在22,23的学生名字,"in"用法,在某几个值之间.

mysql> select SNAME,AGE from student where AGE in (22,23);

+--------+------+

| SNAME  | AGE  |

+--------+------+

| 李强   |   23 |

| 刘丽   |   22 |

| 张友   |   22 |

+--------+------+

3 rows in set (0.00 sec)

#查询年龄在22,23的学生名字,"between"用法,取值范围之间.

mysql> select SNAME,AGE from student where AGE between 22 and 23;

+--------+------+

| SNAME  | AGE  |

+--------+------+

| 李强   |   23 |

| 刘丽   |   22 |

| 张友   |   22 |

+--------+------+

3 rows in set (0.00 sec)

mysql> select SNAME,AGE from student where AGE between 0 and 23;

+--------+------+

| SNAME  | AGE  |

+--------+------+

| 李强   |   23 |

| 刘丽   |   22 |

| 张友   |   22 |

+--------+------+

3 rows in set (0.00 sec)

#找出年龄不等于23也不等于23的学生,“not in”用法.

mysql> select SNAME,AGE from student where AGE != 22 and AGE !=23;

Empty set (0.00 sec)

mysql> select SNAME,AGE from student where AGE not in (22,23);

Empty set (0.00 sec)

#取出性别为“男”,年级大于0且小于等于22岁并且学号为5的学生名字.

mysql> select * from student;

+-----+--------+------+------+

| SNO | SNAME  | AGE  | SEX  |

+-----+--------+------+------+

| 1   | 李强   |   23 | 男   |

| 2   | 刘丽   |   22 | 女   |

| 5   | 张友   |   22 | 男   |

+-----+--------+------+------+

3 rows in set (0.00 sec)

mysql> select SNAME from student where SEX="男" and (AGE > 0 and AGE <=22) and SNO = 5;

+--------+

| SNAME  |

+--------+

| 张友   |

+--------+

1 row in set (0.00 sec)

注意:多个条件直接使用“()”括起来,"and"的优先级大于"or",条件过多时会发生歧义。

#mysql种like的用法,查找SNAME像“%强”的学生,“%”匹配任意字符.

mysql> select SNAME from student where SNAME like "%强";

+--------+

| SNAME  |

+--------+

| 李强   |

+--------+

1 row in set (0.00 sec)

#mysql种“_”匹配单一字符.

mysql> select SNAME from student where SNAME like "_强";

+--------+

| SNAME  |

+--------+

| 李强   |

+--------+

1 row in set (0.00 sec)

#将student表中的名字像“_强”的改为“换换”.

mysql> update student set SNAME = "换换" where SNAME like "_强";

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from student;

+-----+--------+------+------+

| SNO | SNAME  | AGE  | SEX  |

+-----+--------+------+------+

| 1   | 换换   |   23 | 男   |

| 2   | 刘丽   |   22 | 女   |

| 5   | 张友   |   22 | 男   |

+-----+--------+------+------+

3 rows in set (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值