• 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 降序

  • 相关阅读:
    linux中解压.tgz, .tar.gz ,zip ,gz, .tar文件
    hook(v16.7测试)?
    React优点?
    Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
    说说数据库连接池工作原理和实现方案?
    short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
    Oracle的数据优化(经常被问到)?
    存储过程和函数的区别?
    Collection 和 Collections的区别?
    说说数据库连接池工作原理和实现方案?
  • 原文地址:https://www.cnblogs.com/li1189/p/7130431.html
Copyright © 2020-2023  润新知