mysql 常用命令技巧大全
来源:互联网 发布:阿里云邮箱app 编辑:程序博客网 时间:2024/06/03 13:49
#删除数据库DROP DATABASE IF EXISTS learn;#创建数据库CREATE DATABASE learn CHARSET utf8;#选择数据库USE learn;#删除数据库表DROP TABLE IF EXISTS tb1;DROP TABLE IF EXISTS tb2;DROP TABLE IF EXISTS tb3;#创建表CREATE TABLE tb1(id INT(11) AUTO_INCREMENT NOT NULL COMMENT '主键',nickname VARCHAR(50) COMMENT '昵称',create_time DATETIME NOT NULL COMMENT '创建时间',update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY(id));#存在则不执行创建表CREATE TABLE IF NOT EXISTS tb1(id INT(11) UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '主键',#UNSIGNED 不使用负数,扩大正数上限nickname VARCHAR(50) COMMENT '昵称',create_time DATETIME NOT NULL COMMENT '创建时间',update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY(id)#指定主键);CREATE TABLE IF NOT EXISTS tb2(id INT(11) UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '主键',#UNSIGNED 不使用负数,扩大正数上限username VARCHAR(50) NOT NULL COMMENT '账号',pass_word VARCHAR(50) NOT NULL COMMENT '密码',create_time DATETIME NOT NULL COMMENT '创建时间',update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY(id)#指定主键);#新增字段ALTER TABLE tb1 ADD COLUMN user_role INT(2) COMMENT '用户角色';#COLUMN可省略#修改以存在列ALTER TABLE tb1 MODIFY user_role INT(2) DEFAULT '0';#可以增加字符类型的列宽度#可以增加数值类型的宽度和精度#只有空列或空表才可以减少列宽度#空列才可以改变数据类型#改变列的默认值只会影响以后的操作#新增字段ALTER TABLE tb1 ADD COLUMN test1 INT(2) COMMENT '测试删除列';#删除字段 COLUMN可省略ALTER TABLE tb1 DROP COLUMN test1;#插入数据INSERT INTO tb1 (id,nickname,create_time,user_role) VALUES (1,'张三',NOW(),1);INSERT INTO tb1 (id,nickname,create_time,user_role) VALUES (3,'王五',NOW(),1);INSERT INTO tb1 (id,nickname,create_time,user_role) VALUES (4,'牛六',NOW(),1);INSERT INTO tb1 (id,nickname,create_time,user_role) VALUES (5,'陈7',NOW(),2);INSERT INTO tb1 (id,nickname,create_time,user_role) VALUES (6,'陈8',NOW(),2);INSERT INTO tb1 (id,nickname,create_time,user_role) VALUES (7,'陈9',NOW(),2);INSERT INTO tb1 (id,nickname,create_time,user_role) VALUES (8,'赵10',NOW(),3);INSERT INTO tb1 (id,nickname,create_time,user_role) VALUES (9,'赵11',NOW(),4);INSERT INTO tb1 (id,nickname,create_time,user_role) VALUES (10,'赵12',NOW(),4);INSERT INTO tb2 (id,username,pass_word,create_time) VALUES (1,'111','111',NOW());INSERT INTO tb2 (id,username,pass_word,create_time) VALUES (2,'222','222',NOW());INSERT INTO tb2 (id,username,pass_word,create_time) VALUES (3,'333','333',NOW());INSERT INTO tb2 (id,username,pass_word,create_time) VALUES (4,'444','444',NOW());INSERT INTO tb2 (id,username,pass_word,create_time) VALUES (5,'555','555',NOW());INSERT INTO tb2 (id,username,pass_word,create_time) VALUES (7,'777','777',NOW());INSERT INTO tb2 (id,username,pass_word,create_time) VALUES (8,'888','888',NOW());INSERT INTO tb2 (id,username,pass_word,create_time) VALUES (9,'999','999',NOW());INSERT INTO tb2 (id,username,pass_word,create_time) VALUES (10,'101010','101010',NOW());CREATE TABLE IF NOT EXISTS tb3(id INT(11) UNSIGNED AUTO_INCREMENT NOT NULL COMMENT '主键',#UNSIGNED 不使用负数,扩大正数上限username VARCHAR(50) NOT NULL COMMENT '账号',pass_word VARCHAR(50) NOT NULL COMMENT '密码',create_time DATETIME NOT NULL COMMENT '创建时间',update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY(id)#指定主键);#使用子查询复制表数据到另一个表INSERT INTO tb3 (id,username,pass_word,create_time,update_time) SELECT id,username,pass_word,create_time,update_time FROM tb2;#更新表UPDATE tb1 SET nickname='张三昵称被更新' WHERE id=1;#删除表行数据DELETE FROM tb3 WHERE id=1;#创建索引#添加PRIMARY KEY(主键索引) #ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) #添加UNIQUE(唯一索引) #ALTER TABLE `table_name` ADD UNIQUE (`column`) #添加INDEX(普通索引) #ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) #添加FULLTEXT(全文索引) #ALTER TABLE `table_name` ADD FULLTEXT ( `column`) #添加多列索引 #ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )#删除索引#DROP INDEX index_name ON talbe_name#ALTER TABLE table_name DROP INDEX index_name#ALTER TABLE table_name DROP PRIMARY KEY#视图SELECT * FROM tb1GROUP BY user_role;#创建视图CREATE VIEW group_tb1 AS SELECT * FROM tb1GROUP BY user_role;#使用视图SELECT * FROM group_tb1;#内连接(最常用)SELECT t1.id,t1.nickname,t1.user_role,t1.create_time,t2.username FROM tb1 t1INNER JOIN tb2 t2ON t1.id=t2.id;#左外连接SELECT t1.id,t1.nickname,t1.user_role,t1.create_time,t2.username FROM tb1 t1LEFT JOIN tb2 t2ON t1.id=t2.id;#右外连接SELECT t1.id,t1.nickname,t1.user_role,t1.create_time,t2.username FROM tb1 t1RIGHT JOIN tb2 t2ON t1.id=t2.id;#全外连接(mysql不支持)#运算符 + - * / ()SELECT 1+1+t1.user_role FROM tb1 t1;#字符串连接SELECT CONCAT_WS('-',t1.id,t1.nickname) FROM tb1 t1;#条件限制语句 where#distinct 结果集去重复 升序SELECT DISTINCT t1.user_role FROM tb1 t1;SELECT DISTINCT t1.user_role ,t1.create_time FROM tb1 t1;#in关键字SELECT * FROM tb1 t1 WHERE t1.user_role IN(4,3);#使用 exists代替inSELECT * FROM tb1 t1 WHERE EXISTS(SELECT * FROM tb1 t2 WHERE t2.id=t1.id AND t2.user_role IN(4,3));#使用 between and 代替in (必须由小到大)SELECT * FROM tb1 t1 WHERE t1.user_role BETWEEN 3 AND 4;#比较符 > < >= <= = 不等于 != <> ^= #使用比较符代替inSELECT * FROM tb1 t1 WHERE t1.user_role >=3 AND t1.user_role <=4;#模糊搜索 like % 不确定多个字符 _ 不确定单个字符 搜索 % _时 要转义 \_ \%SELECT * FROM tb1 t1 WHERE t1.nickname LIKE '%陈%';#排序 desc 降序 升序SELECT * FROM tb1 t1 ORDER BY t1.user_role DESC;#多个排序级别SELECT * FROM tb1 t1 ORDER BY t1.user_role DESC ,t1.create_time ASC;#分组函数 1 2017-08-11 22:13:46SELECT * FROM tb1 t1 ORDER BY t1.create_time DESC;SELECT COUNT(id),t1.* FROM tb1 t1 GROUP BY t1.user_role; #查询每组最新的记录 #错误写法,默认显示第一次插入的行 即升序SELECT * FROM tb1 t1 GROUP BY t1.user_role ORDER BY t1.create_time DESC; #错误写法,子查询的排序不能起效SELECT * FROM (SELECT * FROM tb1 t1 ORDER BY t1.create_time )tmp GROUP BY tmp.user_role;#正确写法 获取最新的一条或n条SELECT * FROM tb1 t1WHERE (SELECT COUNT(*) FROM tb1 t2#分组字段连接WHERE t2.user_role=t1.user_role#排序字段比较AND t2.create_time >t1.create_time)<2ORDER BY t1.create_time DESC#计数 count()SELECT COUNT(*) FROM tb1 t1;SELECT COUNT(*) FROM tb1 t1 GROUP BY t1.user_role;#平均 avg()SELECT AVG(t1.user_role) FROM tb1 t1;#总和 sum()SELECT SUM(t1.user_role) FROM tb1 t1;#最小 min()SELECT MIN(t1.user_role) FROM tb1 t1;#最大 max()SELECT MAX(t1.user_role) FROM tb1 t1;#分组限制语句 havingSELECT COUNT(id),t1.* FROM tb1 t1GROUP BY t1.user_roleHAVING COUNT(t1.user_role) <=2;#子查询 可用在 select 子句 from 子句 where 子句 等等 SELECT (SELECT COUNT(*) FROM tb1 t1) FROM tb1;#临时表SELECT * FROM (SELECT * FROM tb1 t1) tmp#临时表分页SELECT * FROM (SELECT * FROM tb1 t1 LIMIT 0,5 ) tmp
阅读全文
0 0
- mysql 常用命令技巧大全
- Mysql常用命令大全
- mysql 常用命令大全
- Mysql常用命令大全
- Mysql 常用命令大全
- MYSQL操作常用命令大全
- MySql常用命令大全
- MySQL常用命令大全
- Mysql常用命令大全
- MySQL常用命令大全
- Mysql常用命令大全
- MySQL常用命令大全
- Mysql常用命令大全
- Mysql 常用命令大全
- MySQL数据库常用命令大全
- MySql 常用命令大全
- mysql控制台常用命令大全
- mysql常用命令大全
- BZOJ 4756 Promotion Counting(线段树合并 || dfs)
- 给自己一次警告——NSNotification
- Camtasia 9全套视频入门到精通
- 图论--网络流初步(最大流,增广路)
- 如何用svn新建属于自己的分支
- mysql 常用命令技巧大全
- 源码编译形式安装mysql
- 设计模式之策略模式--慕课网笔记
- 魔力手环--网易2017春招实习笔试编程题
- HDU-6096 String(字典树+线段树扫描线)
- Matplotlib折线图
- 关于MongoDB中,find()和findOne()的区别
- 使用soci操作数据库
- Mysql索引的优化分析-索引的简介