MySQL数据库常用操作总结:

来源:互联网 发布:python爬虫网页数据 编辑:程序博客网 时间:2024/05/16 19:15
MySQL数据库操作:

    最近在学MySQL数据库,发现有很多地方自己都不是很会,所以自己就整理了一下MySQL数据库的常用操作的语法和使用期间发现的几个常见小问题

    1.MySQL的安装与卸载时注意: 设置字体为:utf8

    2.启动MySQL服务:   net start mysql
      关闭MySQL服务:   net stop mysql

    3.登陆MySQL服务器:    mysql -h localhost -u root -p 
                  123(用户名:root,密码:123)
      退出:exit
      远程连接:mysql -h 192.168.1.181 -u root -p 123
    
    注意:上面几步后面不加 ";"

    4.show databases 查看MySQL中的数据库

    5.创建数据库:create database wpj1111;  (注意以分号结尾)

      DDL:(数据库定义语言) create drop alter                  针对数据库或表的结构
      DCL:(数据库控制语言) grant  revoke  commit rollback     针对数据库的权限操作、事务处理
      DML:(数据库操作语言) insert delete update select        针对数据库增、删、改、查的操作

    6.使用数据库:use wpj1111;

    7.建表:create table emp(id int,
                 name varchar(20),
                 age int,
                 sex char(4),
                 salary float);

      注意:char定长(省空间)  varchar可变长度(时间慢)

    8.查看表结构描述:desc emp;

    9.插入一条语句:insert into emp(id,name,age,sex,salary) values(1,'liuhui',18,'M',8000);
      注意:日期格式也是用单引号引起来

    10.查询表中的数据:
       select * from emp;

    11.修改表中的数据:
       update emp set salary=6666 where id=1;

    12.删除记录:
       delete from emp;            清空表中的数据
       delete from emp where id=4; 删除id为4的记录


    13.解决中文编码:
       查看数据库状态:status
       a.找到MySQL安装目录下的my.ini文件,找到default-character-set=utf8  (要改两个地方成utf8)
       b.net stop mysql             net start mysql
       c.set names gbk;(在客户端,修改编码方式为gbk)             
       d.对于修改编码之前已经创建好的数据库或者表:
         alter database wpj1111 default character set utf8;
         alter table emp convert to character set utf8;
       e.改好之后:exit->net stop mysql->net start mysql->mysql -uroot -p123


    14.为表设置主键:
       alter table emp add constraint EMP_ID primary key(id);

       主键:一条记录的唯一标识   不能为空,且不能重复

    15.主键自动增长:
       auto_increment       identity      sequence
        mysql        sqlserver       orcal

       alter table emp modify id int auto_increment;  

       主键自动增长之后:主键值为空,用 null  或者 0 代替

    16.查询:
       a.查询年龄从13岁到19岁员工的所有信息
        select * from emp where age>=13 and age<=19;
            select * from emp where age between 13 and 19;  (not between...)

       b.查询id为5或者id为8的员工的信息:
        select * from emp where id=5 or id=8;
        select * from emp where id in (5,8);    (not in)

       c.查询姓"俏",并且姓名是三个字符的员工信息:
        模糊查询:like  "_"匹配一个字符
        select * from emp where name like '俏__';

       d.查询姓名中带有"丽"字的员工的信息:
        select * from emp where name like '%丽%';
        在项目中,利用这种模糊查询,完成搜索功能

       e.查询一张表前3条记录:
        select * from emp limit m,n;  (m代表起始记录索引号,n代表查询记录的条数)
         查询从第m到第n条记录:  
        select * from emp limit (m-1),(n-m+1);  
        在项目中,利用此技术实现分页

    17.聚合函数:(取别名,as可写可不写 可用空格代替)
       sum()   求总和       select sum(salary) 总工资  from emp;/select sum(salary) as 总工资  from emp;
       count() 求记录总数   select count(*) from emp;/select count(*) 总人数 from emp;
       avg()   求平均值    select avg(salary) as 平均工资  from emp;
       max()   求最大值    select max(salary) as 最高工资  from emp;
       min()   求最小值     select min(salary) as 最低工资  from emp;

           求最高工资与最低之差:select max(salary)-min(salary) 工资差 from emp;
           嵌套查询:主查询 子查询(子查询用小括号括好)
           求最高工资的员工信息:select * from emp where salary=(select max(salary) from emp);

           求出低于平均工资的员工信息:select * from emp where salary<(select avg(salary) from emp);
    18.求出所有男、女员工的工资总和:
                select sum(salary) 总工资 from emp where sex='M';
                select sum(salary) 总工资 from emp where sex='F';

       用一条语句分别求出所有男员工和女员工的工资总和:
                select sex,sum(salary) 工资总和  from emp group by sex;
     
    19.求出总工资最高的那组信息:
       a.由简入繁
       b.把查询结果作为查询条件            
       方法一:不断的嵌套
           
        1.select sex,sum(salary) 工资总和  from emp group by sex;        

        2.切忌要给表添加别名:如t
          select * from (select sex,sum(salary) 工资总和  from emp group by sex) t;
        
        3.select max(工资总和) from (select sex,sum(salary) 工资总和  from emp group by sex) t;

        4.select * from(select sex,sum(salary) 工资总和  from emp group by sex) t

          where 工资总和=(select max(工资总和) from (select sex,sum(salary) 工资总和  from emp group by sex) t);
    
      方法二:排序

        1. 使用升序排序      默认为升序(asc)
            select sex,sum(salary) 工资总和  from emp group by sex order by 工资总和 desc; //使用降序
        
        2.取出第一条:
            select sex,sum(salary) 工资总和  from emp group by sex order by 工资总和 desc limit 0,1;


    20.MySQL忘记密码如何解决?
        1.停止MySql服务,命令行窗口:net stop mysql
        2.命令行窗口,进入MySql的安装目录:D:\>cd Program Files\MySQL Server5.1\bin
        3.跳过权限检查启动MySql:D:\Program Files\MySQL Server5.1\bin>mysqld-nt --skip-grant-tables
        4.重新打开一个命令行窗口,执行以下步骤:
           C:\Documents and Settings\Administrator>mysql
            mysql> use mysql
                mysql> update user set password=PASSWORD('456') where user='root';
            mysql> flush privileges;
                mysql> exit
        5.停止MySql Server,用正常模式启动MySql,使用新设置的密码登陆即可.
原创粉丝点击