mysql数据库命令

Day01

select * from SPI; -- 查询SPI表中的所有字段

select * from SPI where num>90 -- 语句后面的分号加不加都一样

select componentid from SPI -- 查询表中的一列数据

select DISTINCT componentid from SPI -- 排出本列中的重复数据,只显示一条

select * from SPI where componentid=4 AND num = 90; -- AND是两个条件必须同时满足即可

select * FROM SPI where num = 100 OR projectid = 10; -- OR是两个条件满足一个即可

select * from SPI ORDER BY num ASC; -- 按照num升序(从小到大)排列,默认就为升序,所以不写也是升序的效果

select * from SPI ORDER BY projectid DESC,num ASC -- 意思是先按照前面的字段降序排列(projectid),然后再升序排列后面字段中的数据(num)

-- 添加数据

Insert into SPI VALUES(095,7,13,110);

select * from SPI where supplyid = 666;

Insert into SPI(supplyid,num)VALUES(666,888);

-- 更改一条数据

update SPI set componentid=88,projectid=10 where num=888

select * from SPI;

-- 删除一条数据

Insert into SPI values(222,2,22,220);

delete from SPI where supplyid = 222

Day02:

USE test1; -- 进入数据库

-- 查询文化等级为优,百米赛跑前五名的学生

SELECT * FROM USER WHERE uscoreDengji='' ORDER BY uscoreHandred ASC LIMIT 5;

-- 查询百米成绩小于12秒的学生(从第一个开始往后数两个学生)

SELECT * FROM USER WHERE uscoreHandred<12  LIMIT 1,2;

-- 从第0条数据开始  往后数1条数据全部显示

SELECT * FROM USER LIMIT 0,1;

-- 从第1条数据开始  往后数5条数据全部显示

SELECT * FROM USER LIMIT 1,5;

-- 模糊查询

-- 符号_,只能代表一个字,可以放在任意一个位置

-- 符号%,可以表示多个字,可以放在任意一个位置

SELECT * FROM USER WHERE uname LIKE '%';

SELECT * FROM USER WHERE uname LIKE '%';

SELECT * FROM USER WHERE uname LIKE '%';

SELECT * FROM USER WHERE uname LIKE '栗亚_';

-- 显示非'郭军栋'的所有学生

SELECT * FROM USER WHERE uname NOT LIKE '郭军%';

-- 显示非'栗亚磊'的所有学生

SELECT * FROM USER WHERE uname NOT LIKE '_';

-- 是一个默认的列,与id相似(oracle数据库属性rownum

SELECT * FROM USER WHERE rownum<=3;

-- a.*==empb==emp+rn列  使用a作为emp表的别名

SELECT * FROM (SELECT a.*,rownum AS rn FROM emp a) b WHERE b.rn BETWEEN 6 AND 10

SELECT * FROM USER WHERE uname IN('曹庆伟','赵磊');

Day03

select * from 表名 where 字段名 between A and B; 显示AB范围内的数据

select * from 表名 where 字段名 not between A and B;显示AB范围之外的数据

select * from 表名 where 字段名 in(A,B); 显示AB范围内的数据

select * from 表名 where 字段名 not in(A,B); 显示AB范围之外的数据

select * from 表名 where 字段名 like 'A';显示A

select * from 表名 where 字段名 not like 'A'; 显示不是A的所有数据

select * from class where name not like '_'; 显示name不是张三的数据

给字段名命名,有两种方式:

第一种:字段名+空格+'命名1'

第二种:字段名+AS+'命名2'

select 字段名 '命名1',字段名 AS '命名2' from 表名;

两表联查(classUser表合并,前提是两个表的姓名字段内容一样)

第一种方式:

select * from 表名1 JOIN 表名2 ON 表名1.字段名=表名2.字段名;

select * from class JOIN `User` ON class.name = `User`.Uname;

第二种方式:

select *  from 表名1,表名2 where 表名1.字段名=表名2.字段名;

select * from class,`User` where class.`name`=`User`.name;

三表联查

给表起别名,方便操作,因为表名过长太麻烦

Class c User u Student s

第一种方式(查询出三个表中综合起来的所有字段,前提条件是查询出三个表中姓名字段内容相同的数据)

select * from 表名 别名1 join 表名 别名2 join 表名 别名3 ON  别名1.字段名=别名2.字段名 AND 别名2.字段名=别名3.字段名;

select * from class c join User u join student s ON c.name = u.Uname AND  u.Uname = s.name;

第二种方式(查询具体表中的具体字段,前提条件是查询出三个表中姓名字段内容相同的数据)

select u.Uage,s.name from class c JOIN `User` u JOIN student s ON c.`name`=u.Uname AND u.Uname = s.`name`;

左连接(右侧除了和左侧一致的保存,其他的都不显示)

select * from 表名1 LEFT JOIN 表名2 ON 表名1.字段名 = 表名2.字段名;

select * from class LEFT JOIN `User` ON class.`name` = `User`.Uname;

右连接(左侧除了和右侧一致的保存,其他的都不显示)

select * from 表名1 right JOIN 表名2 ON 表名1.字段名 = 表名2.字段名;

select * from class RIGHT JOIN `User` ON class.`name` = `User`.Uname;

Full连接

select * from class  FULL JOIN `User`;

-- 字段命名

select no '序号',name AS '名字' from class;

-- 所有年龄的平均值

SELECT AVG(age) from User;

-- 求最大值

select MAX(age) from User;

-- 求最小值

select MIN(age) from `User`;

-- 一共有8条数据

SELECT count(Uname)from User;

select count(*) from User;

-- 排除重复

select count(DISTINCT Uname)  from User;

-- 查询姓李的平均年龄

select AVG(age) from User WHERE Uname LIKE '%';

-- 年龄总和

select SUM(age) from User;

-- 姓名为李刚的个数

select Count(*) from User where Uname = '李刚' GROUP BY Uname;

-- 年龄为17的个数

select Count(*) from  User where age = 17 GROUP BY age;

select * from SPI;

select supplyid '供应编号',componentid '零件编号',projectid '工程号',num '数量' from SPI;

-- 查询一个工程对应至少三家供应商供应零件的平均数量,然后降序排列工程编号

select projectid,AVG(num) from SPI GROUP BY projectid HAVING COUNT(componentid)>=3 ORDER BY projectid DESC;

select * from studentcourse;

select * from studentmessage;

-- 查询总成绩大于270分的学生信息

select sme.* from studentcourse sc JOIN studentmessage sme ON sc.cardid = sme.cardid where (sc.math+sc.chinese+sc.english)>270;

知识点概括:

1.count 统计函数,进行累加

2.max 找出列中最大的数值

3.min 找出列中最小的数值

4.别名

5.Group by 分组

6.Order by 按具体列值排序

7.asc 升序

8.desc 降序

原文地址:https://www.cnblogs.com/li1189/p/7130431.html