TOP

MySQL Base(一)
2017-10-11 13:09:32 】 浏览:10163
Tags:MySQL Base


/* 连接与断开服务器 */
mysql -h 地址 -P 端口 -u 用户名 -p 密码
---> input pwd

 /* 数据库存贮引擎 */
    InnoDB :
        1) 具有提交、回滚和奔溃恢复及事务处理能力(ACID)
   2) 能处理大数据量
   3) 支持外键约束、关联查询

    MyISAM :
  1) 支持大文件、大字段,BLOB 和 TEXT 可以被索引
       2) 有较高的插入、查询速度

 
/* 数据库操作 */
-- 查看已有库
      SHOW DATABASES;
  -- 创建数据库
        CREATE DATABASE [if not exists] dbName options;
        USE dbName;
     SHOW TABLES;
     DROP DATABASE dbName;  //删除数据库

 

/* 数据表操作 */

-- ----------------------------
-- Table structure for leave_message_topic, design by yaok
-- ----------------------------
DROP TABLE IF EXISTS `leave_message_topic`;
CREATE TABLE `leave_message_topic` (
  `topic_id` varchar(64) NOT NULL COMMENT '留言主题id',
  `topic_name` varchar(64) CHARACTER SET utf8mb4 NOT NULL COMMENT '主题名称',
  `topic_context` text CHARACTER SET utf8mb4 COMMENT '主题内容',
  `sender` varchar(64) NOT NULL COMMENT '发送人ID',
  `sender_name` varchar(200) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '发送人名称',    -- 可以省略,一般通过userId查找name
  `is_show` varchar(32) DEFAULT 'SHOW' COMMENT '是否展示(展示 SHOW,隐藏 HIDE)',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `delete_flag` int(1) DEFAULT '0' COMMENT '删除标志(0:正常1:删除)',
  PRIMARY KEY (`topic_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户留言主题表';


-- 查看表
  DESC leave_message_topic;

 --添加/修改字段
    ALTER TABLE `risk_special_list`
        ADD COLUMN `updateDesc` VARCHAR(50) NULL COMMENT `修改原因` AFTER `updateByType`,    //添加字段
        CHANGE `valid` `valid` TINYINT(1) DEFAULT 1 NOT NULL COMMENT `数据状态 (0:无效 1:有效)`;   //修改字段

 

/* 数据操作 (DML) */

/* 数据操作 */
   --
     INSERT [INTO] tbName [(字段列表)] VALUES (值列表)[, (值列表), ...]
        -- 如果要插入的值列表包含所有字段并且顺序一致,则可以省略字段列表。
        -- 可同时插入多条数据记录!
          REPLACEINSERT 完全一样,可互换。
          INSERT [INTO] tbName SET 字段名=[, 字段名=值, ...]
        -- 多表插入、复制
             INSERT INTO db1_name (field1, field2)  SELECT field1, field2 FROM db2_name  //适合二张表
             INSERT INTO a (field1, field2)  SELECT * FROM(SELECT b.f1, c.f2 FROM b JOIN c) AS tb   //适合多张表
   --
    SELECT colName FROM tbName
        -- 可来自多个表的多个字段
        -- 其他子句可以不使用
        -- 字段列表可以用*代替,表示所有字段
   --
      DELETE FROM tbName
           没有条件子句,则会删除全部
       -- delete不能进行多表删除,可以做联级删除 (关联后删除)
            delete t1,t2 from t1,t2 where 条件
TRUNCATE TABLE tbName; //彻底删除记录,不能恢复
-- UPDATE tbName SET 字段名=新值[, 字段名=新值] [更新条件] -- 多表关联更新 UPDATE flat_community, city_business_area SET flat_community.districtId = city_business_area.districtId WHERE flat_community.businessId = city_business_area.id AND city_business_area.id = 123
 
 

/* 连接查询(join) */

  将多个表的字段进行连接,可以指定连接条件。
  -- 内连接(inner join) 
      - 只有数据存在时才能发送连接。即连接结果不能出现空行。
     on 表示连接条件。其条件表达式与where类似。也可以省略条件(表示条件永远为真)

  -- 外连接(outer join)     
      - 左外连接 left join : 如果数据不存在,左表记录会出现,而右表为null填充
      - 右外连接 right join :如果数据不存在,右表记录会出现,而左表为null填充
  -- 自然连接(natural join)
      -自动判断连接条件完成连接。
    相当于省略了using,会自动查找相同字段名。
    natural join
    natural left join
    natural right join

 

/* 数据类型 */
https://dev.mysql.com/doc/refman/5.7/en/data-types.html

 

/* 列属性、约束 */
-- 主键
- 能唯一标识记录的字段,可以作为主键
- 一个表只能有一个主键
- 主键具有唯一性
- 声明字段时,用 primary key 标识
也可以在字段列表之后声明
ex:create table tab ( id int, stu varchar(10), primary key (id));
- 主键字段的值不能为n
MySQL Base(一) https://www.cppentry.com/bencandy.php?fid=57&id=136462

首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C# 乐观锁、悲观锁、共享锁、排它.. 下一篇oracle temporary table