MySQL基础-表数据的增删改查

首先建立以下表格式:

create table class(

id int primary key auto_increment, ——列名1:id

sname varchar(10) not null default ”, ——列名2:sname

gender char(1) not null default ”, ——列名3:gender

company varchar(20) not null default ”, ——列名4:company

salary decimal(6,2) not null default 0.00 ——列名5:salary

)engine myisam charset utf8;

一、insert增:

语法-insert into 表名

(列名1,列名2,列名1……)

values

(对应列名1的值,对应列名1的值,对应列名1的值……);

例:

①插入1条完整数据:

mysql> insert into class

-> (id,sname,gender,company,salary)

-> values

-> (1,’张三’,’男’,’百度’,8888.67);

Query OK, 1 row affected (0.00 sec)

查看结果:

mysql> select * from class;

+—-+——-+——–+———+———+

| id | sname | gender | company | salary |

+—-+——-+——–+———+———+

| 1 | 张三 | 男 | 百度 | 8888.67 |

+—-+——-+——–+———+———+

1 row in set (0.00 sec)

②插入部分列:

mysql> insert into class

-> (sname,gender,salary)

-> values

-> (‘李四’,’男’,8888.67);

Query OK, 1 row affected (0.00 sec)

查看结果:

mysql> select * from class;

+—-+——-+——–+———+———+

| id | sname | gender | company | salary |

+—-+——-+——–+———+———+

| 1 | 张三 | 男 | 百度 | 8888.67 |

| 2 | 李四 | 男 | | 8888.67 |

+—-+——-+——–+———+———+

2 rows in set (0.00 sec)

③不申明列名插入一条完整数据:

mysql> insert into class

-> values

-> (3,’王老五’,’女’,’腾讯’,5678.9);

Query OK, 1 row affected (0.00 sec)

查看结果:

mysql> select * from class;

+—-+——–+——–+———+———+

| id | sname | gender | company | salary |

+—-+——–+——–+———+———+

| 1 | 张三 | 男 | 百度 | 8888.67 |

| 2 | 李四 | 男 | | 8888.67 |

| 3 | 王老五 | 女 | 腾讯 | 5678.90 |

+—-+——–+——–+———+———+

3 rows in set (0.00 sec)

自增型列(id类型为自增型)可以用null占位:

mysql> insert into class

-> values

-> (null,’周老六’,’女’,’阿里’,6000);

Query OK, 1 row affected (0.00 sec)

查看结果:

mysql> select * from class;

+—-+——–+——–+———+———+

| id | sname | gender | company | salary |

+—-+——–+——–+———+———+

| 1 | 张三 | 男 | 百度 | 8888.67 |

| 2 | 李四 | 男 | | 8888.67 |

| 3 | 王老五 | 女 | 腾讯 | 5678.90 |

| 4 | 周老六 | 女 | 阿里 | 6000.00 |

+—-+——–+——–+———+———+

4 rows in set (0.00 sec)

插入多条数据:

mysql> insert into class

-> (sname,gender,company,salary)

-> values

-> (‘陈七’,’女’,’360′,3456.78),

-> (‘周八’,’男’,’小米’,5456.78),

-> (‘刘九’,’男’,’百度’,7777.88);

Query OK, 3 rows affected (0.00 sec)

Records: 3 Duplicates: 0 Warnings: 0

查看结果:

mysql> select * from class;

+—-+——–+——–+———+———+——-+

| id | sname | gender | company | salary | fanbu |

+—-+——–+——–+———+———+——-+

| 1 | 张三 | 男 | 百度 | 8888.67 | 255 |

| 2 | 李四 | 男 | | 8888.67 | 0 |

| 3 | 王老五 | 女 | 腾讯 | 5678.90 | 188 |

| 4 | 周老六 | 女 | 阿里 | 6000.00 | 200 |

| 5 | 陈七 | 女 | 360 | 3456.78 | 120 |

