mysql 关键命令

一、基础命令:

        1.创建数据库:

              create database 数据库名 character set 编码方式(utf8)

————————————————如下所示 创建了一个名为 dome 的数据库 使用编码方式为 utf8
mysql> create database dome character set utf8;
Query OK, 1 row affected (0.01 sec)

        2.使用数据库

                use 数据库名

mysql> use dome;
————————————使用成功会显示如下代码 Database changed ————————————
Database changed

       

3.显示当前数据库

                show databases 数据库名

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bit32mall          |
| dome               |  ——————————如图这出现了上步创建的数据库 dome
| mysql              |
| pd                 |
| performance_schema |
| sys                |
| test               |
+--------------------+

4.删除数据库

                drop database 数据库名

mysql> drop database dome;
Query OK, 0 rows affected (0.01 sec)

————————————查看数据库列表可以发现dome1已经删除了——————————
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bit32mall          |
| mysql              |
| pd                 |
| performance_schema |
| sys                |
| test               |
+--------------------+
8 rows in set (0.00 sec)

       

二、创建表

  1.创建表:

        create table 表名 (列名 类型, 列名 类型,…);    eg:创建表必须先选择数据库: use 数据库

mysql> create table student (id int , name varchar(20));
Query OK, 0 rows affected (0.02 sec)

  2.查看表结构: 

        desc 表名;   

————————————如下可以看到自己的列名 字符类型 等——————————————

mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

  3.查看当前数据库中的所有表:

        show tables;

——————————————因为只创建了一个表,所以说就以下一个student————————————

mysql> show tables;
+----------------+
| Tables_in_dome |
+----------------+
| student        |
+----------------+

  4.删除表:

        drop table 表名;

mysql> drop table student;
Query OK, 0 rows affected (0.01 sec)

——————————————如下可见已经没有了我们创建的表——————————
mysql> show tables;
Empty set (0.00 sec)

  5.单行插入:

        insert into 表名 values (值,值,值,….)

insert into student values(1 , '张三');------此处 1 为前面创建的 id 列
Query OK, 1 row affected (0.00 sec)

 alter table 列名 add 列名 <约束条件> FIRST|AFTER;

mysql> desc tb1;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| coll  | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)

mysql> alter table tb1 add col2 varchar(10);
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc tb1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| coll  | int(11)     | YES  |     | NULL    |       |
| col2  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> alter table tb1 add col3 int first;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc tb1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| col3  | int(11)     | YES  |     | NULL    |       |
| coll  | int(11)     | YES  |     | NULL    |       |
| col2  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> alter table tb1 add col4 int after coll;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc tb1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| col3  | int(11)     | YES  |     | NULL    |       |
| coll  | int(11)     | YES  |     | NULL    |       |
| col4  | int(11)     | YES  |     | NULL    |       |
| col2  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

三、查询

  1.全列查询 :

                select*from 表名;【所有列都显示出来】

mysql> select *from student;
+------+--------+
| id   | name   |
+------+--------+
|    1 | 张三   |   ----------此处查询到了我们之前创建的 表项
+------+--------+

   2.指定列查询:

                select 列名,列名 from 表名:【按需要查询】

——————————如下图所示, 只显示出来我们需要的name列

mysql> select name from student;
+--------+
| name   |
+--------+
| 张三   |
+--------+

   3.表达式查询:

                select 表达式 from 表名 【加减之类的运算,是针对列     的运算,不会对数据库                                     的本地内容进行修改】

__________初始表————————————

mysql> select *from student;
+------+--------+---------+---------+
| id   | name   | chinese | english |
+------+--------+---------+---------+
|    1 | 张三   |      98 |      88 |
+------+--------+---------+---------+
1 row in set (0.00 sec)

————————————进行了表格式查询——————————————
mysql> select chinese + english from student;

+-------------------+
| chinese + english |
+-------------------+
|               186 |
+-------------------+
1 row in set (0.01 sec)

——————————由下表,可以看出数据库里面内容并没有改变——————————

mysql> select * from student;
+------+--------+---------+---------+
| id   | name   | chinese | english |
+------+--------+---------+---------+
|    1 | 张三   |      98 |      88 |
+------+--------+---------+---------+

   4.别名:

                select 表达式 as 别名 from 表名;【查询结果的表中的列名就     变成别名了】

mysql> select chinese + english as toole from student;
+-------+
| toole |   ----此时这个 toole 就为别名
+-------+
|   186 |
+-------+

   5.去重:

                select distinct 列名 from 表名; 修饰某个列

                【只会保留一    个】【多列的话,每列都需要相同】

mysql> select * from student;
+------+--------+---------+---------+
| id   | name   | chinese | english |
+------+--------+---------+---------+
|    1 | 张三   |      98 |      88 |
|    2 | 李四   |      89 |      91 |
|    3 | 王五   |      89 |      99 |
+------+--------+---------+---------+

