测试工作中常用到的sql命令!!!

一、mysql数据库日常操作。
     1.启动mysql:/etc/init.d/mysql start (前面为mysql的安装路径)
     2.重启mysql:  /etc/init.d/mysql restart (前面为mysql的安装路径)
     3.关闭mysql:  /etc/init.d/mysql stop(前面为mysql的安装路径)
     4.连接本机上的mysql:
        mysql -u 用户名 –p (按回车,再输入密码) 
        例:mysql –u root –p 
    5.退出mysql:exit   
    6.修改mysql密码:
      (1)mysqladmin -u用户名 -p旧密码 password 新密码
              例:mysqladmin –u root –p 123456 password 654321
      (2)进入mysql命令行SET PASSWORD FOR 用户名@主机=PASSWORD("root");
              例:set password for  root@localhost=password(“123456 ”); 
      (3)修改自己的密码:
              set password=password(“123456”);
    7.增加新用户:
       grant 操作 on 数据库.* to 用户名@登录主机 identified by "密码"
       例:grant select on yingyu to  qiu@localhost  indentify by “123456”;
    8.建库:
       create database 库名; 
       例:create database yingyu;
    9.显示数据库列表:  show databases; 
  10.打开数据库:
       use 数据库;
       例:use yingyu;
  11.删库:
       drop database 库名; 
       例:drop database yingyu;
  12.显示库中的数据表:
       show tables;
  13.显示数据表的结构:
       describe 表名; 
       例:describe student;
  14.编码的修改:
      (1)改变整个mysql的编码格式: 
             启动mysql的时候,mysqld_safe命令行加入
               --default-character-set=编码格式
               例:--default-character-set=UTF-8
      (2)改变某个库的编码格式:
             在mysql提示符后输入命令: 
             alter database 数据库 default character set 编码格式; 
             例:alter database student default character set UTF-8;
二、sql常用命令
    1.建表:
       create table 表名(字段设定列表);
      例:create table student
           (stuid char(10) primary key, 
             name char(20), 
             grade int(3), 
             age int(3) 
             );
   2.删表:
      drop table 表名; 
      例:drop table student;
   3.将表中记录清空:
      delete from 表名; 
      例:delete from student;
   4.显示表中的记录:
      select * from 表名; 
      例:select * from student;
   5.给表改名: 
      rename table 旧表名 to 新表名;
      例:rename table student to people;
   6.修改字段属性:
     (1)alter table 表名 change 字段名称 字段名称 字段类型 [是否允许非空]; 
           例:alter table student change name newname char(20) null; 
     (2)alter table 表名称 modify 字段名称 字段类型 [是否允许非空]; 
           例:alter table student modify name char(20) null;
  7.修改表设置默认字段:
     (1)alter table 表名 modify 字段名称 字段类型 default 默认值;
          例:alter table student modify name char(10) defalt 7;
     (2)alter table 表名 alter 字段名称 set default value; 
          例:alter table student alter name set default 7;
  8.增加表的一个字段:
       alter table 表名 add column 字段名称 字段类型 (default 默认值);
       例:alter table student add column sex char(10) (default 1);
  9.删除表的一个字段
        alter table 表名 drop column 字段名称;
       例:alter table student drop column name;
  10.删除表主键
        alter table 表名 drop primary key; 
       例:alter table student drop primary key;
  11.添加新主键:
        alter table 表名 add primary key(字段);
       例:alter table student add primary key(stuid);
  12.往表里插入一行数据:
        insert into 表名 values(字段数据1,字段数据2,•••) 
        例:insert into student values(‘123’,‘qqqq’,‘80’);
  13.往表里插入多行数据:
        insert into 表名 values(字段数据1,字段数据2,•••) ,(字段数据1,字段数据2,•••),•••;
        例:insert into student values(‘123’,‘qqqq’,‘80’),(‘124’,‘yyyy’,‘90’);
  14. 修改表的数据:
        update 表名 set 字段名=value where 范围
        例:update student set name=‘qqq1111’ where stuid=‘123’;
  15.模糊查询
        select * from 表名 where 字段 like ’%value1%’; 
        例:select * from student where name like ‘q%’;
  16.排序查询:
        select * from 表名 order by 字段名1,字段名2 [desc] 
        例:selec * from student order by grade;(升序) 
              select * from student order by grade desc;(降序)
  17.左连接查询:
        select 表1.字段1,表1.字段2,表2.字段1,表2.字段2 from 表1 left (outer) join 表2 on 表1.字段=表2.字段;
        例:select student.num,student.name,people.name,people.age from student left (outer) join people on student.name=people.name;
  18.右连接查询:
        select 表1.字段1,表1.字段2,表2.字段1,表2.字段2 from 表1 right (outer) join 表2 on 表1.字段=表2.字段;
        例:select student.num,student.name,people.name,people.age from student right (outer) join people on student.name=people.name;
  19.全连接查询(mySql不支持全连接,所以用左连接union右连接)
        select 表1.*,表2.* from 表1  left (outer) join 表2 on 表1.字段=表2.字段 union select表1.*,表2.* from 表1 right (outer) join 表2 on 表1.字段=表2.字段;
        例:select s.*,p.* from student s  left  join people p on  s.name = p.name union select s.*,p.* from student s  right  join people p on  s.name = p.name;
  20.关于年份的查询
     例:查询在1990-1993年之间出生的学生的全部信息
    select * from student where year(Sbirthday)between 1990 and 1993; 
    查询在1990年12月5日之前出生的学生的全部信息
    select * from student where birthday < date(‘1990-12-05’);
三、备份与还原
  1.备份数据库:
     mysqldump –u 用户名 –p 数据库名 > 保存路径+文件名;
     例:mysqldump –u root –p yingyu > /home/yingyu/yingyu.sql;
  2.还原数据库:
      mysql –u 用户名 –p 数据库名 < 文件路径+文件名;
     例:mysql –u root –p yingyu < /home/yingyu/yingyu.sql;
  3.直接将MySQL数据库压缩备份
      mysqldump –u 用户名 –p 数据库名 | gzip > 保存路径+文件名
      例:mysqldump –u root –p yingyu | gzip > /home/yingyu/yingyu.sql.gz;
  4.还原压缩的Mysql数据库
      gunzip < 文件路径+文件名 | mysql –u 用户名 –p 数据库名
      例:gunzip < /home/yingyu/yingyu.sql.gz | mysql –u root –p yingyu;
  5.备份数据库中的某些表:
     mysqldump –u 用户名 –p 数据库名 表名1 表名2 > 保存路径+文件名
     例:mysqldump –u root –p yingyu student > /home/yingyu/yingyu.sql;
  6.备份数据库中的某些数据库:
     mysqldump –u 用户名 –p –B  库1  库2 > 保存路径+文件名
     例:mysqldump –u root –p –B yingyu1 yingyu2>/home/yingyu/yingyu.sql;
  7.还原数据库中的某些数据库:
     mysqldump –u 用户名 –p –D 库1 库2 < 文件路径 + 文件名;
     例:mysqldump–u root –p–D qiuyingyu yingyu
  8.还原数据库中的某些表:
     mysql –u 用户名 –p 数据库名  < 保存路径+表文件名
     例:mysql –u root –p yingyu  < /home/yingyu/yingyu.sql;

你可能感兴趣的:(测试工作中常用到的sql命令!!!)