数据库mysql的一些命令

【一】数据库操作

1、显示所有数据库命令:

        show databases;

2、选择数据库:

        use 数据库名称;

3、创建数据库:

        create databese 数据库名称

4、删除数据库:

        drop database 数据库名称

【二】 表单操作

1、查看数据库的表:

        show tables;

2、创建表:

        create table 表名 (id int(4),name char(20),age int(4));

3、删除表:

        drop table 表名

4、修改表名:

    alter table 老表名 rename 新表名

5、查看表结构:

        desc 表名

6、增加字段:

    alter table 表名 add sex char(10)

7、删除字段:

     alter table 表名 drop sex

8、修改字段:

     alter table 表名 change 老字段名 新字段名 字段属性;

例如:

   alter table students change id id int(4) auto_increment; //给id添加自动增长的属性

9、 修改某个字段 --- 修改属性  

    //修改id的属性,去除auto_increment属性

    alter table students change id id int(4);

10、 修改某个字段 --- 删除主键

        alter table 表名 drop primary key   (一个表只有一个主键)

11、修改某个字段 --- 添加主键  

        alter table students add primary key(id);

        alter table students change id id int(4) primary key;

【三】 表单数据操作

  1、查询表中的所有数据:

        select * from table_name;

  2    增加数据:

    insert into table_name(id ,name,age)values (1002,"王志雄",20)

  3、删除数据:

    delect from 表名 where  id= 100;

  4、修改数据:

    updata table_name set name=“李亚利”where id = 100;

        【4.1】:

              1、模糊查询数据: like带%%号来实现查询,%:表示任意个或多个字符。可匹配任意类型和长度的字符: 例如: 查询出学生姓王的学生信息;                       select * from students where name like "王%";

              2、and并且 例如: 显示math和chinese成绩大于90的学生信息; 

                        select * from students_test where math>=90 and chinese>=90; 

              3、or或者 例如: 显示math或chinese成绩大于90的学生信息; 

                        select * from students_test where math>=90 or chinese>=90;

              4、between x and y //在x与y之间的 例如: 显示math成绩在90~100之间的学生信息; 

                        select * from students_test where math between 90 and 100;

              5、in在..里面,允许规定多个值 例如: 显示1703和1704两个班级学生信息;

                         select * from students where class="1704" or class="1703"; select * from students_test where class in ("1703","1704‘’); 

              6、limit指定显示多少行,limit后面2个数字,用逗号隔开,第一个表示数字后。第二数字表示显示几行 

                例如: 显示前面10行数据: select * from students limit 10;

                         显示4到7行的数据: select * from students limit 3,4;

                 按chinese排序,显示4,5行数据: select * from students limit 3,2; 

                显示english成绩在70~90之间的学生信息,显示开头2行: select * from students where english between 70 and 90 limit 0,2; 

              7、逻辑运算符 > 大于 < 小于 >= 大于等于 <= 小于等于 = 等于 != 不等于 8、算术运算符 + 加法 - 减法 * 乘法 / 除法 % 取余

 

            【4.2】:

                    1、count() 统计数量 select class,count(class) from students group by class; 

                    2、avg() 求平均分 select avg(math) from students; 

                    3、sum() 求和 select sum(math) from students;

                     4、max()最大值 select max(math) from students; 

                    5、min()最小值 select min(math) from students; 

                    6、distinct() 去重复 select distinct(goods_number) from students ;

                     7、order by 排序 select * from students order by id; // 默认是升序 select * from students order by id desc; // 降序

                     8、group by 分组 select class,count(class) from students group by class;

【四】多表:

        1、内连接

select table_01 inner join table_02 on table_01.id = table_02.id where table_02.age>20;    

        2、左连接

select table_01 left join table_02 on table_01.id = table_02.id where table_02.age>20; 

        3、右连接

select table_01 right join table_02 on table_01.id = table_02.id where table_02.age>20;

        4、多表查询

 select 需要显示条件 from table_A,table_B where table_A.id = table_B.id(两个表相关联的地方) and ( 条件 ) table_A.name = "liwang"

 

【五】索引:

    1、添加索引:

              普通索引:  alter table table_name add index (id)

              唯一索引:  alter table table_name add unique 索引名称(列名)

2、删除索引:

            drop index 索引名 on 表名

3、显示索引信息:

        show index from table_name

 

 【六】视图:

    1、创建视图:

             create view 视图名称 as "select语句“  

create view student_score

as

select student.*,score.c_name,score.grade

from

student,score

where

student.id=score.stu_id;

 

2、删除视图:

            drop view 名称

【七】存储过程:

    DELIMITER //                                                     5.1 `DELIMITER //`定义好结束符;

    CREATE PROCEDURE p2()                                  5.2 `CREATE PROCEDURE p2()`使用`CREATE PROCEDURE+`方法创建存储过程;

    LANGUAGE SQL                                                 5.3 ` LANGUAGE SQL`指定了使用的语句;

    DETERMINISTIC                                                 5.4 `DETERMINISTIC`当确定每次存储过程输入和输出都是相同内容时,可以使用该关键字,

                                                                                                    否则默认为`NOT DETERMINISTIC`;              

    SQL SECURITY DEFINER                                    5.5 `SQL SECURITY DEFINER`表示调用时检查用户的权限,`INVOKER`值表示用户调用该  

                                                                                                   存储过程时检查,`DEFINER`值创建存储过程时检查; 

   COMMENT "存储过程程序测试"                           5.6 `COMMENT`其表示存储过程的注释说明部分;

   BEGIN                                                                 5.7 `BEGIN`和`END`之间的,是存储过程的主题部分; 

  SELECT "hello world!";                                                 select其实可以当做输出语句使用(类似于print);

  END //                                                              

  DELIMITER ;                                                         5.8 最后` DELIMITER ;`恢复mysql分号定界符; 

 

简化版:

            更为简单写法,mysql存储存储过程,封装sql(默认是分号为结束符): 

            delimiter // # 定义好结束符(为了区分默认的分号结束符)

            create procedure p1()

            begin

            select * from actor;

            end 

            //

            delimiter ; # 恢复mysql分号定界符

 

           

调用存储过程的方法:

        call 存储过程名字();

        call p2(); 

显示存储过程的相关信息:

        show procedure status;

删除存储过程:

        drop procedure 名称;