——————————去重发现语文只剩两个——————————

mysql> select  distinct chinese from student;
+---------+
| chinese |
+---------+
|      98 |
|      89 |
+---------+

   6.查询排序:

                Select 列名 from 表名 order by 列名 asc/desc;【asc      升序,desc 降序 省略则升  序】【不加 order by 会产无序的排序】

    

mysql> select chinese from student order by chinese asc;
+---------+
| chinese |
+---------+
|      89 |
|      89 |
|      98 |
+---------+


————————————可以看到其为升序排名——————————


mysql> select name ,chinese from student order by chinese asc;
+--------+---------+
| name   | chinese |
+--------+---------+
| 李四   |      89 |
| 王五   |      89 |
| 张三   |      98 |
+--------+---------+

             a)针对列比较规则

          b)排序的是降序还是升序

      Select 条件查询的顺序:

       1.遍历表中的每个记录————

       2.把当前记录的值,带入条件,根据条件筛选;

      3.如果这条记录条件成立,就保留,进行列上的表达式

      4.如果有 order by 会在所有行被获取后(表达式也算)之后再执行

7.条件查询 (where)

       Select 列名 from 表名 where 条件;【会指定具体的条件,按条件进 行筛选】

———————————按最后一个举例 ————————
mysql> select name , chinese from student where  name like '%五';
+--------+---------+
| name   | chinese |
+--------+---------+
| 王五   |      89 |
+--------+---------+
1 row in set (0.01 sec)


————其余通用————————

        1.运算符 说明
     

           a)  >, >=, <, ><= 大于,大于等于,小于,小于等于

           b)  = 等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL

           c)  <=> 等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)【可      以针对多列】

           d)  !=, <> 不等于  

          e)  BETWEEN a0 AND a1 范围匹配,[a0, a1],如果 a0 <= value <= a1,       返回 f) f)                          TRUE(1) IN (option, ...)  如果是 option 中的任       意一个,返回 TRUE(1)

           g)  IS NULL 是 NULL  【只能针对一个列】

           h)  IS NOT NULL 不是 NULL LIKE 模糊匹配。

           i)  select * from 表名 where 列名 like ‘要查询的%';

              【% 表示任意多个(包括 0 个)任意字符; eg:%孙% ,%孙 ,          孙%】

              【 _ 表示任意一个字 符 代替一个字符eg: _孙】

2.逻辑运算符

mysql> select name , chinese from student where  chinese>87 and english >93;
+--------+---------+
| name   | chinese |
+--------+---------+
| 王五   |      89 |
+--------+---------+

——————————其余同用————————

             AND 多个条件必须都为 TRUE(1),结果才是 TRUE(1)

             OR 任意一个条件为 TRUE(1), 结果为 TRUE(1)

             NOT 条件为 TRUE(1),结果为 FALSE(0)

8.分页查询:

       1.select * from 表名  limit 3;  offset 数字 【limit 查询几条           记录  offset 每次偏移量】

mysql> select *from student limit 1 offset 2;   ----limit 后面为查询条数
+------+--------+---------+---------+
| id   | name   | chinese | english |           ----- offset 后面为偏移量,及所查找的在哪
+------+--------+---------+---------+
|    3 | 王五   |      89 |      99 |
+------+--------+---------+---------+
1 row in set (0.00 sec)

mysql> select *from student limit 1 offset 1;
+------+--------+---------+---------+
| id   | name   | chinese | english |
+------+--------+---------+---------+
|    2 | 李四   |      89 |      91 |
+------+--------+---------+---------+
1 row in set (0.00 sec)

mysql> select *from student limit 1 offset 0;
+------+--------+---------+---------+
| id   | name   | chinese | english |
+------+--------+---------+---------+
|    1 | 张三   |      98 |      88 |
+------+--------+---------+---------+

          使用 select *这种方式查询, 比较危险

          需要保证一次查询,不要查出太多

          Limit 可以限制这次查询最多能查出来多少个结果

          数据多,一次性全显示,会影响效率,不方便去看


常用字符类型

数据类型大小说明对应java类型
BIT[ (M) ]M指定位 数,默认 为1二进制数,M范围从1到64, 存储数值范围从0到2^M-1常用Boolean对应BIT,此时 默认是1位,即只能存0和1
TINYINT1字节Byte
SMALLINT2字节Short
INT4字节Integer
BIGINT8字节Long
FLOAT(M, D)4字节单精度,M指定长度,D指定 小数位数。会发生精度丢失Float
DOUBLE(M, D)8字节 Double
DECIMAL(M, D)M/D最大 值+2双精度,M指定长度,D表示 小数点位数。精确数值BigDecimal
NUMERIC(M, D)M/D最大 值+2和DECIMAL一样BigDecimal

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值