MySQL 常用语句

  • MySQL语言的分类

    • DDL(Data Definition Language):数据定义语言

      • create(创建),drop(移除),alter(改变 )等对数据库,表,索引的数据对象进行定义

        -- 创建数据库/表
        CREATE DATABASE/TABLE 数据库名/表名;
        
        -- 删除数据库/表
        DROP DATABASE/TABLE 数据库名/表名;
      • ALTER 用法总结
        -- 删除列
        
        ALTER TABLE 【表名字】 DROP 【列名称】;
        
        -- 增加列
        
        ALTER TABLE 【表名字】 ADD 【列名称】 INT NOT NULL  COMMENT '注释说明';
        
        -- 修改列的类型信息
        
        ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称(这里可以用和原来列同名即可)】 BIGINT NOT NULL  COMMENT '注释说明';
        
        -- 重命名列
        ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称】 BIGINT NOT NULL  COMMENT '注释说明';
        
        -- 重命名表
        
        ALTER TABLE 【表名字】 RENAME 【表新名字】;
        
        -- 删除表中主键
        
        Alter TABLE 【表名字】 drop primary key;
        
        -- 添加主键
        
        ALTER TABLE sj_resource_charges ADD CONSTRAINT PK_SJ_RESOURCE_CHARGES PRIMARY KEY (resid,resfromid);
        
        -- 添加索引
        
        ALTER TABLE sj_resource_charges add index INDEX_NAME (name);
        
        -- 添加唯一限制条件索引
        
        ALTER TABLE sj_resource_charges add unique emp_name2(cardnumber);
        
        -- 删除索引
        
        alter table tablename drop index emp_name;
    • DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)

      • insert(添加),一次添加多条
        语法:

        insert into tablename(col_name1,col_name2,....) values (value1,value2..........value_n),
        (value1,value2..........value_n),
        (value1,value2..........value_n);
      • update(修改)
        语法:
        update 表名 set 列名1 = 值1,列名2 = 值2 ... 列名n = 值n
      • delete (删除)
        语法:

        DELETE FROM 表名 [WHERE 从句]
      • select(查询)
        语法:
        SELECT 列名1,列名2... FROM 表名

        • 子查询:

          • 子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从mysql4.1开始引入,在SELECT子句中先计算子查询,子查询的结果作为外层另一个查询条件,查询可以基于一个表或者多个表。

            例如:

            -- FROM 后面括号里的就是子表 a ,该查询结果为 子表a 里的内容
            SELECT a.* FROM (SELECT * FROM 表名a) AS a
        • 条件查询:where关键字可以显示用户指定的数据

          • 语法
            SELECT 列名 FROM WHERE 逻辑运算条件
          • 逻辑运算符
            = ,>, < , >= ,<= ,!= , <>
          • 模糊匹配(LIKE关键字)
            例如:

            -- 查找 student表name列中 含有 “abc”的数据
            SELECT name FROM student WHERE name LIKE '%abc%'
            
            
        • 其它查询
    • DCL:数据控制语言

      • 主要是DBA用来管理系统中的对象权限:
      -- 创建用户:
      -- 语法:`CREATE USER 用户名@地址 IDENTIFIED BY ‘密码’;`
      CREATE USER user1@localhost IDENTIFIED BY123’;
      CREATE USER user2@’%’ IDENTIFIED BY123’;
      
      -- 给用户授权:
      -- 语法:GRANT 权限1, … , 权限n ON 数据库.* TO 用户名
      GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON mydb1.* TO user1@localhost;
      GRANT ALL ON mydb1.* TO user2@localhost;
      
      -- 撤销授权:
      -- 语法:REVOKE权限1, … , 权限n ON 数据库.* FORM 用户名
      REVOKE CREATE,ALTER,DROP ON mydb1.* FROM user1@localhost;   
      
      --  查看用户权限
      -- 语法:SHOW GRANTS FOR 用户名
      SHOW GRANTS FOR user1@localhost;
      
      -- 删除用户
      -- 语法:DROP USER 用户名
      DROP USER user1@localhost;
      
      -- 修改用户密码
      UPDATE USER SET PASSWORD=PASSWORD('1234') WHERE User='user2' and Host=’localhost’;
      -- 新建用户远程连接mysql数据库
      grant all on *.* to admin@'%' identified by '123456' with grant option; 
      flush privileges;
      --允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。
      --注意admin账户不一定要存在。
      
      -- 支持root用户允许远程连接mysql数据库
      grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
      flush privileges;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值