• mysql语句在客户端与服务端的基本使用


    //把数据库导出到脚本文件
    mysqldump -uroot -p1234 --databases abc > d:/a/abc.sql
    ----------------------------------------------------------------------------
    如何在mysql控制台中查看数据库表(就是在服务器端查看客户端的数据库表)
    1,先启动服务(以管理员身份运行)
    net start mysql-5.6.22-winx64
    --也可右键点击“我的电脑”|“管理”|“服务和应用程序”|“服务”|找到“mysql-5.5.24-winx64”,右键点开,选择启动
    2,命令行登录(把bin目录设到path环境变量中,则可省略“bin”,后面同理)
    binmysql -u root -p (看你客户端设置的是那个客户名)
    --密码为空回车
    3,你可以先查看有哪些数据库:show databases;
    4,使用数据库名:use (这里填写表格中你要选择的数据库名);
    5,查看数据库中的表格:show tables;
    6,查看数据库表格中的所有内容:select * from (你选择的表格名);
    7,之后你可以在这里进行增删改查:(可以在客户端也可以在服务端);
    ----------------------------------------------------------------------------
    CREATE TABLE stud(
    id INT PRIMARY KEY,-----primary key是主键填写值的时候不能为空,not null也是填值的时候不能为空。primary key=unique key+not null
    NAME VARCHAR(32) NOT NULL,
    score NUMERIC(4,1)
    );
    //把所有名字都设成"Mike"了
    UPDATE stud SET NAME="Mike"

    //只设置分数>=70的记录的Name
    UPDATE stud SET NAME="Exc" WHERE score>=70

    //同时修改多个字段(下面两种方式都可。字段值即使不是字符类型,也可以加引号---注意,字符类型的值必须加引号。因此为安全考虑,最好所有的值都加引号--单引号和又引号
    都可以)
    UPDATE stud SET NAME="笨蛋",id=5 WHERE score<60
    UPDATE stud SET NAME="笨蛋",id='5' WHERE score<60


    ※where子句的句型
    Select 字段列表 From 表名 where 条件 and 条件 or 条件 
    Update table tableName set .. Where 条件
    Delete from tableName where ….

    //查询分数在[60,80]之间的学生
    SELECT * FROM stud WHERE score>=60 AND score<=80;
    SELECT NAME,score FROM stud WHERE score BETWEEN 60 AND 80; //between子句是包含边界的

    //查询分类正好是65和85的学生
    SELECT * FROM stud WHERE score=65 OR score=85;
    SELECT * FROM stud WHERE score IN(65,85); //in子句中的值是离散的

    //模糊查询: like 参数: %(任意匹配) _(匹配单字符)
    SELECT * FROM stud WHERE NAME LIKE '王%'; //姓王的学生
    SELECT * FROM stud WHERE NAME LIKE '王_'; //姓王且名为单字的学生
    SELECT * FROM stud WHERE NAME LIKE '王__'; //姓王且名为双字的学生
    SELECT * FROM stud WHERE NAME LIKE '%王%';//姓名中包含"王"的学生

    //查询某字段值为空
    SELECT * FROM stud WHERE score IS NULL; //注意,不能用"="号

    SELECT * FROM stus WHERE scorce='null'; 这里是判断表格中的值是否填写的是空值;

    //视图View ---对视图的操作能够时时更新到物理表,只是操作范围只针对视图中的进行(效率更高)
    CREATE VIEW studV AS SELECT * FROM stud WHERE score<60;
    SELECT NAME FROM studV;
    UPDATE studV SET score = score*1.1; //该句执行后: 1)如果分数及格则studV视图中不再包含该数据 2)物理表stud中的数据也更改了。

    //聚合函数
    SELECT COUNT(*) AS num FROM stud; //统计表中数据的行数
    SELECT COUNT(score) AS num FROM stud; //统计score列中非NULL数据行的数量
    SELECT AVG(score) AS avgg FROM stud;//统计分数的平均值(不包含score值为null的记录)
    SELECT AVG(score) AS avgg FROM stud WHERE score IS NOT NULL;

    SELECT ROUND(AVG(score)) AS avgg FROM stud;//四舍五入,取整
    SELECT ROUND(AVG(score),2) AS avgg FROM stud;//四舍五入,保留两位小数

    SELECT SUM(score) AS avgg FROM stud;//求和
    SELECT MAX(score) AS avgg FROM stud; //最大值(最高分)
    //查询出最高分学生的信息
    SELECT * FROM stud WHERE score = (SELECT MAX(score) AS avgg FROM stud );
    SELECT * FROM stud WHERE score IN( SELECT MAX(score) AS avgg FROM stud );

    //查询有哪些年龄段的学生(显示有哪些年龄值,即年龄值相同的只显示一个)---以后的显示有哪些专业、哪些部门 都用distinct
    SELECT DISTINCT age FROM stud;
    SELECT DISTINCT age FROM stud ORDER BY age ASC; //升序
    SELECT DISTINCT age FROM stud ORDER BY age DESC; //降序

    //反模式--以下语句要么显示所有记录,要么一条也不显示。因为EXISTS()返回的是同一个结果
    SELECT * FROM stud WHERE EXISTS( SELECT * FROM stud WHERE age=25 );

    //句型: group by... having... ---把各年龄段学生的平均分显示出来
    SELECT AVG(score) 平均分, age FROM stud GROUP BY age;
    SELECT AVG(score) 平均分, age FROM stud GROUP BY age HAVING age>20; //把年龄大于20岁的学生的平均成绩查出来;
    SELECT AVG(score) 平均分, age FROM stud GROUP BY age HAVING AVG(score)>=70;//把分数大于70的年龄段的人的平均分求出来;

    //字符串处理函数
    Length(str) - 求字符串长度
    Ltrim(str) - 去掉左边的空格
    Rtrim(str) - 去掉右边的空格
    Left(str,n); - 从左边取出n个字符
    Right(str,n); - 从右边取出n个字符
    Substring(str,begin,len) -返回子串, begin的序号从1开始 ※
    Reverse(str) –返回颠倒的字符串
    Lower(str) - 转成小写
    Upper(str) - 转成大写
    Concat(Str,str…..)串联字符串。
    Instr(str,s) – 返回s在str中出面的位置,没有则返回0

    SELECT * FROM stud WHERE LENGTH(NAME)>3;
    SELECT * FROM stud WHERE LENGTH(LTRIM(NAME))>3;

    SELECT SUBSTRING(NAME,1,2) FROM stud;
    SELECT * FROM stud WHERE SUBSTRING(NAME,1,1)='王';//显示姓王的学生


    ※数据库和Java类之间的对象
    List<Stud> ---表格
    Stud类对象(值对象,域对象) ---表记录(表中的一行)
    Stud类对象中的属性(成员变量) -----表字段(Field)

    ----------------------------------------------------------------------------------------------

    在客户端数据库和数据库的表格要时刻刷新,不然会出现一些小小的错误;

  • 相关阅读:
    POJ 3211 (分组01背包) Washing Clothes
    CodeForces 489D Unbearable Controversy of Being
    CodeForces 489C (贪心) Given Length and Sum of Digits...
    CodeForces 489B (贪心 或 最大匹配) BerSU Ball
    CodeForces 489A (瞎搞) SwapSort
    CodeForces 474.D Flowers
    UVa 1252 (状压DP + 记忆化搜索) Twenty Questions
    UVa 10817 (状压DP + 记忆化搜索) Headmaster's Headache
    【读书笔记】莫比乌斯函数与莫比乌斯反演
    UVa 11437 (梅涅劳斯定理) Triangle Fun
  • 原文地址:https://www.cnblogs.com/1314wamm/p/6016361.html
Copyright © 2020-2023  润新知