zoukankan      html  css  js  c++  java
  • 最初学习mysql的一些操作留存

    一:数据库的初始话操作

    mysql -u root -p    //数据库的登陆
    show databases;    //展现数据哭中存储的所有文件
    use 数据库名;        //进入当前要错做的数据库中
    creat database 数据库名;    //创建一个新的数据库文件
    drop database 数据库名;    //删除已经存在数据库文件

    二:数据库的表操作
    //为当前选定的数据库创建一个表
     create table t_user(
     id int,
     name varchar(20),
     sal double(5,3),
     birthday datetime,
     hiredata timestamp
     );
     
     show tables;//查看所有表名
     desc 表名;    //查看表名中存放的数据
     drop table 表名;//删除选择的表
     alter table 表名 add 列名 类型;//给选定的表增加一行新的信息
     alter table t_user add newname varchar(20);
     
     alter table 表名 modify 列名 类型;//将原有的列类型进行修改
     alter table t_user modify newname photh;
     
     alter table 表名 change 旧的列名 新的列名 数据类型;//将列名更改
     alter table t_user change  newname image varchar(20);

     alter table 表名 drop 列名;
     alter table t_user drop image;
     
     rename table 旧表名 to 新表名;
     rename table t_user to t_empoyee;
     
     三:列的约束
             保证数据的完整性
             1、非空约束    not null 指定非空约素的列,再插入记录时,必须包含值。
             2、唯一约束 unique        该列的内容在表中,值是唯一的
             3、主键约束    primary key
                                                         当想要吧某一列的值,作为该列的唯一标识符,可以指定主键约素。
                                                         注意:一张表中只能有一个主键约素
     
     四:对表中的数据进行增删改查
             1、为表添加数据
                 insert into 表名[(列名1,列名2)] values (值1,值2);
                 
                 insert into t_user(name,email) values('tom','tom@163.com');
                 insert into t_user valuse ('神殇','1179672922');
             
             修改存储编码:
                     set character_set_client=gbk;
             修改结束数据
                     set character_set_results=gbk;
             
             2、修改表中存储的数据
                update 表名 set 列名='新的数据',列名='新的数据' while 条件
                 update 表名 set name='新的数据' while id=3;
                         上面的翻译:当数据库中某项内容的id 为3的时候将这一项中的name存储的信息修改为‘新的数据’
                 多项那内容修改:
                     update employee set salary=4000,job='sss' while name='zs';
                 对未知属性修改
                     update employee set salary=salary+1000,job='ddd' while name='ww';
                     
            3、删除表记录
                delete from 表名 while 条件
                delete from emeployee while name='rose';//删除指定的表数据
                delete from employee;    //删除表中的所有数据-->注意这种删除不是在文件中完全删除,可以进行恢复
                实例:
                    delete from employee while name="ww";
                删除整张表的数据:
                    truncate table employee;    //-->注意这种删除是从硬盘上将表数据完全删除掉,不可恢复
                

    。;        
            4、DQL语句(DML) 查询语句 --> 重点
                语法:
                    select selection_list     要查询的列名称
                    from table_list     要查询的表名称
                    while condition        行条件
                    group by grouping_columns     对结果分组
                    having condition     分组后的行条件
                    order by sorting_colums        对结果排序
                    limit offset_start, row_count        结果限定
                    
                自己使用实例:
                    1、select * from 表名        // 查询表中的所有数据
                         select 列名,... from 表名//查询表中某一列或多列的数据
                    条件查询:
                        条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字:
                        ?    =、!=、<>、<、<=、>、>=;
                        ?    BETWEEN…AND;
                        ?    IN(SET)/NOT IN(SET)    //set表示集合,代表多种条件的判断的集合
                        ?    IS NULL/IS NOT NULL
                        //---条件连接符
                        ?    AND; &&
                        ?    OR;  ||
                        ?    NOT; !
                例子:查询性别为女,并且年龄小于50的记录
                    select * from stu where gender='female'  and age<50;
                    
                    模糊查找
                        where 字段 like '表达式';
                        % => 通配 通配任意个字符(指的是任意长度的任意一段字符)
                        _ => 通配 通配单个字符    (值得是一个长度的任意一个字符)
                        说明:like 条件后 根据模糊查询表达式,"_"==>代表一个任意字符
                    
                    排序
                        关键词:order by
                        升序:asc
                        降序:desc
                        语法:列名 order by 升降序
                        
                        
        limit mysql专属语言
            limit用于限定查询结果的起始行,以及总行数
            例子:
                查询5行记录,从0行开始
                select    * from emp limit 0,5;
                
                查询10行记录,从3行考试
                select * from emp limit 3,10;
                
                如果一页记录为5条,希望查看第3页记录:
                    select * from limit 10,5;
                    
                    3.1查询姓名由5个字母构成的学生记录
        
        SELECT * FROM stu WHERE sname LIKE "_____";
        

    3.2查询姓名由5个字母构成,并且第5个字母为“i”的学生记录

        SELECT * FROM stu WHERE sname LIKE "____i";

    3.3 查询姓名以“z”开头的学生记录
    说明: "%"该通配符匹配任意长度的字符.
        SELECT * FROM stu WHERE sname LIKE "z%";

    3.4查询姓名中第2个字母为“i”的学生记录
        SELECT * FROM stu WHERE sname LIKE "_i%";


    3.5 查询姓名中包含“a”字母的学生记录
        SELECT * FROM stu WHERE sname LIKE "%a%";


    4.1  去重重复记录
        SELECT DISTINCT gender FROM stu;
        
    4.2  查看雇员的月薪与佣金之和
        SELECT ename,sal+comm FROM emp;
        SELECT ename,sal+IFNULL(comm,0) AS "月收入" FROM emp;
        
    4.3  给列名添加别名
        SELECT ename "姓名",sal+IFNULL(comm,0) "月收入" FROM em
        SELECT ename AS "姓名",sal+IFNULL(comm,0) AS "月收入" FROM emp;
        
    5.1  查询所有学生记录,按年龄升序排序
        SELECT * FROM stu  ORDER BY age ASC;

    5.2  查询所有学生记录,按照年龄降序排序    
        SELECT * FROM stu  ORDER BY age DESC;
        
    5.3  查询所有雇员,按月薪降序排序,如果月薪相同时,按编号升序排序
        SELECT * FROM emp ORDER BY sal DESC , empno ASC;

    SHOW DATABASES;
    USE SECOND;
    SHOW TABLES;
    DESC emp;
    SELECT * FROM emp;

    6.1  COUNT
    当需要总想统计时可以使用count().
        1>查询emp表中记录数:
            SELECT COUNT(*) FROM emp;
        
        2>查询emp表中有佣金的人数:
            SELECT COUNT(*)"数量" FROM emp WHERE comm IS NOT NULL AND comm>0;
        
        3>查询emp表中月薪大于2500的人数:
        
            SELECT COUNT(*)"人数" FROM emp WHERE sal>2500;
        4>统计月薪与佣金纸盒大于2500的人数:
            SELECT COUNT(*)"人数" FROM emp WHERE sal+IFNULL(comm,0) >2500;
            
        5>查询有佣金的人数并且有领导的人数:
            SELECT COUNT(*) FROM emp WHERE comm IS NOT NULL AND comm!=0 AND mgr IS NOT NULL;
            
    6.2  SUM(计算总和)和 AVG(计算平均值)
    当需要纵向求和使用 SUM()函数
        1>查询所有雇员月薪和:
            SELECT SUM(sal)"月薪和" FROM emp;
        2>查询所有雇员月薪和,以及所有雇员佣金和:
            SELECT SUM(sal),SUM(comm) FROM emp;
        3>查询所有雇员月薪+佣金和:
            SELECT SUM(sal)+SUM(comm)"总和" FROM emp;
        4>统计所有员工平均工资
            SELECT AVG(sal)平均工资 FROM emp;
            
    6.3  MAX 和 MIN 
    查询最高工资个最低工资
        SELECT MAX(sal),MIN(sal) FROM emp;
        
        
    查询每个部门编号和每个部门的工资和
        SELECT deptno,SUM(sal) FROM emp GROUP BY deptno;
        
    查询每个部门的编号及每个部门的人数:
        SELECT deptno,COUNT(empno) FROM emp GROUP BY deptno;
        
    查询每个部门的编号及每个部门工资大于1500的人数
        SELECT deptno,COUNT(sal>1500) FROM emp GROUP BY deptno;
        SELECT deptno,COUNT(empno) FROM emp WHERE sal>1500 GROUP BY deptno ;
        
    查询工资总和大于9000的部门编号及工资总和
        SELECT deptno,SUM(sal) FROM emp GROUP BY deptno HAVING SUM(sal)>9000;

  • 相关阅读:
    主线程等待子线程结束再做响应
    前端开发注意细节
    XSS攻击前端需注意
    移动端开发碰到一个坑
    连续改变Chrome浏览器窗口大小,可以导致内存泄漏
    js中使用使用原型(prototype)定义方法的好处
    父节点使用css的transform: translate(0, 0)时position:fixed在chrome浏览器中无效
    CSS 中的 em单位
    观察者模式和发布/订阅模式的区别
    搜索练习4
  • 原文地址:https://www.cnblogs.com/shenyanrushang/p/10852462.html
Copyright © 2011-2022 走看看