天空之城且行且思乐山乐水

mysql常用语句

2019-08-01  本文已影响25人  小石读史

1、创建表。

例如创建表user_base,并设置主键id自增,设置字段type为索引,设置`phone`和`type`为联合唯一索引

CREATE TABLE `user_base` (

  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',

  `sex` tinyint(4) unsigned DEFAULT '0' COMMENT '性别 0未知 1男 2女',

  `cn_name` varchar(255) DEFAULT '' COMMENT '中文名',

  `en_name` varchar(255) DEFAULT '' COMMENT '英文名',

  `phone` varchar(50) DEFAULT '' COMMENT '手机号',

  `password` varchar(255) NOT NULL DEFAULT 'e10adc349ba59abbg56e057f20d983e' COMMENT '密码',

  `bir_date` date DEFAULT NULL COMMENT '出生日期',

  `portrait` varchar(255) DEFAULT '' COMMENT '头像',

  `is_use` tinyint(4) unsigned NOT NULL DEFAULT '1' COMMENT '是否启用  0代表不可用  默认1可用',

  `is_del` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '是否删除  0代表可用  未删除  1代表已删除 不可用 默认0',

  `type` tinyint(4) unsigned DEFAULT NULL COMMENT '用户类型 1 管理员 2 老师 3 学生 ',

  `attach` varchar(2000) DEFAULT '{}' COMMENT '拓展信息',

  `last_login_time` timestamp NULL DEFAULT NULL COMMENT '最近登录时间',

  `creator` varchar(255) DEFAULT 'system' COMMENT '创建人姓名',

  `updater` varchar(255) DEFAULT 'system' COMMENT '修改人姓名',

  `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

  `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最近一次修改时间',

  `versions` int(11) unsigned DEFAULT '0' COMMENT '数据版本号',

  PRIMARY KEY (`id`) USING BTREE,

  UNIQUE KEY `uniq_phone_type` (`phone`,`type`) USING BTREE,

  KEY `idx_type` (`type`) USING BTREE

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='用户基础信息表';

2、清空表数据

清空表数据有delete from 表名;  和  truncate table 表名;两种方法

delete from 表名; 清空表数据后,再次新增数据id会接着以前的id增长

 truncate table 表名;清空表数据后,再次新增数据id会从1开始

3、新增字段

ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST | AFTER 已存在字段名];

案例:在表user_base中的portrait字段后新增is_VIP字段,注释是“是否是会员,默认0不是;1是;”

ALTER TABLE user_base ADD COLUMN `is_VIP` tinyint(4) UNSIGNED DEFAULT '0' COMMENT '是否是会员,默认0不是;1是;' AFTER `portrait`;

4、新增索引

PRIMARY KEY(主键索引)

ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

UNIQUE(唯一索引)

ALTER TABLE `table_name` ADD UNIQUE (`column`)

例如在表user_base中将cn_name设置为唯一索引。:ALTER TABLE `user_base` ADD UNIQUE (`cn_name`);

INDEX(普通索引)

mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

例如在表user_base中将is_VIP设置为索引增加查询效率:ALTER TABLE `user_base` ADD INDEX index_isVIP ( `is_VIP` )

5、将查询结果插入到另外一张表

INSERT INTO 表名1(字段列表1) SELECT 字段列表2 FROM 表名2 WHERE 查询条件;

案例:

INSERT INTO `channel_info` (

`name`,`source_id`,`parent_id`,`trial_time`,`auditing_status`,`node`,`type`,`creator`,`create_time`

) SELECT t1.cn_name NAME,t1.id source_id,t3.id parent_id,t1.create_time `trial_time`,3 `auditing_status`,2 `node`,5 `type`,'yql' `creator`,now() `create_time`

FROM

`user` t1

JOIN `user_saler` t2 ON t1.id = t2.id

JOIN `channel_info` t3 ON t2.agc_id = t3.source_id;

6、关联表更新

案例:

上一篇 下一篇

猜你喜欢

热点阅读