zoukankan      html  css  js  c++  java
  • 测试人员必备之 mysql 常用命令学习指南

    1、数据库连接

    1、通过命令行连接数据库

    [root@localhost ~]# mysql -u root -p
    Enter password: 
    

    输入以上命令,回车后输入密码,回车,出现 mysql> 命令提示窗口则表示登录成功,可以在mysql>下输入任何sql语句。

    2、退出mysql

    mysql> exit
    Bye
    

    2、创建数据库

    语法:CREATE DATABASE <数据库名>;
    

    先连接mysql服务后,再使用sql语句。可以通过命令连接也可以通过客户端工具例如navicat连接,以下创建一个库名为lemon的数据库

    mysql> create DATABASE lemon;
    

    3、显示数据库

    语法:show databases;
    

    示例:查看mysql服务所有数据库

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | future             |
    | lemon              |
    | mysql              |
    | test               |
    | test_mysql         |
    +--------------------+
    

    4、删除数据库

    语法:drop database <数据库名>;
    

    drop删除数据库命令谨慎使用,一旦删除,所有数据都没有了。以下示例:删除一个库名为test的数据库。

    mysql> drop DATABASE test;
    

    5、选择数据库

    语法:use <数据库名>;
    

    示例:选取数据库lemon进行操作。

    mysql> use lemon;
    Database changed
    

    6、创建表

    语法:create table <表名> ( <字段名1> <类型1>,<字段名2> <类型2>, ...,<字段名n> <类型n>);
    

    示例:需要创建一个学员信息表,用于存储学号、姓名、性别、班级、年龄。

    create table student(
       sno int(8) not null primary key auto_increment comment '学号',
       sname varchar(20) NOT NULL comment '姓名',
       ssex varchar(4) NOT NULL comment '性别',
       sclass int(8) NOT NULL comment '班级',
       sage int(4) NOT NULL comment '年龄'
    )DEFAULT CHARSET=utf8;
    

    解析:

    int为整型,这里学号sno、班级编号sclass设定为整型;

    varchar字符型,这里姓名sname、性别ssex、年龄sage设定为字符型;

    字段属性设定为not null,表示字段值不允许空;

    primary key关键字用于定义列为主键。主键唯一、不重复,一般以编号为主键;

    auto_increment定义列属性为自增,一般用于主键,插入数据时数值会自动加1;

    comment相当于给列添加备注;

    DEFAULT CHARSET 设置编码,utf8对传值中文防止乱码。

    7、显示数据表

    mysql> show tables;
    +----------------+
    | Tables_in_test |
    +----------------+
    | student        |
    | student1       |
    +----------------+
    

    8、查看表结构

    mysql> desc student;
    +--------+-------------+------+-----+---------+----------------+
    | Field  | Type        | Null | Key | Default | Extra          |
    +--------+-------------+------+-----+---------+----------------+
    | sno    | int(8)      | NO   | PRI | NULL    | auto_increment |
    | sname  | varchar(20) | NO   |     | NULL    |                |
    | ssex   | varchar(5)  | NO   |     | NULL    |                |
    | sclass | int(8)      | NO   |     | NULL    |                |
    | sage   | int(4)      | NO   |     | NULL    |                |
    +--------+-------------+------+-----+---------+----------------+
    

    9、删除表

    语法:drop table <表名>;   
    

    drop删除表请谨慎操作,因为执行删除命令后该表及包含的数据都会消失。以下示例:删除一个表名为student的数据表。

    mysql> drop table student;
    

    10、插入表数据

    语法:insert into <表名> ( 字段名1,字段名2,...字段名N)
                           values
                           ( 值1, 值2,...值N );
    

    示例:

    1、往学员信息表中插入一条学员信息

    insert into student (sno,sname,ssex,sclass,sage) values (6301,'柠檬','女',20190163,18);
    

    注意:如果数据值为字符型必须用单引号或者双引号括起来。

    2、批量插入,插入多条学员信息

    insert into student (sname,ssex,sclass,sage) 
                        values 
                        ('毛毛','女',20190163,20),('大大','女',20190163,22);
    

    11、修改表数据

    语法:update 表名 set 字段名1= 新值1,字段名2=新值2, … where 条件表达式1 and(or)  条件表达式2 …;
    

    示例:修改学员姓名为毛毛的性别为男

    update student set ssex = '男' where sname = '毛毛';
    

    12、查询单表数据

    语法:select 字段名1,字段名2,… from  <表名>  where  条件表达式1 and(or) 条件表达式2  … ;
    

    1、查询所有字段列信息

    示例:查询student表中,性别女且年龄在20岁以上的学员信息

    select * from  student where  ssex = '女' and sage > 20
    

    2、查询指定字段列信息

    示例:查询student表中,性别女或者年龄在20岁以上的学员姓名

    select sname from student where ssex = '女' or sage > 20;
    

    3、查询前几行信息

    示例:查询student表中,性别女且年龄在20岁以上的前2行学员信息

    select sname from student where ssex = '女' and sage > 20 limit 0,2;
    

    13、查询多表关联数据

    语法:
    1、关联查询:select 字段名1,… from 表名1,表名2,…where  关联条件表达式 and 过滤条件表达式 …;
    2、等值连接:select 字段名1,… from 表名1 inner join 表名2 on 关联条件表达式 and 过滤条件表达式… ;
    3、左连接:select 字段名1,… from 表名1 left join 表名2 on 关联条件表达式 and 过滤条件表达式… ;
    3、右连接:select 字段名1,… from 表名1 right join 表名2 on 关联条件表达式 and 过滤条件表达式… ;
    

    示例:

    1、以上左表user表,右表为左表的对象信息user_lover表,查询两表中存在对象关系的信息

    SELECT * FROM `user`, user_lover WHERE `user`.id = user_lover.u_id;
    
    SELECT * FROM `user`INNER JOIN user_lover on `user`.id = user_lover.u_id;
    

    运行结果:

    2、读取左表全部数据,即使右表没有关联数据

    SELECT * FROM `user`LEFT JOIN  user_lover on `user`.id = user_lover.u_id;
    

    运行结果:

    3、以右表为基础,与LEFT JOIN相反

    SELECT * FROM `user` RIGHT JOIN user_lover on `user`.id = user_lover.u_id;
    

    运行结果:

     

    14、删除表数据

    语法:delete from 表名 where 条件1 and(or) 条件2……;
    

    示例:删除student表中年龄小于18岁的用户信息

    delete from student where sage < 18;
    

    15、mysql学习教程

    mysql官网:https://dev.mysql.com/doc/

    runoob.com:https://www.runoob.com/mysql/

    w3cschool:https://www.w3cschool.cn/mysql/

  • 相关阅读:
    spring事务注解@Transactional注解失效场景
    Dubbo中服务消费者和服务提供者之间的请求和响应过程
    说说Java的Unsafe类
    java程序二叉树的深度优先和广度优先遍历
    重复注解与类型注解
    git pull 和 git fetch的区别?
    Java8新特性系列(Interface)
    二十种健康食品排行榜
    赞美的时机
    越过胆怯这道栅栏
  • 原文地址:https://www.cnblogs.com/tudou-22/p/11268315.html
Copyright © 2011-2022 走看看