zoukankan      html  css  js  c++  java
  • MySql小结

    MYSQL连接:

    mysql -u {user_name} -p
    Enter password:******

    MYSQL显示功能:

    SHOW DATABASES; 显示所有的数据库
    SHOW DATABLES; 显示数据库的的所有表
    SHOW CREATE TABLE {table_name}; 查看创建表的语句
    SHOW COLUMNS FROM {table_name}; 显示表的所有字段
    SHOW TABLE STATUS; 查看表状态
    SHOW INDEX FROM {table_name}: 查看表上建立的索引

    MYSQL创建、删除数据库:

    CREATE DATABASE {database_name};
    DROP DATABASE {database_name};

    MYSQL选择数据库:

    USE {database_name};

    MYSQL创建、删除表:

    CREATE TABLE {table_name} ( {column_name} {column_type} );
    DROP TABLE {table_name};
    TRUNCATE TABLE {table_name} : 清除表内数据,保存表结构

    MYSQL修改表:

    ALTER TABLE {table_name} + 以下命令

    RENAME TO {new_table_name}; 重命名表名
    ADD {column_name} {column_type}; 添加列
    DROP {column_name}; 删除列
    MODIFY {column_name} {new_column_type}; 修改字段类型
    CHANGE {old_column_name} {new_column_name} {new_column_type} 修改字段名及类型
    ALTER {column_name} SET DEFAULT {value}; 为指定字段设定默认值
    ALTER {column_name} DROP DEFAULT; 删除指定字段的默认值

     LIKE(与'='类似):

    % 匹配多个字符
    _ 匹配单个字符
    两者通常与 LIKE 连用

     MYSQL索引:

    索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引;组合索引,即一个索引包含多个列
    创建索引时,需要确保该索引是应用在SQL查询语句的条件
    索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录

    创建索引(唯一索引 UNIQUE INDEX):
    CREATE INDEX {index_name} ON {table_name}({column_name}(collumn_length));

    ALTER TABLE {table_name} ADD INDEX {index_name}({column_name});

    删除索引:
    DROP INDEX {index_name} ON {table_name};

     MYSQL事务:

    ACID :原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
    MYSQL 事务处理主要有两种方法:
    1、用 BEGIN, ROLLBACK, COMMIT来实现
      BEGIN 开始一个事务
      ROLLBACK 事务回滚
      COMMIT 事务确认
    2、直接用 SET 来改变 MySQL 的自动提交模式:
      SET AUTOCOMMIT=0 禁止自动提交
      SET AUTOCOMMIT=1 开启自动提交

    MYSQL导入导出数据:

    LOAD DATA LOCAL INFILE '{file_path}' INTO TABLE {table_name}({field,field,...})
    FIELDS TERMINATED BY '{delimiter}'
    LINES TERMINATED BY '{delimiter}';
    如果指定LOCAL关键词,则表明从客户主机上按路径读取文件;如果没有指定,则文件在服务器上按路径读取文件

    SELECT {field,field,..} INTO OUTFILE
    FIELDS TERMINATED BY '{delimiter}' ENCLOSED BY '{delimiter}'
    LINES TERMINATED BY '{delimiter}'
    FROM {table_name};

    导出SQL格式的数据
    mysqldump -u {user_name} -p {database_name} {table_name} > '{file_path}'
    Enter password:******

    导入SQL格式的数据
    mysql -u {user_name} -p {database_name} {table_name} < '{file_path}'
    Enter password:******

    MYSQL连接:

    内连接基本语法:
      左表 inner join 右表 on 左表.字段 = 右表.字段;
    结果:从左表中取出每一条记录,去右表中与所有的记录进行匹配;匹配必须是某个条件是左表中与右表中相同,才会保留结果,否则不保留;
    注意事项:
      1、on 表示连接条件;条件字段代表相同的业务含义
      2、内连接可以没有连接条件,没有on之后的内容,这时候系统会保留所有结果(笛卡尔集)
      3、内连接可以使用where 代替 on通常不用where,因为where没有on效率高,on指匹配到第一条成功的就结束,其他不匹配;若没有,不进行匹配,而where会一直匹配,进行判断
      4、通常使用字段别名,表别名在查询数据的时候,不同表有同名字段,这时候需要加上表名才能区分,而若表名太长,使用表别名若不想使用默认的字段名 可以通过[as] 设置字段别名


    外连接基本语法:

      左表 left/right join 右表on 左表.字段 = 右表.字段;
    outer join 以某张表为主,取出里面的所有记录,然后每条与另外一张表进行连接,不管能不能匹配上条件,最终都会保留,能匹配,正确保留;不能匹配其他表的字段都置空null
    分类:分为两种 左连接,右连接
    left join 左外连接---左连接,以左表为主
    right join 右外连接---右连接,以右表为主

    交叉连接:几乎不用
    cross join:从一张表中循环取出每一条记录,每条记录都会去另一张表中进行匹配;匹配结果一定保留(无条件匹配)------笛卡尔集;

    自然连接:很少用
    natural join 自然连接 就是系统自动匹配连接条件系统以字段名字作为匹配模式(同名字段作为字段,多个同名字段都作为条件)

    MYSQL分组:

    Group by 常与聚合函数一起使用(sum, max, min, count, avg)
    Having与Where的区别
    where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行
    having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组

    MYSQL视图:

    视图:是从一个或多个表导出的虚拟的表,其内容由查询定义;具有普通表的结构,但是不实现数据存储
    对视图的修改:单表视图一般用于查询和修改,会改变基本表的数据,多表视图一般用于查询,不会改变基本表的数据
    作用:
      ①简化了操作,把经常使用的数据定义为视图
      ②安全性,用户只能查询和修改能看到的数据
      ③逻辑上的独立性,屏蔽了真实表的结构带来的影响
    创建视图:CREATE VIEW {view_name} AS {reconds};
    删除视图:DROP VIEW {view_name}
    使用限制:
      ①不能在视图上创建索引;
      ②在视图的FROM子句中不能使用子查询;

  • 相关阅读:
    SQL错误码
    用collectionview实现瀑布流-转
    iOS开发~CocoaPods使用详细说明
    传值
    iOS 传值方式
    iOS Cocos2d-x 开发环境的搭建
    iOS 高效率编程工具篇
    iOS地图定位系统语言为英文时,返回中文位置信息
    Xcode脚本自动化打包问题:xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH
    Cannot create __weak reference in file xxxxxxxxx
  • 原文地址:https://www.cnblogs.com/tongyishu/p/11696133.html
Copyright © 2011-2022 走看看