zoukankan      html  css  js  c++  java
  • MySQL 基础命令

    SQL语句

    mysql版本:针对mysql-5.6.36 版本 

    目录
    1.1 常用命令-查看    2
    1.2 登录mysql    2
    1.2.1 修改密码    2
    1.2.2 忘记密码-怎么办    3
    1.3 授权grant    3
    1.3.1 grant    3
    1.4 好用功能、快捷键    4
    1.4.1 mysql客户端接口自带功能    4
    1.5 增删改查-数据库SQL命令详解    5
    1.5.1 数据库    5
    1.5.2 表-table    5
    1.5.3 插入、更新数据    7
    1.5.4 查看数据-select    8
    1.6 复杂查询    8
    1.6.1 ORDER BY子句    8
    1.6.2 LIMIT子句    8
    1.6.3 子查询    9
    1.6.4 连接查询    9

    1.1 常用命令

    # 查看数据库
    mysql> show databases;
    show databases like '%pres%';      #模糊查询
    # 查看表
    mysql> use xzy
    mysql> show tables;
    #查看权限
    show grants for oldboy@'10.0.0.%';
    # 查看列
    mysql> use xzy
    mysql> desc test;

    1.2 登录mysql

    常见的特定于客户机的连接选项
    -u <user_name>或--host=<user_name>
    -p <password>
    -h <host_name>或--host=<host_name>
    --protocol=<protocol_name>
    -P <port_number> 或--port=<port_number>
    -S <socket_name> 或--socket=<socket_name>

    1.2.1 修改密码

     
    [root@db02 ~]# mysqladmin -uroot -p123 password 123456
    [root@db02 ~]# mysql -uroot -p123456
    mysql>

    1.2.2 忘记密码-怎么办

    #开启mysql  (跳过授权表)
    #--skip-grant-tables 跳过授权表  --skip-networking禁止网络登录-即本地登录
    /application/mysql/bin/mysqld_safe --skip-grant-tables  --skip-networking  &
    
    #进入MySQL修改mysql.user表的内容
    mysql        #直接登录(无需密码)
    #修改mysql.user表内容
    mysql> update mysql.user set password=PASSWORD('666666')  where user='root' and host='localhost';
    mysql> flush privileges;
    #quit  退出即可用新密码666666登录
    
    注意:5.7版本的不同
    update mysql.user set authentication_string=PASSWORD('123456')  where user='sys' and host='localhost'
    flush privileges;

    1.3 授权grant

    1.3.1 grant

    格式
    grant  权限   on  权限范围(对象)  to  用户  identified by  '';
    
    权限(角色):
    select、update、delete、insert、drop、create
    ALL 
    
    权限范围:
    *.*  所有数据库对象
    oldboy.*   oldboy单库下所有对象
    oldboy.test  单表级别
    
    
    用户:
    repl@localhost
    repl@'10.0.0.53'
    repl@'10.0.0.%'
    repl@'10.0.0.5%'
    -----
    要求:
    1、用户只能通过10网段访问,用户名为oldboy,密码为123
    2、只能对oldboy数据库下的对象进行增insert create、改update、查select
    #创建 
    grant select,insert,update,create on oldboy.* to oldboy@'10.0.0.%' identified by '123';
    #查看权限
    show grants for oldboy@'10.0.0.%';
    #收回权限
    revoke drop on oldboy.* from 'oldboy'@'10.0.0.%';
    #删除用户
    drop user oldboy@'10.0.0.%'
    
    注意:
    创建的权限信息,不在/data/下的数据库名目录下

    1.4 好用功能、快捷键

    1.4.1 mysql客户端接口自带功能

    1、h 或 help 或 ?                 获取帮助
    2、G                           格式化输出(行转列)
    3、T 或 tee                    记录操作日志  tee /tmp/mysql.log
    4、c 或 CTRL+c                    退出mysql
    5、s 或 status                    查看数据库状态信息
    6、. 或 source                    mysql> source /tmp/world.sql
    7、u 或use                        use  world 
                                show databases  看当前所有数据库的名字
                                show tables   查看当前use到的数据库所有的表
                                show  tables from world   查看目标数据库下的表
    8、    ctrl +L   清屏

    1.5 增删改查-数据库SQL命令详解

    1.5.1 数据库

    #创建库
    mysql> create database xzy character set utf8;   #或缩写 charset utf8 (推荐)
    mysql> show create  database xzy;
    +----------+--------------------------------------------------------------+
    | Database | Create Database                                              |
    +----------+--------------------------------------------------------------+
    | xzy     | CREATE DATABASE `xzy` /*!40100 DEFAULT CHARACTER SET utf8 */ |
    +----------+--------------------------------------------------------------+
    
    #修改库
    mysql> alter database xzy charset gbk;
    
    #删除库
    mysql> drop database xzy;

    1.5.2 表-table

    1.5.2.1 查看表

    # 帮助:
    mysql> help create table;
    # 查看列
    mysql> use xzy
    mysql> desc test;
    +-------+----------+------+-----+---------+-------+
    | Field | Type     | Null | Key | Default | Extra |
    +-------+----------+------+-----+---------+-------+
    | id    | int(11)  | YES  |     | NULL    |       |
    | name  | char(30) | YES  |     | NULL    |       |
    +-------+----------+------+-----+---------+-------+

    1.5.2.2 操作表

    # 创建表
    mysql> use xzy
    mysql> create table test(id int,name char(30));
    # 完整:
    CREATE TABLE `test` (
      `id` int(4) NOT NULL AUTO_INCREMENT,
      `name` char(20) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
    
    # 修改表名(两种方法)
    mysql> rename table test to test1;   或 
    mysql> alter table test1 rename to test;
    # 添加列结构 
    mysql> alter table people add addr char(40) NOT NULL;  #默认添加到最后
    # 指定添加年龄列到name列后面的位置,示例如下:
    alter table people add age int(4) after name;
    # 通过下面的命令在第一列添加qq字段。
    alter table test add telnum int first;
    # 同时添加多个列定义:
    alter table people add id int first ,add sex char(4) after name ;
    # 删除表结构:
    alter table people drop sex;
    # 修改表定义
    alter table people modify name char(20);
    # 修改列名:
    alter table people change name people_name char(30) ;

    1.5.3 插入、更新数据

    #  insert语句:
    create table test (id int,name varchar(20));     #创建表 test
    insert into test values(1,'test');            #插入单个
    insert into test values(2,'yougboy'),(3,'youggilr'); #插入多个
    insert into test(name) values('xiaoming');      #插入指定列
    select * from test;       #查看
    
    # 创建一模一样的表
    ------------------------------------
    create table test like oldboy;
    insert into oldboy select * from oldboy;
    ------------------------------------
     
    # 修改(更新)数据 update
    update(一定要有where条件)
    update test set name='oldboy1' WHERE  id = 1;
    
    # 删除数据 delete
    delete(一定要有where条件)
    delete from oldboy where id=1;

    1.5.4 查看数据-select

    select user,password ,host from mysql.user where user='sys';
    select user,password ,host from mysql.user where user like 'sy%';
    select * from oldboy.test;
    select id,name from test where id=2;
    select id,name from test where id>2 and id<4;

    1.6 复杂查询

    1.6.1 ORDER BY子句

    ORDER BY子句用来排序行
    语法:
    SELECT expr FROM table
    [WHERE condition(s)]
    [ORDER BY {column, expr, numeric_position} [Asc|DEsc]];
    其中:
    Asc:执行升序排序。默认值
    DEsc:执行降序排序
    ORDER BY子句一般在SELECT语句的最后面
    
    #两个排序条件
    SELECT * FROM city ORDER BY population,countrycode;

    1.6.2 LIMIT子句

    LIMIT子句是SELECT语句中的最后一个子句(在order by后面)。
    它用来表示从结果集中选取最前面或最后面的几行。
    语法:
    limit <获取的行数> [OFFSET <跳过的行数>]
    或者limit [<跳过的行数>,] <获取的行数>
    SELECT * FROM city ORDER BY 5 DEsc LIMIT 4;

    1.6.3 子查询

    获取和100号球员性别相同并且居住在同一城市的球员号码。
    select playerno   
    from players   
    where (sex, town) = (  
        select sex, town   
        from players   
        where playerno = 100);

    1.6.4 连接查询

    #基础用法
    SELECT * FROM Student,Grade WHERE Student.sID = Grade.gID;
    
    #AS 别名
    SELECT ci.name AS city_name ,co.name AS country_name,co.`SurfaceArea` AS mianji
     FROM city AS ci ,country AS co
     WHERE ci.name='qingdao' AND 
     ci.`CountryCode`= co.`CountryCode`;
    
    # NATURAL JOIN子句
    自动到两张表中查找所有同名同类型的列拿来做连接列,进行相等连接
    SELECT NAME,countrycode,LANGUAGE ,population
    FROM city NATURAL JOIN countrylanguage
    WHERE population > 1000000
    ORDER BY population;
    
    # 使用using子句 (指定列连接)
    SELECT NAME,countrycode,LANGUAGE ,population
    FROM city JOIN countrylanguage
    USING(countrycode);
  • 相关阅读:
    java web项目打包.war格式
    version 1.4.2-04 of the jvm is not suitable for thi
    Sugarcrm Email Integration
    sharepoint 2010 masterpage中必须的Content PlaceHolder
    微信开放平台
    Plan for caching and performance in SharePoint Server 2013
    使用自定义任务审批字段创建 SharePoint 顺序工作流
    Technical diagrams for SharePoint 2013
    To get TaskID's Integer ID value from the GUID in SharePoint workflow
    how to get sharepoint lookup value
  • 原文地址:https://www.cnblogs.com/xzy-blog/p/8268850.html
Copyright © 2011-2022 走看看