Mysql基本命令汇总

作为学习的积累和汇总,将mysql的命令全部整理一下;

1 . mysql基本命令

//登陆
mysql -hlocalhost -uroot -p
//键入密码

//具体命令
mysql -host=localhost -user=root -port=3306 
//键入密码

//退出
exit;
quit;

2 . 数据库基本操作

//设置字符集
set names gbk;

//设置结束符
delimiter ;     //以分号结束
delimiter !    //以!结束

//显示所有的字符集名称
show charset;

//显示所有可用的排序
show collation;

//显示当前数据库所有的数据库
show databases;

//显示当前数据库中所有的数据表
show tables;

//进入某个数据库
use tables;   //进入tables数据库

//数据库备份
//mysqldump  -h要备份的数据库所在的服务器  -u用户名  -p  数据库名 >  完整目标文件名
mysqldump -hlocalhost -uroot -p tables > /alidata/www/test.sql;

//数据库恢复
//mysql -h要备份的数据库所在的服务器 -u用户名 -p  目标数据库名 <  备份数据文件名
mysql -hlocalhost -uroot -p tables < /alidata/www/test.sql;

//文件导入
//load  data  infile  ‘完整的数据文件路径’  into  table 表名;
//说明:
//1,这种形式能够将某种“整齐的数据”的文本文件中数据,插入到一个表中
//2,前提是:该表的结构,跟该整齐数据的数据项能够“吻合”
LOAD DATA INFILE /alidata/www/index.txt INTO TABLE test;

3 . 表操作

