zoukankan      html  css  js  c++  java
  • MySQL-基本sql命令

    关于环境的搭建和数据库的连接,我直接跳过,假设电脑上已经安装好了MySQL的环境,接下来直接进行数据库的操作:(虽然数据库不区分大小写,但是本文约定:命令用大写,用户变量和字段用小写)

    1、创建数据库:

    CREATE DATABASE test;

    注意:此处是DATABASE ,而不是DATABASES。回车后运行结果如下:

    Query OK, 1 row affected

    这就说明名字为test的数据库创建好了。接下来我们就查看到底有没有创建好:

    2、查看数据库:

    SHOW DATABASES;

    注意:此处是DATABASES,而不是DATABASE,因为你查看的结果是多个数据库,所以是复数。回车运行后结果如下:

    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | customers          |
    | mysql              |
    | performance_schema |
    | sakila             |
    | sys                |
    | test               |
    | world              |
    +--------------------+
    8 rows in set

     里面有我们刚才创建好的test,这说明创建数据库成功。接下来就要使用这个数据库:

    3、使用数据库:

    USE test;

    结果为:

    Database changed

    这时候我们就可以在数据库test中创建表了:

    4、创建表:假设要创建一个学生成绩的表,需要有学生学号,姓名,数学成绩,英语成绩,居住城市这几个字段,其中学生学号为主键且递增,

    CREATE TABLE student(id smallint(6) primary key auto_increment,name char(20),math smallint(6),english smallint(6),city char(20));

    其中id,name,math,english分别为四个四段,而smallint,char分别为数据类型,primary key是说id是主键,auto_increment是说id是自动增加的(约束集)

    回车后返回信息为:

    Query OK, 0 rows affected

    接下来我们想看看这个表建好了,那它到底是个什么结构,也就是查看表结构:

    5、查看表结构:

    DESC  student;

    回车后返回信息为:

    +---------+-------------+------+-----+---------+----------------+
    | Field   | Type        | Null | Key | Default | Extra          |
    +---------+-------------+------+-----+---------+----------------+
    | id      | smallint(6) | NO   | PRI | NULL    | auto_increment |
    | name    | char(20)    | YES  |     | NULL    |                |
    | math    | smallint(6) | YES  |     | NULL    |                |
    | english | smallint(6) | YES  |     | NULL    |                |
    | city    | char(20)    | YES  |     | NULL    |                |
    +---------+-------------+------+-----+---------+----------------+
    5 rows in set

    查看表的结构还有另一种方法:

    SHOW COLUMNS FROM student;

    回车后结果为:

    +---------+-------------+------+-----+---------+----------------+
    | Field   | Type        | Null | Key | Default | Extra          |
    +---------+-------------+------+-----+---------+----------------+
    | id      | smallint(6) | NO   | PRI | NULL    | auto_increment |
    | name    | char(20)    | YES  |     | NULL    |                |
    | math    | smallint(6) | YES  |     | NULL    |                |
    | english | smallint(6) | YES  |     | NULL    |                |
    | city    | char(20)    | YES  |     | NULL    |                |
    +---------+-------------+------+-----+---------+----------------+
    5 rows in set

    注意:DESC相当于SHOW COLUMNS的一种快捷方式。以上结果说明我们的table 也就是表student建好了。但是现在里面是没有东西的,也就是现在只是一张空表,所以我们需要添加数据进去:

    6、插入数据:

    INSERT INTO student(name,math,english,city) VALUES('zhangsan',90,89,'guangzhou');

    返回结果为:

    Query OK, 1 row affected

    证明已经把这一行数据添加进去了,那么究竟有没有进去,我们查询一下就知道了:

    7、查询:

    SELECT * FROM student;

    上面这就的意思是查询符合*条件的记录,*是通配符,能代替所有字符,所有使用上面这句查询出来的是所有记录。结果如下:

    +----+----------+------+---------+-----------+
    | id | name     | math | english | city      |
    +----+----------+------+---------+-----------+
    |  1 | zhangsan |   90 |      89 | guangzhou |
    +----+----------+------+---------+-----------+
    1 row in set

    也就是只有一行记录在student这个表中,就是我们第6步插入的数据。接下来我们要插入多行数据,因为一个班级里有很多人,不只是zhangsan一个人:

    8、插入多个记录:

    INSERT INTO student(name,math,english,city) VALUES('zhangsan',90,89,'guangzhou'), ('lisi',78,98,'beijing');

    以上代码一次向表中插入了两行记录,其中两行记录之间要用逗号分开回车后图示如下:

    Query OK, 2 rows affected
    Records: 2  Duplicates: 0  Warnings: 0

    现在我们再执行一次查询:

    9、查询:

    SELECT * FROM student;

    结果如下:

    +----+----------+------+---------+-----------+
    | id | name     | math | english | city      |
    +----+----------+------+---------+-----------+
    |  1 | zhangsan |   90 |      89 | guangzhou |
    |  2 | zhangsan |   90 |      89 | guangzhou |
    |  3 | lisi     |   78 |      98 | beijing   |
    +----+----------+------+---------+-----------+
    3 rows in set

    说明两行记录插进去了,接下来再插入几行:

    +----+----------+------+---------+-----------+
    | id | name     | math | english | city      |
    +----+----------+------+---------+-----------+
    |  1 | zhangsan |   90 |      89 | guangzhou |
    |  2 | liwu     |   90 |      89 | guangzhou |
    |  3 | lisi     |   78 |      98 | beijing   |
    |  4 | wangwo   |    9 |      43 | dalian    |
    |  5 | maqi     |   89 |      67 | shanghai  |
    |  6 | sudong   |   78 |      54 | dalian    |
    |  7 | liuqian  |   67 |      91 | dalian    |
    |  8 | jiance   |   59 |      61 | beijing   |
    +----+----------+------+---------+-----------+
    8 rows in set

    现在student这个表中总共有8条记录,那么我们想查询城市是北京的学生的成绩应该怎么查呢?

    10、条件查询:

    SELECT * FROM student WHERE City ='beijing';

    查询结果为:

    +----+--------+------+---------+---------+
    | id | name   | math | english | city    |
    +----+--------+------+---------+---------+
    |  3 | lisi   |   78 |      98 | beijing |
    |  8 | jiance |   59 |      61 | beijing |
    +----+--------+------+---------+---------+
    2 rows in set

    说明学号为3和为8的学生城市是北京的。

    现在要删除学号为3的学生的记录:

    11、删除记录

    DELETE FROM student WHERE ID =3;

    回车后提示如下:

    Query OK, 1 row affected

    接下来我们使用第10步的查询语句进行查询,结果为:

    +----+--------+------+---------+---------+
    | id | name   | math | english | city    |
    +----+--------+------+---------+---------+
    |  8 | jiance |   59 |      61 | beijing |
    +----+--------+------+---------+---------+
    1 row in set

    说明原来学号id为3的记录被删掉了。

    接下来我们在test数据库中再新建一个表。然后说明怎么使用drop语句删除表。

    12、新建表test1:

     CREATE TABLE test1(id tinyint(10),name char(1));

    回车后提示:

    Query OK, 0 rows affected

    接下来我们使用查看语句查看有几个表:

    13、查看表:

    SHOW TABLES;

    注意:这里是TABLES,而不是TABLE,和查询数据库用DATABASES是一样的道理。查询结果为:

    +----------------+
    | Tables_in_test |
    +----------------+
    | student        |
    | test1          |
    +----------------+
    2 rows in set

    查询结果是有两个表在这个数据库中,现在我们要把test1删除掉:

    14、删除表:

    DROP TABLE test1;

    回车后提示如下:

    Query OK, 0 rows affected

    我们查看是否删掉:

    SHOW TABLES;

    回车后结果为:

    +----------------+
    | Tables_in_test |
    +----------------+
    | student        |
    +----------------+
    1 row in set

    说明test1已经被删除掉。

    以上是MySQL数据库的基本操作命令。按照以上操作走一遍就基本明白数据库的基本命令了。

  • 相关阅读:
    Java实现 LeetCode 617 合并二叉树(遍历树)
    Java实现 LeetCode 611 有效三角形的个数(双指针)
    Java实现 LeetCode 611 有效三角形的个数(双指针)
    Java实现 LeetCode 611 有效三角形的个数(双指针)
    Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法)
    Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法)
    PHP mb_substr() 函数
    PHP substr() 函数
    PHP strtr() 函数
    PHP strtoupper() 函数
  • 原文地址:https://www.cnblogs.com/jiwangbujiu/p/5273150.html
Copyright © 2011-2022 走看看