zoukankan      html  css  js  c++  java
  • mysql_语法总结

    环境:mysql 5.5

    创建数据库test:

    1 create database test;

    我们执行代码就可以创建test数据库了,如果想要查看我们是否创建好了数据库test,我们可以通过一下代码查看mysql中的所有数据库

    show databases;

    在我机器上面查询出来的是:

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | drp                |
    | duona              |
    | expert             |
    | jeecgv3            |
    | mysql              |
    | performance_schema |
    | sample             |
    | test               |
    | test_uuuu_test     |
    +--------------------+
    10 rows in set

    我们可以看到,在数据库中我们已经创建好了test数据库了。

    现在我们就选定了test数据库了,接下来如果我们希望删除test数据库,我们只需要使用下面的sql语句即可:

    mysql> drop database test;
    Query OK, 0 rows affected

    现在我们再次查询mysql中所有的数据库情况:

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | drp                |
    | duona              |
    | expert             |
    | jeecgv3            |
    | mysql              |
    | performance_schema |
    | sample             |
    | test_uuuu_test     |
    +--------------------+
    9 rows in set

    可以发现,test数据库已经被我们删除。

    //回到test没被删除的状态

    现在我们需要操作test数据库,我们可以使用下面代码,选择数据库test:

    mysql> use test;
    Database changed

    我们需要查看test数据库中现在有多少张表,可以使用:

    mysql> show tables;
    Empty set

    我们可以清楚的看到,现在test中是没有任何表的。

    那么现在我们就往里面添加一张表吧!

    mysql> create table student(id int not null primary key,name varchar(20) not null unique);
    Query OK, 0 rows affected

    我们往test数据库中添加了一张student表,表中有id,name字段。

    现在再看一下test中的表情况:

    mysql> show tables;
    +----------------+
    | Tables_in_test |
    +----------------+
    | student        |
    +----------------+
    1 row in set

    你会发现,现在增加了student表了。

    我们也可以看看student的表机构情况:

    mysql> desc student;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | id    | int(11)     | NO   | PRI | NULL    |       |
    | name  | varchar(20) | NO   | UNI | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    2 rows in set

    所以对于上面的创建student表的sql语句的大概意思你可以猜出来了吧:

    student表有id,name两个字段,对于id字段,类型是int整形,mysql默认长度是11,id字段不能为null,即不能为空,id字段为主键,即primary key,没有默认值

    对于name字段,和id字段差不多,类型为varchar类型,长度为20,不能为空,在表中时唯一的(unique,在同一个表中不能出现相同的值),没有默认值

    现在我们想在student表中增加一个字段age,类型为int类型:

    mysql> alter table student add age int;
    Query OK, 0 rows affected
    Records: 0  Duplicates: 0  Warnings: 0

    我们再看看表的结构:

    mysql> desc student;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | id    | int(11)     | NO   | PRI | NULL    |       |
    | name  | varchar(20) | NO   | UNI | NULL    |       |
    | age   | int(11)     | YES  |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    3 rows in set

    说明我们确实是增加了age这个字段。

    现在我们需要增加生日birthday字段,类型为date类型:

    mysql> alter table student add birthday date;
    Query OK, 0 rows affected
    Records: 0  Duplicates: 0  Warnings: 0

    我们查看student表结构:

    mysql> desc student;
    +----------+-------------+------+-----+---------+-------+
    | Field    | Type        | Null | Key | Default | Extra |
    +----------+-------------+------+-----+---------+-------+
    | id       | int(11)     | NO   | PRI | NULL    |       |
    | name     | varchar(20) | NO   | UNI | NULL    |       |
    | age      | int(11)     | YES  |     | NULL    |       |
    | birthday | date        | YES  |     | NULL    |       |
    +----------+-------------+------+-----+---------+-------+
    4 rows in set

    我们增加了birthday字段,并且类型为date类型。

    现在我们需要删除birthday字段:

    mysql> alter table student drop column birthday;
    Query OK, 0 rows affected
    Records: 0  Duplicates: 0  Warnings: 0

    查看表结构:

    mysql> desc student;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | id    | int(11)     | NO   | PRI | NULL    |       |
    | name  | varchar(20) | NO   | UNI | NULL    |       |
    | age   | int(11)     | YES  |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    3 rows in set

    说明删除成功!

    现在向student表中插入数据:

    mysql> insert into student values(1,'hongten',20);
    Query OK, 1 row affected
    mysql> insert into student(id,name,age) values(2,'hanyuan',30);
    Query OK, 1 row affected

    这两中方式,都是向student表中插入数据,第一种方式没有写出字段名称,而后面的值是所有字段的值。

    而第二种方式是把字段都写了出来,后面跟的是字段对于的值。

    现在查询student表:

    mysql> select * from student;
    +----+---------+-----+
    | id | name    | age |
    +----+---------+-----+
    |  1 | hongten |  20 |
    |  2 | hanyuan |  30 |
    +----+---------+-----+
    2 rows in set

    可以看出我们刚才插入的两组数据已经保存到数据库中了,现在对一个字段查询:

    mysql> select name from student;
    +---------+
    | name    |
    +---------+
    | hanyuan |
    | hongten |
    +---------+
    2 rows in set

    上面只是针对name字段的查询;

    现在进行条件查询:

    mysql> select name,age from student where id = 2;
    +---------+-----+
    | name    | age |
    +---------+-----+
    | hanyuan |  30 |
    +---------+-----+
    1 row in set

    针对student表中的name,age查询,条件是id=2的记录;

    现在查询student表中的记录总数:

    mysql> select count(*) from student;
    +----------+
    | count(*) |
    +----------+
    |        2 |
    +----------+
    1 row in set

    查询不同name的student:

    mysql> select distinct(name) from student;
    +---------+
    | name    |
    +---------+
    | hanyuan |
    | hongten |
    +---------+
    2 rows in set

    修改id=2的name字段:

    mysql> update student set name = 'Tom' where id =2;
    Query OK, 1 row affected
    Rows matched: 1  Changed: 1  Warnings: 0

    查询student表:

    mysql> select * from student;
    +----+---------+-----+
    | id | name    | age |
    +----+---------+-----+
    |  1 | hongten |  20 |
    |  2 | Tom     |  30 |
    +----+---------+-----+
    2 rows in set

    现在删除id=2 的记录:

    mysql> delete from student where id = 2;
    Query OK, 1 row affected
    
    mysql> select * from student;
    +----+---------+-----+
    | id | name    | age |
    +----+---------+-----+
    |  1 | hongten |  20 |
    +----+---------+-----+
    1 row in set

    .....................今天就先到这里吧!!!

  • 相关阅读:
    [Ljava.lang.String; cannot be cast to java.lang.String 报错的原因
    ajaxfileupload多文件上传
    如何设置 html 中 select 标签不可编辑、只读
    docker
    nvm use 指定版本后无效 win7
    win7禁用Adnimistrator账号登录
    win10安装tomcat9
    webstorm命令行无法使用node-gyp进行编译
    tomcat7.0安装笔记
    win10 java1.7安装笔记
  • 原文地址:https://www.cnblogs.com/hongten/p/hongten_mysql_5_5.html
Copyright © 2011-2022 走看看