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;

  • 相关阅读:
    飞入飞出效果
    【JSOI 2008】星球大战 Starwar
    POJ 1094 Sorting It All Out
    POJ 2728 Desert King
    【ZJOI 2008】树的统计 Count
    【SCOI 2009】生日快乐
    POJ 3580 SuperMemo
    POJ 1639 Picnic Planning
    POJ 2976 Dropping Tests
    SPOJ QTREE
  • 原文地址:https://www.cnblogs.com/shenyanrushang/p/10852462.html
Copyright © 2011-2022 走看看