在企业日常生产环境中,除非有很大的业务数据变动,否则不会轻易地修改或创建新的数据库和数据表,一般都是在原有的表内添加修改操作,以及使用最频繁的查询操作。
插入、修改、查询、删除,是对数据信息的基本操作; 本章讲解基本的增删改查的SQL命令。
老规矩,先连接 MySQL 服务器
代码语言:javascript复制mysql -uroot -p123456
#创建一个test库,并指定使用它
create database test;
use test;
#在当前数据库中新建一张表
create table tab(
id tinyint primary key,
name char(6) not null,
sex char(2) default '男'
);
1.插入 (INSERT INTO)
a.插入一条数据到表中,字段与值一一对应,且插入的值符合字段的数据类型
代码语言:javascript复制语法:INSERT INTO 表名(字段名,字段名) VALUES(值,值);
例如:insert into tab(id,name) values(1,"张三");
b.字段名可省略,但值必须按字段在表中的顺序插入
代码语言:javascript复制语法:INSERT INTO 表名 VALUES(值,值);
例如:INSERT INTO tab VALUES(2,"王二");
c.插入多条纪录
代码语言:javascript复制INSERT INTO tab VALUES(3,"王三"),(2,"王四"),(2,"王五");
2.修改数据 (updata ... set)
代码语言:javascript复制语法:UPDATE 表名 SET 字段1=值,字段2=值 WHERE 条件;
#更新id为2的这行数据中的name值
例如:update tab set name="张三疯" where id=1;
#查看验证
select * from tab;
3.删除数据 (delect ... from)
代码语言:javascript复制语法:DELETE FROM 表名 WHERE 条件;
#删除name为"王二"的这行数据
例如:delect from tb where name='王二';
select * from tb;
4.查询(SELECT)
代码语言:javascript复制#查询 Table 中所有数据
语法:SELECT * FROM 表名;
#查看刚插入的所有数据,*表示匹配所有字段
例如:selece * from newstudent;
#查询指定字段(列)的数据
SELECT id FROM tab;
1)条件查询 (where)
代码语言:javascript复制SELECT * FROM tab WHERE id > 1;
多条件查询 (where ... and/or ...)
#and,数据必须同时满足两个条件
SELECT * FROM tab WHERE id = 1 and name='张三疯';
#or ,数据满足某个条件便可查询出来
SELECT * FROM tab WHERE id = 2 or name='张三疯';
2)查询分组(GROUP BY)
将查询结果按照1个或多个字段进行分组,字段值相同的为一组;
代码语言:javascript复制#GROUP BY可以用于单个字段和多个字段
#尝试添加多条性别数据,再分组查询
SELECT * FROM tab GROUP BY sex;
3)限制查询数量(LIMIT)
LIMIT 用于限制SELECT查询语句返回指定的记录数,也叫分页查询。 LIMIT 可以接收一个或两个数字参数,参数必须是一个整数常量。
a. 如果只给定一个参数,则它表示返回最大的记录行数目。
代码语言:javascript复制#检索前3行记录
SELECT * FROM tab LIMIT 3;
b.如果两个参数,limit a,b ;
下标0开始计数,返回从a开始一共b条数据
代码语言:javascript复制#从第2条数据开始,检索出5条数据
SELECT * FROM tab LIMIT 2,5;
4)返回唯一值 (distinct)
代码语言:javascript复制#查询的返回结果中 name 字段下的数据不会重复
select distinct name from tab;
#查询的返回结果中 name和id 的组合字段数据不会完全相同
select distinct score,id from tab;
5)查询结果排序 (ORDER BY)
代码语言:javascript复制#查询所有数据,以id排序,降序(DESC),[省略不写则默认升序(ASC) ]
SELECT * FROM tab order by id DESC;
#也可以多字段排序,用英文逗号分隔字段名
#order by 只能用在SQL语句 最后。