| 6 | 周八 | 男 | 小米 | 5456.78 | 234 |

| 7 | 刘九 | 男 | 百度 | 7777.88 | 333 |

+—-+——–+——–+———+———+——-+

7 rows in set (0.00 sec)

二、update改:

语法-update 表名

set 列名1=对应值,

列名2=对应值,

……

where 对应行的值(判断表达式,布尔类型,结果为真则选取);

例:

选择id为6的行,将公司改为华为,工资改为6000:

mysql> update class

-> set company=’华为’,

-> salary=6000

-> where id=6;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

查看结果:

mysql> select * from class;

+—-+——–+——–+———+———+

| id | sname | gender | company | salary |

+—-+——–+——–+———+———+

| 1 | 张三 | 男 | 百度 | 8888.67 |

| 2 | 李四 | 男 | | 8888.67 |

| 3 | 王老五 | 女 | 腾讯 | 5678.90 |

| 4 | 周老六 | 女 | 阿里 | 6000.00 |

| 5 | 陈七 | 女 | 360 | 3456.78 |

| 6 | 周八 | 男 | 华为 | 6000.00 |

| 7 | 刘九 | 男 | 百度 | 7777.88 |

+—-+——–+——–+———+———+

7 rows in set (0.00 sec)

将性别为男,工资大于8000的公司改为谷歌:

mysql> update class

-> set company=’谷歌’

-> where gender=’男’ and salary>8000;

Query OK, 2 rows affected (0.00 sec)

Rows matched: 2 Changed: 2 Warnings: 0

查看结果:

mysql> select * from class;

+—-+——–+——–+———+———+——-+

| id | sname | gender | company | salary | fanbu |

+—-+——–+——–+———+———+——-+

| 1 | 张三 | 男 | 谷歌 | 8888.67 | 255 |

| 2 | 李四 | 男 | 谷歌 | 8888.67 | 0 |

| 3 | 王老五 | 女 | 腾讯 | 5678.90 | 188 |

| 4 | 周老六 | 女 | 阿里 | 6000.00 | 200 |

| 5 | 陈七 | 女 | 360 | 3456.78 | 120 |

| 6 | 周八 | 男 | 华为 | 6000.00 | 234 |

| 7 | 刘九 | 男 | 百度 | 7777.88 | 333 |

+—-+——–+——–+———+———+——-+

7 rows in set (0.00 sec)

三、delete删(整行删除):

语法-delete from 表名

where 对应行的值(判断表达式,布尔类型,结果为真则选取);

例:

删除工资小于7000且性别为男的行:

mysql> delete from class

-> where salary<7000 and gender=’男’;

Query OK, 1 row affected (0.00 sec)

查看结果:

mysql> select * from class;

+—-+——–+——–+———+———+——-+

| id | sname | gender | company | salary | fanbu |

+—-+——–+——–+———+———+——-+

| 1 | 张三 | 男 | 谷歌 | 8888.67 | 255 |

| 2 | 李四 | 男 | 谷歌 | 8888.67 | 0 |

| 3 | 王老五 | 女 | 腾讯 | 5678.90 | 188 |

| 4 | 周老六 | 女 | 阿里 | 6000.00 | 200 |

| 5 | 陈七 | 女 | 360 | 3456.78 | 120 |

| 7 | 刘九 | 男 | 百度 | 7777.88 | 333 |

+—-+——–+——–+———+———+——-+

6 rows in set (0.00 sec)

四、select查:

语法-select 列名,列名……from 表名

where 对应行的值(判断表达式,布尔类型,结果为真则选取);

例:

查性别为女且工资小于6000的名字及公司:

mysql> select sname,company from class

-> where gender=’女’ and salary<6000;

+——–+———+

| sname | company |

+——–+———+

| 王老五 | 腾讯 |

| 陈七 | 360 |

+——–+———+

2 rows in set (0.00 sec)

    原文作者:知势分子
    原文地址: https://zhuanlan.zhihu.com/p/36892945
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