Msql数据库常用操作命令

一、基本命令
    1、启动服务:
        以管理员的身份运行(windows-system32-cmd)cmd
        net start mysql
    2、停止服务
        以管理员的身份运行(windows-system32-cmd)cmd
        net stop mysql
    3、链接服务
        mysql -u root -p
    4、退出链接
        quit(exit)
    
    (5-10:前提都是链接服务器)
    5、查看版本
        select version();
    6、查看当前时间
        select now();
    7、远程连接
        格式:mysql -h 192.168.0.104 -u root -p;
        输入对方的密码
    8、改密码
        alter user user() identified by "新密码";
        mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
    9、查看现有用户
        select host,user,authentication_string from mysql.user;
    10、新建用户
        格式:create user "username"@"host" identified by "password";
        1.mysql->create user 'test'@'localhost' identified by '123';
        2.mysql->create user 'test'@'ip' identified by '123';
        3.mysql->create user 'test'@'%' identified by '123';
    11、删除用户
        格式:drop user 'username'@'host';
    12、授权
        格式:grant privileges on databasename.tablename to 'username'@'host' IDENTIFIED BY 'PASSWORD';
        1、priveleges(权限列表),可以是all priveleges, 表示所有权限,也可以是select、update等权限,多个权限的名词,相互之间用逗号分开。
        2、on用来指定权限针对哪些库和表。
        3、*.* 中前面的*号用来指定数据库名,后面的*号用来指定表名
        eg:
        grant all privileges on `test`.* to 'test'@'localhost';
        grant select on test.* to 'user1'@'localhost';  给予查询权限
        grant insert on test.* to 'user1'@'localhost';  添加插入权限
        grant delete on test.* to 'user1'@'localhost';  添加删除权限
        grant update on test.* to 'user1'@'localhost';  添加权限
       flush privileges;                               刷新权限
    13、查看某个用户的权限
        show grants for 'jack'@'%';
    14、更改用户名
        mysql> rename user 'jack'@'%' to 'jim'@'%';

二、数据库操作
    1、创建数据库
        格式:create database 数据库名 charset=utf8;
        eg:create database pengwei charset=utf8;
    2、删除数据库
        格式:drop database 数据名
        eg:drop database pengwei;
    3、切换数据库
        格式:use 数据库名;
        eg:use pengwei;
    4、查看当前数据库
       select database();
    5、查看当前有多少数据库
       show databases
       
三、表操作
    1、查看当前数据库中的所有表
        show tables;
    2、创建表
        格式:create table 表名(列及类型)
        说明:
            auto_increament表示自增长
            primary key 表示主题
            not null 表示不为空
        eg:create table student(id int auto_increment primary key,name varchar(20) not null,
             age int not null,gender bit default 1,address varchar(20),isDelete bit default 0);
    3、删除表
        格式:drop table 表名;
        eg:drop table student;
        
    4、查看表结构
        desc 表名;
    5、查看建表语句
        格式:show create table 表名;
        eg:show create table student;
    6、重命名表:
        格式:rename table 原表名 to 新表面
        eg:rename table student to students;
    7、修改表结构
        格式:alter table 表名 add|change|drop 列名及类型
        
四、数据操作
    1、增
        a、全列插入
            格式:insert into 表名 values(    )
            说明:主键是自增长,但是在全列插入时需要占位,通常用0
            eg:insert into students values(0,"lijuan",19,0,"河南",0);
        b、缺省插入
            格式:insert into 表名(列1,列2,....) values(值1,值2....)
            eg:insert into students(name,age,address)values("pengwei",20,"河南");
        c、同时插入多条数据
            格式:insert into 表名 values(...),(....),...
            eg:insert into students values(0,"zhangsan",19,1,"河南",0),(0,"lisi",20,1,"河南",0),(0,"zhangsan",21,1,"河南",0);
    
    2、删
       格式:delete from 表名 where 条件;
       eg:delete from students where id=4;
    
    3、改
        格式:update 表名 set 列1=值1,列2=值2,...where 条件
        eg:update students set name="lisi" where id=5;
    
    4、查
        说明:查询表中的全部数据
        格式:select * from 表名;
        
