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