3 . 1创建表
//语法 1
//create  table 【if  not  exists】 表名 (字段列表,【索引或约束列表】)【表选项列表】;
CREATE TABLE test(
   -> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> title VARCHAR(100) NOT NULL,
   -> author VARCHAR(40) NOT NULL,
   -> date DATE,
   -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;



//语法 2
//create  table 【if  not  exists】 表名 (
//       字段1,字段2,字段3,.....
//        【索引或约束1,索引或约束2,索引或约束3,......】
//         )【表选项1,表选项2,表选项3,.......】;
CREATE TABLE test(
   -> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> title VARCHAR(100) NOT NULL,
   -> author VARCHAR(40) NOT NULL,
   -> date DATE,
   -> PRIMARY KEY ( id ),
   -> KEY (date),
   -> )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '测试表' ;
3 . 2修改表

基本形式: alter table 表名 【增 | 删 | 改】 【字段或索引】

//添加字段:alter table 表名 add [column] 新字段名 字段类型 [字段属性列表];
ALTER TABLE test ADD age tinyint(1);

//修改字段(并可改名):alter table 表名 change [column] 旧字段名 新字段名 新字段类型 [新字段属性列表];
ALTER TABLE test CHANGE name title CHAR(20);

//修改字段(只改属性):alter table 表名 modify [column] 字段名 新字段类型 [新字段属性列表];
//修改字段名:没有单纯修改字段名这个功能!
ALTER TABLE test MODIFY title varchar(50);

//删除字段:alter table 表名 drop [column] 字段名;
ALTER TABLE test DROP date;

//添加普通索引:alter table 表名 add key [索引名] (字段名1[,字段名2,...]);
ALTER TABLE test ADD KEY unique key(title);

//添加唯一索引(约束):alter table 表名 add unique key (字段名1[,字段名2,...]);
ALTER TABLE test ADD name ADD UNIQUE KEY(title,name);

//添加主键索引(约束):alter table 表名 add primary key (字段名1[,字段名2,...]);
ALTER TABLE test ADD PRIMARY KEY(id,date);

//添加外键索引(约束):alter table 表名1 add foreign key (字段1,[,字段名2,...]) references 表名2(字段1,[,字段名2,...]);
ALTER TABLE test1 ADD FOREITN KEY(id) REFERENCES test2 (t_id);

//添加字段默认值(约束):alter table 表名 alter [column] 字段名 set default 默认值;
ALTER TABLE test ALTER age SET DEFAULT 18;

//删除字段默认值(约束):alter table 表名 alter [column] 字段名 drop default;
ALTER TABLE test ALTER age DROP DEFAULT;

//删除主键:alter table 表名 drop primay key;
//每一个表最多只能有一个主键
ALTER TABLE test DROP PRIMART KEY;

//删除外键:alter table 表名 drop foreign key 外键名;
ALTER TABLE test DROP FOREIGN KEY t_id;

//删除索引:alter table 表名 drop key 索引名;
ALTER TABLE test DROP KEY date;

//修改表选项:alter table 表名 选项名1=选项值1,选项名2=选项值
2,...;
ALTER TABLE test CHARSET=uft8mb64,ENGINE=innodb;
3 . 4删除表
//删除
DROP TABLE table_name ;
3 . 5表的其他相关语句
//显示某表的结构:
 desc 表名; 或:describe 表名;

//显示某表的创建语句:
show create table 表名;

//重命名表:
rename table 旧表名 to 新表名;

//从已有表复制表结构:
create table [if not exists] 新表名 like 原表名;

//创建索引:
create [unique | fulltext] index 索引名 on 表名(字段名1[,字段名2,...]);
//这里省略unique或fulltext,那就是普通索引。实际上此创建索引语句,会在系统内部映射为一条“alter table”的添加索引语句

//删除索引:
drop index 索引名 on 表名;
//实际上,此语句同样被映射为一条“alter table”的删除索引语句。

4 . 视图操作

//创建
//create  view  视图名 【(字段名1,字段名2,字段名3,....)】  as  select语句.... ;
CREATE VIEW test1(id,name,age) AS SELECT id,name,age FORM user;

//修改
//alter  view  视图名  【(字段名1,字段名2,字段名3,....)】  as  select语句.... ;
ALTER VIEW test2(id,name,age) AS SELECT id,name,age FORM user;

//删除
//drop  view  视图名;
DROP VIEW test1;

5 . 数据操作

5 . 4查询数据
//语法
//select [all | distinct] 字段或表达式列表 
//      [from子句] 
//      [where子句] 
//      [group by子句] 
//      [having子句] 
//      [order by子句] 
//      [limit子句];


//简单查询
select pro_id, pro_name, price from product  where  chandi=’北京’  order by  price  desc;

//联合查询
//select  XX1,  XX2,  ....  from   表1  【连接方式】 join 表2  【连接条件】  where ........
SELECT * FFROM user LERT JOIN addr ON user.addr_id = addr.id WHERE statur = 1;

//子查询
//select  字段或表达式或(子查询)  from  表名 或 (子查询)  as  别名   where  字段  运算符  数据或(子查询) group  by  xxx having 字段  运算符  数据或(子查询)
select  *  from  product  where  price > (
select  max(price)  from  product  where  pinpai = ‘联想’
);
5 . 2写入数据
//形式1:
//insert [into] 表名 [(字段名1,字段名2,....)] values (值表达式1,值表达式2,....), (.....), ....;
INSERT INTO test (id,name,age,class) VALUES (2,'HOVER',18,3),(3,'TOM',19,4);

//形式2:
//replace [into] 表名 [(字段名1,字段名2,....)] values (值表达式1,值表达式2,....), (.....), ....;
REPLACE INTO test (id,name,age,class) VALUES (2,'HOVER',18,3),(3,'TOM',19,4);

//形式3:
//insert [into] 表名 [(字段名1,字段名2,....)] select 字段名1,字段名2,.... from 其他表名;
INSERT INTO test (name,age,class) SELECT name,age,class FROM class;
//这种方式也可以用来在一个表中复制大量的数据,不过能不有自增型的主键;

//形式4:
//insert [into] 表名 set 字段名1=值表达式1,字段名2=值表达式2,....;
INSERT INTO test SET name='jome',age=18,class=3;
5 . 3更新数据
//update  表名 set  字段1=新值1,字段2=新值2,......  【where筛选条件】 【order by排序设定】 【limit 数量限定】;
UPDATE test SET name='test' WHERE name='' LIMIT 10;
5 . 4删除数据
//delete  from  表名  【where筛选条件】 【order by排序设定】 【limit 数量限定】;
DELETE FROM shop_cart WHERE user_id = 34 LIMIT 3;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值