MySql基础操作大全加案例01

来源:互联网 发布:python 接口 编辑:程序博客网 时间:2024/05/21 17:18
【数据库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;
原创粉丝点击