MySql基础操作大全加案例01

【数据库MySql】
作用:
    存数据
    譬如:
        1、你的开房记录
        2、银行卡信息
        3、身份证信息

    数据库包括
        1、库
        2、表
        3、字段
        4、数据行

【关系型数据库和非关系型数据库】

    关系型数据库;
        MySQL
        Oracle
        SqlServer

    非关系型数据库
        mongDB
        redis
【Sql分类】

    DDL
        create(创建) drop(删除) alter(修改)
    DML
        insert(插入) update(修改) delete(删除)
    DQL(重点)
        select

    DCL
        grant(授权) revoke(跟授权相反)

    DTL (事务)
        bengin(开始) commit(提交) rollback(回滚)


    如果你在输入mysql -uroot -p 提示你不是内部命令的时候配置你的环境变量
    C:\wamp64\bin\mysql\mysql5.7.9\bin

【数据连接】
    第一种方式(推荐)
    msyql -uroot -p
    密码:如果没有密码直接回车


    退出
        quit

    第二种进入数据库的方式

    mysql -uroot -pkungezuishuai 不推荐使用

    第三种方式
    mysql -hlocalhost -uroot -p

    清空dos命令
    cls

    \h 帮助命令

    \g 执行当前命令 直接分号一样

    \c 结束当前的命令

    【查看数据库】
        show databases

    【创建库】
        create database 库名
    【删除库】
        drop database 库名
    【查看你当前所在的库】
        select database();

    创建表之前一定要选择库
    【查看当前库下面有哪些表】
    show tables;
    【创建表】   
    create table 表名(字段1 类型(长度) , 字段2 类型(长度)...........)
    【删除表】
    dorp table 表名
    【查看表结构】
    desc 表名
    【查看建表语句】
    show create table 表名
    【修改表字段的值】
    alter table 表名 modify 字段(长度)
    【修改表字段】
    alter table 表名 change 你的表的原来的字段 你要修改成为的字段名 类型(长度)
    【删除表字段】
    alter table 表名 drop 你要删除的字段
    【插入新的字段】
    alter table 表名 add 你要添加的字段
    【插入字段顺序的问题】
    after 在谁谁之后插入
    alert table 表名 add 你要插入的字段 类型(长度) after 在哪个字段后面

    first 插入最前面
    alert table 表名 add 你要插入的字段 类型(长度) first


    【修改表名字】
    alter table 原来的表名字 rename 新的表名字
    【修改表字段顺序】
    alter table 表名 modify 原来的字段 first 或者 after 在哪个字段后面

    【数据类型】

        整型
            tinyint
            int

        浮点类型
            float(m, d)
            double(m, d)

        字符串类型 (重点)
            text

            char 定长
            varchar 不定长
        面试题常考

    数据库里面一般就存时间戳 时间戳 就是整型的数字  int 就可以

    【索引】
        1、主键名索引
            alter table 表名 add primary key(你要给哪个字段添加)

        2、唯一索引
            alter table 表名 add unique(你要给哪个字段添加)

        3、普通索引
            alter tale 表名 add index(你要给哪个字段添加);

        4、全文索引 整型不能用
            alert table 表名 add fulltext(你要给哪个字段添加);

    【插入数据】

        第一种插入数据的方式

            insert into 表名 values(值1,值2,值3........)
            insert into bbs_user values(2,'程冠希',123,1,0,1234,1231231,260,'河南');
        第二种插入数据的方式(推荐使用)
            insert into 表名 (字段1 , 字段2 , 字段3 。。。。) values(值1,值2,值3.。。。。)
            mysql> insert into bbs_user(username,password,province,price) values('谢霆锋','123456','香港',300);

        第三种插入方式(多条数据插入。批量插入数据)
            insert into 表名(字段1,字段2,字段3.。。。。) values(值1,值2,值3.。。。),(值1,值2,值3.。。。),(值1,值2,值3.。。。)......
            mysql> insert into bbs_user(username , password , price , province) values('张柏芝','456',500 , '澳门'),('钟欣桐','6666',100,'香港'),('候飞洋','3333',1,'北京');

             AUTO_INCREMENT  如果你设置了自动增长,每次会在原来的基础上加1

             默认值:如果你设置了默认值,你插入数据的时候没有填值,会用的你 默认值 你填了用你的值

    【删除数据】   
        注意:你在做删除操作的时候谨慎在谨慎,一般情况下不删除数据,一般做伪删除(假删除)-》修改  

        删除的时候一定要加上条件,测试你的sql语句确定没有问题再删除

        delete from 表名 where 条件

        mysql> delete from bbs_user where price>1 and price <500;
        Query OK, 7 rows affected (0.01 sec)

        mysql> select * from bbs_user;
        +----+-----------+----------+------+--------+-------+------+-------+----------+
        | id | username  | password | sex  | status | ctime | rip  | price | province |
        +----+-----------+----------+------+--------+-------+------+-------+----------+
        |  4 | 张柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳门     |
        |  6 | 候飞洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        |  7 | 张柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳门     |
        |  9 | 候飞洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        | 10 | 张柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳门     |
        | 12 | 候飞洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        | 13 | 张柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳门     |
        | 15 | 候飞洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        | 16 | 张柏芝    | 456      | NULL |      1 |  NULL | NULL |   500 | 澳门     |
        +----+-----------+----------+------+--------+-------+------+-------+----------+
    【修改数据】
        update set 表名 原来的字段 = 你想要的值 where 条件

        注意:条件一定要加上

        mysql> update bbs_user set price = 600 where id = 10;
        Query OK, 1 row affected (0.00 sec)
        Rows matched: 1  Changed: 1  Warnings: 0

        mysql> select * from bbs_user;
        +----+-----------+----------+------+--------+-------+------+-------+----------+
        | id | username  | password | sex  | status | ctime | rip  | price | province |
        +----+-----------+----------+------+--------+-------+------+-------+----------+
        |  4 | 张柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳门     |
        |  6 | 候飞洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        |  7 | 张柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳门     |
        |  9 | 候飞洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        | 10 | 张柏芝    | 456      | NULL |      0 |  NULL | NULL |   600 | 澳门     |
        | 12 | 候飞洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        | 13 | 张柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳门     |
        | 15 | 候飞洋    | 3333     | NULL |      0 |  NULL | NULL |     1 | 北京     |
        | 16 | 张柏芝    | 456      | NULL |      1 |  NULL | NULL |   500 | 澳门     |
        +----+-----------+----------+------+--------+-------+------+-------+----------+

    【重点中的重点】--查询

        * 号一般情况不用  在工作当做或者开发过程中 如果你想用什么数据就查询某个特指的字段

        1、根据你特指的某一个字段去进行查询
        select 字段1,字段2,字段3 from 表名
        mysql> select username,sex,status from bbs_user;
        +-----------+------+--------+
        | username  | sex  | status |
        +-----------+------+--------+
        | 张柏芝    | NULL |      0 |
        | 候飞洋    | NULL |      0 |
        | 张柏芝    | NULL |      0 |
        | 候飞洋    | NULL |      0 |
        | 张柏芝    | NULL |      0 |
        | 候飞洋    | NULL |      0 |
        | 张柏芝    | NULL |      0 |
        | 候飞洋    | NULL |      0 |
        | 张柏芝    | NULL |      1 |
        +-----------+------+--------+
        2、去除重复值的查询方式
            select distinct(你要去重的哪一个字段) from 表名
            mysql> select distinct(username) from bbs_user;
            +-----------+
            | username  |
            +-----------+
            | 程冠希    |
            | 谢霆锋    |
            | 张柏芝    |
            | 钟欣桐    |
            | 候飞洋    |
            +-----------+
            5 rows in set (0.00 sec)

        3、配合where条件来使用
        select 字段1,字段2,字段3 from 表名 where 条件

        mysql> select * from bbs_user where price >300;
        +----+-----------+----------+------+--------+-------+------+-------+----------+
        | id | username  | password | sex  | status | ctime | rip  | price | province |
        +----+-----------+----------+------+--------+-------+------+-------+----------+
        |  4 | 张柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳门     |
        |  7 | 张柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳门     |
        | 10 | 张柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳门     |
        | 13 | 张柏芝    | 456      | NULL |      0 |  NULL | NULL |   500 | 澳门     |
        | 16 | 张柏芝    | 456      | NULL |      1 |  NULL | NULL |   500 | 澳门     |
        +----+-----------+----------+------+--------+-------+------+-------+----------+
        5 rows in set (0.00 sec)

        4、查询在什么什么区间分为之内 between and

        select * from 表名
        mysql> select username , age from bbs_user where age between 20 and 30;
        +-----------+------+
        | username  | age  |
        +-----------+------+
        | 程冠希    |   30 |
        | 张柏芝    |   20 |
        | 钟欣桐    |   23 |
        | 钟欣桐    |   30 |
        | 候飞洋    |   23 |
        +-----------+------+
        5、查询配合or的用法
        mysql> select 字段1 , 字段2.。。 from 表名 where 条件1>500 or 条件2 > 30;
        +-----------+-------+
        mysql> select username , price from bbs_user where price>500 or age > 30;
        +-----------+-------+
        | username  | price |
        +-----------+-------+
        | 张柏芝    |   550 |
        | 钟欣桐    |   100 |
        | 候飞洋    |   400 |
        | 候飞洋    |   444 |
        | 张柏芝    |   500 |
        | 张柏芝    |   119 |
        +-----------+-------+
        6、不等于
        mysql> select count(*) username from bbs_user where age != 23;
            +----------+
            | username |
            +----------+             ||
            |       14 |
            +----------+
            mysql> select count(*) username from bbs_user where age <> 23;
            +----------+
            | username |
            +----------+
            |       14 |
            +----------+
        7、在什么什么里面查询 (通过in可以做嵌套查询 一会再说????)

        mysql> select username , age from bbs_user where age in(30,23);
        +-----------+------+
        | username  | age  |
        +-----------+------+
        | 程冠希    |   30 |
        | 钟欣桐    |   23 |
        | 钟欣桐    |   30 |
        | 候飞洋    |   23 |
        +-----------+------+
        4 rows in set (0.00 sec)

        8、模糊查询 like    like 什么情况下使用索引 ???

        select * from 表名 where 字段 like ‘%’
        mysql> select * from bbs_user where province like '河%';
    +----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
    | id | username  | password | sex  | status | ctime | rip     | price | province  | age  |
    +----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
    |  1 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南      |   10 |
    |  2 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南北    |   30 |
    |  9 | 候飞洋    | 3333     | NULL |      0 |  NULL |    NULL |   444 | 河北      |   44 |
    +----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
    3 rows in set (0.00 sec)
        mysql> select * from bbs_user where province like '%南%';
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
| id | username  | password | sex  | status | ctime | rip     | price | province  | age  |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
|  1 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南      |   10 |
|  2 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南北    |   30 |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
2 rows in set (0.00 sec)
mysql> select * from bbs_user where province like '_南';
+----+-----------+----------+------+--------+-------+---------+-------+----------+------+
| id | username  | password | sex  | status | ctime | rip     | price | province | age  |
+----+-----------+----------+------+--------+-------+---------+-------+----------+------+
|  1 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南     |   10 |
+----+-----------+----------+------+--------+-------+---------+-------+----------+------+
1 row in set (0.00 sec)
mysql> select * from bbs_user where province like '_南_';
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
| id | username  | password | sex  | status | ctime | rip     | price | province  | age  |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
|  2 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南北    |   30 |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
1 row in set (0.00 sec)
        9、配合and使用  
        mysql> select * from bbs_user where price > 200 and price <300;
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
| id | username  | password | sex  | status | ctime | rip     | price | province  | age  |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
|  1 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南      |   10 |
|  2 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南北    |   30 |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
2 rows in set (0.00 sec)

        or ||
        and &&

        like什么情况下使用索引???

        10、排序 升序
        select * from 表名 order by(字段) (如果说你后面什么都不加的情况下默认是升序)
         ||
        select * from 表名 order by (字段) asc;
        mysql> select * from bbs_user order by age asc;
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
| id | username  | password | sex  | status | ctime | rip     | price | province  | age  |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
|  3 | 谢霆锋    | 123456   | NULL |      0 |  NULL |    NULL |   300 | 香港      |    1 |
|  1 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南      |   10 |
| 13 | 张柏芝    | 456      | NULL |      0 |  NULL |    NULL |   500 | 澳门      |   12 |
| 14 | 钟欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   18 |
| 15 | 候飞洋    | 3333     | NULL |      1 |  NULL |    NULL |   110 | 北京      |   19 |
|  7 | 张柏芝    | 456      | NULL |      0 |  NULL |    NULL |   500 | 深圳      |   20 |
|  8 | 钟欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   23 |
| 12 | 候飞洋    | 3333     | NULL |      0 |  NULL |    NULL |   120 | 北京      |   23 |
|  2 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南北    |   30 |
| 11 | 钟欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   30 |
| 16 | 张柏芝    | 456      | NULL |      1 |  NULL |    NULL |   119 | 澳门      |   33 |
|  4 | 张柏芝    | 456      | NULL |      0 |  NULL |    NULL |   550 | 澳门      |   40 |
|  9 | 候飞洋    | 3333     | NULL |      0 |  NULL |    NULL |   444 | 河北      |   44 |
|  5 | 钟欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   50 |
| 10 | 张柏芝    | 456      | NULL |      0 |  NULL |    NULL |   500 | 澳门      |   56 |
|  6 | 候飞洋    | 3333     | NULL |      0 |  NULL |    NULL |   400 | 北京      |  100 |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+

    11、降序
        select * from 表名 order by(字段) desc
         mysql> select * from bbs_user order by(age) desc;
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
| id | username  | password | sex  | status | ctime | rip     | price | province  | age  |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
|  6 | 候飞洋    | 3333     | NULL |      0 |  NULL |    NULL |   400 | 北京      |  100 |
| 10 | 张柏芝    | 456      | NULL |      0 |  NULL |    NULL |   500 | 澳门      |   56 |
|  5 | 钟欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   50 |
|  9 | 候飞洋    | 3333     | NULL |      0 |  NULL |    NULL |   444 | 河北      |   44 |
|  4 | 张柏芝    | 456      | NULL |      0 |  NULL |    NULL |   550 | 澳门      |   40 |
| 16 | 张柏芝    | 456      | NULL |      1 |  NULL |    NULL |   119 | 澳门      |   33 |
|  2 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南北    |   30 |
| 11 | 钟欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   30 |
|  8 | 钟欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   23 |
| 12 | 候飞洋    | 3333     | NULL |      0 |  NULL |    NULL |   120 | 北京      |   23 |
|  7 | 张柏芝    | 456      | NULL |      0 |  NULL |    NULL |   500 | 深圳      |   20 |
| 15 | 候飞洋    | 3333     | NULL |      1 |  NULL |    NULL |   110 | 北京      |   19 |
| 14 | 钟欣桐    | 6666     | NULL |      0 |  NULL |    NULL |   100 | 香港      |   18 |
| 13 | 张柏芝    | 456      | NULL |      0 |  NULL |    NULL |   500 | 澳门      |   12 |
|  1 | 程冠希    | 123      |    1 |      0 |  1234 | 1231231 |   260 | 河南      |   10 |
|  3 | 谢霆锋    | 123456   | NULL |      0 |  NULL |    NULL |   300 | 香港      |    1 |
+----+-----------+----------+------+--------+-------+---------+-------+-----------+------+
16 rows in set (0.00 sec)

    12、取出来几条数据

    select 字段1,字段2.。。 from 表名 limit 05  这是5叫做偏移量

    //只有通过它才可以实现分页

    第一页

        select * from 表名 limit 0,5;

    第二页
        select * from 表名 limit 55、
    第三页
        105
    第四页
        155

        $limit = (n-1*偏移量 , 5

        select * from bbs_user limit $limit;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值