zoukankan      html  css  js  c++  java
  • MySQL | 基础教程笔记

    0 基础
    · 关系型数据库管理系统(RDBMS)来存储和管理的大数据量
    · 术语
    主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
    外键:外键用于关联两个表。
    复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
    索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
     
    1 操作
    · 创建/删除数据库:
    CREATE/DROP DATABASE 数据库名;

    · 创建数据表 需要表名、表字段名、定义每个表字段

    CREATE TABLE table_name (column_name column_type);

    e.g. 

    CREATE TABLE IF NOT EXISTS 'runoob_tbl'(
       'runoob_id' INT UNSIGNED AUTO_INCREMENT,
       'runoob_title' VARCHAR(100) NOT NULL,
       'runoob_author' VARCHAR(40) NOT NULL,
       'submission_date' DATE,
       PRIMARY KEY ( 'runoob_id' )  #定义主键
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;  #设置存储引擎和编码
    · 删除数据表
    DROP TABLE table_name ;
    · 插入数据 INSERT
    INSERT INTO table_name ( field1, field2,...fieldN )  
                        VALUES ( value1, value2,...valueN ); #如果数据是字符型,要使用引号
    · 查询数据 SELECT FROM
    SELECT column_name,column_name
    FROM table_name
    [WHERE Clause]
    [LIMIT N][ OFFSET M]
    备注:
    查询语句中可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件;SELECT 命令可以读取一条或者多条记录;
    星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据;
    WHERE 语句来包含任何条件;
    LIMIT 属性来设定返回的记录数;
    OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
     
    · 修改或更新数据 UPDATE

    UPDATE table_name SET field1=new-value1, field2=new-value2
    [WHERE Clause]

    · 删除 DELETE

    DELETE FROM table_name 
    [WHERE Clause]
    · LIKE语句
    SELECT field1, field2,...fieldN 
    FROM table_name
    WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
    #LIKE 通常与 % 一同使用,类似于一个元字符的搜索。

    · UNION连接两个以上SELECT语句的结果到一个集合中
    SELECT expression1, expression2, ... expression_n
    FROM tables
    [WHERE conditions]
    UNION [ALL | DISTINCT]
    SELECT expression1, expression2, ... expression_n
    FROM tables
    [WHERE conditions];
    #DISTINCT可选,表示删除集合中重复的数据,但默认情况下UNION会自动删除重复的。ALL可选,保留重复数据
     
    · 排序 ORDER BY
    SELECT field1, field2,...fieldN table_name1, table_name2...
    ORDER BY field1, [field2...] [ASC [DESC]]

    #可以设定多个字段来排序;ASC/DESC控制升序/降序

    · 分组 GROUP BY
    SELECT column_name, function(column_name)
    FROM table_name
    WHERE column_name operator value
    GROUP BY column_name;
    #在分组的列上可以使用COUNT, SUM, AVG等函数
     
    · JOIN实现多表连接和查询
    INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。

    SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;
    LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
     
     
     
     
     
     
    RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
     
    2 进阶
    · MySQL事务
    用于处理操作量大,复杂度高的数据;
    事务是一系列操作语句;
    - 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
    - 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
    - 事务用来管理 insert,update,delete 语句
    - 一般来说,事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。
     
    MYSQL 事务处理主要有两种方法:
    1)用 BEGIN, ROLLBACK, COMMIT来实现
    - BEGIN 开始一个事务
    - ROLLBACK 事务回滚
    - COMMIT 事务确认
    2)直接用 SET 来改变 MySQL 的自动提交模式:
    - SET AUTOCOMMIT=0 禁止自动提交
    - SET AUTOCOMMIT=1 开启自动提交
     
     

  • 相关阅读:
    Fetch the result from result set
    Variable shadowing
    What is Servlet Container
    What is a servletcontext
    Inner Class
    Java中HashMap和TreeMap的区别深入理解
    枚举类
    (转载) 安卓开发学习笔记
    【C和C++】停车场系统
    【算法】常用的排序方法
  • 原文地址:https://www.cnblogs.com/geo-will/p/9534422.html
Copyright © 2011-2022 走看看