五、查
    1、基本语法
        格式:select * from 表名;
        说明:select后面写表中的列名,如果为*,表示所有列,列后as  a表示为该列取了别名
        eg: select name,age from students;
             select name as n,age from students;
    2、消除重复
        在select后面,列前面使用distinct可以消除重复行
        eg:select distinct name gender from students;
    3、条件查询
        a、语法
            select * from 表名 where 条件;
        b、比较运算符
            等于       =
            大于       >
            小于       <
            大于等于   >=
            小于等于   <=
            不等于     !=或<>
            需求:查询id大于3的
               eg:select * from students where id>3;
                   select * from students where id=3;
                   select * from students where id<3;
                   select * from students where id>=3;
        c、逻辑运算符  
           and    select * from students where id>3 and gender=0;
           or     select * from students where id>3 or gender=0;
           not    select * from students where id>3 not gender=0;
        d、模糊查询
            select * from students where name like "li%"
            select * from students where name like "li_"
        e、范围查询
            in                     非连续的集合
            between....and...      连续结合
             eg:select * from students where id in(6,8,10)
                 select * from students where id between 6 and 10;
        f、空判断
        insert into students(name,age)values("李孝利",40);
        eg:select * from students where address is null;
        g、优先级
         小括号,not,比较运算符,逻辑运算符,and比or的优先级高
    4、聚合
        为了快速得到统计数据,提供了5个聚合函数
        a、count(*)   总行数,括号可以写*或列名
        b、max(列)    最大值
        c、min(列)    最小值
        d、sun(列)    求和
        e、avg(列)    平均值
        eg:select count(*) from students; 
            select max(id) from students where gender=0;
            select min(id) from students where gender=0;
            select sum(age) from students where gender=0;
            select avg(age) from students; 
    5、分组
        按照字段分组到不同的集合中
        分组后只能查看相同的数据列
        语法:select 列1,列2,聚合... from 表名 group by 列1,列2;
        需求:查询男女生总数
        select gender,count(*) from students group by gender;
        分组后筛选:
        select 列1,列2,聚合... from 表名 group by 列1,列2,...having 列1,聚合...;
        select gender,count(*) from students group by gender having gender;
        where与having的区别
        where 是对from后面的指定的表进行筛选
        having 是对分组后的结果进行筛选
    6、排序
       语法:select * from 表名 order by 列1 asc|desc,列2 asc|desc,...
       说明:将数据按照列1,列1相同的按照列2接着排序
           默认升序
           asc:升序
           desc:降序
        eg:select * from students order by age;
            select * from students order by age desc;
            select * from students where gender=0 order by age;
            select * from students where gender=0 order by age,id desc;
    7、分页
        语法:select * from 表名 limit start,count;
        说明:start:索引从0开始
              count:每次看的条数
        eg:select * from students limit 0,3;
            select * from students where gender=0 limit 0,3;
六、关联
    建表
       1、create table class(id int auto_increment primary key,name varchar(20) not null,
       stuNum int not null);
       2、create table student(id int auto_increment primary key,name varchar(20) not null,
       gender bit default 1,classid int not null,foreign key(classid) references class(id) );
       
       向class中插入数据
       insert into class values(0,"class1",50),(0,"class2",55),(0,"class3",60),(0,"class4",75);
       
       给班级插入学生
        insert into student values(0,"苍井空",0,1);
        insert into student values(0,"小泽",0,2),(0,"加藤鹰",1,3);
        insert into student values(0,"加藤鹰",1,3);
        
        需求:显示出每个学生所在的班级
          select student.name,class.name from class inner join student on class.id=student.classid
          
          select student.name,class.name from class left join student on class.id=student.classid
          
          select student.name,class.name from class right join student on class.id=student.classid
          
        
        分类:
        1、表A inner join 表B:
           表A与表B匹配的行为会出现在结果集中
        2、表A left join 表B:
           表A与表B匹配的行为会出现在结果集中,外加A中独有的数据用null匹配
        3、表A right join 表B:
           表A与表B匹配的行为会出现在结果集中,外加B中独有的数据用null匹配
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值