mysql常用命令杂记

查看版本

mysqladmin -uRootmaster -pRootmaster@777 version
select version()

  

查看Log_bin是否开启

show variables like 'log_bin';

 

创建表

create table students ( student_id int unsigned, name varchar(39), sex char(1), birth date, primary key (student_id));
create table tb_emp1(id int(11), name varchar(25),deptId int(11), salary float);

create table member(id bigint auto_increment primary key,
name varchar(20),sex tinyint not null default '0'
)engine=myisam default charset=utf8 auto_increment=1;

create table tb_member1(
id bigint primary key auto_increment ,
name varchar(20),
sex tinyint not null default '0'
)ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


create table tb_member2 like tb_member1;
DROP table IF EXISTS tb_member;
create table tb_member(
id bigint primary key auto_increment ,
name varchar(20),
sex tinyint not null default '0'
)ENGINE=MERGE UNION=(tb_member1,tb_member2) INSERT_METHOD=LAST CHARSET=utf8 AUTO_INCREMENT=1 ;

 


设置主键:
create table tb_emp2 (id int(11) primary key, name varchar(25), depId int(11), salary float);
create table tb_emp3 ( id int(11),name varchar(25),depId int(11), salary float, primary key(id));
create table tb_emp4 ( name varchar(25), deptId int(11), salary FLOAT, primary key(name,deptId));

 

 

外键约束

定义表tb_emp5,让他的建deptId 作为外键关联到tb_dept1的主键id,

create table tb_dept1( id int(11) primary key, name varchar(22) not null, location varchar(50) );
create table tb_emp5 ( id int(11) primary key, name varchar(25), deptId int(11), salary float, constraint fk_emp_dept1 foreign key(deptId) references tb_dept1(id));

  

唯一行约束

create table tb_dept2 ( id int(11) primary key, name varchar(22) unique, location varchar(50));
create table tb_dept3 ( id int(11) primary key, name varchar(22), location varchar(50), constraint sth unique(name));

  

默认值约束

create table tb_emp7 ( id int(11) primary key, name varchar(25) not null, deptId int(11) default 1111, salary float);

  

设置表的属性值自动增加
一个表只能有一个字段设置

AUTO_INCREMENT,可以是任意整数类型(TINYINT,SMALLIN,INT,BIGINT)
create table tb_emp8( id int(11) primary key auto_increment, name varchar(25) not null, deptId int(11), salary float);
insert into tb_emp8 (name,salary) values('lucy',1000),('lura',1200),('kevin',1500);

  

修改表数据

1.修改表名
alter table tb_dept3 rename tb_deptment3;
2.修改表字段
alter table tb_dept1 modify name varchar(33);
3.修改字段名
alter table tb_dept1 change location loc varchar(50);
4.修改字段名为location,并将数据类型改变为varchar(60);
alter table tb_dept1 change loc location varchar(60);

  

添加字段

alter table tb_dept1 add managerId int(10);
alter table tb_dept1 add column1 varchar(12) not null;
在表的第一类添加一个字段
alter table tb_dept1 add column2 int(11) first;
在表的指定列之后添加一个字段
alter table tb_dept1 add column3 int(11) after name;

  

删除字段

删除字段
alter table tb_dept1 drop column2;
修改字段位置
alter table tb_dept1 modify column1 varchar(12) first;
将字段放到指定列之后
alter table tb_dept1 modify column1 varchar(12) after location;

  

删除表

drop table if exists tb_dept2;
alter table tb_emp drop foreign key fk_emp_dept;  # 如有外键

  

 

 

 

插入数据

insert into students(student_id,name,sex,birth) value (1,'steven','1','1991-01-01');

insert into member(name,sex) select name,sex from member;
insert into tb_member2(id,name,sex) select id,name,sex from member where id%2=1;

  

首次安装 更改root用户密码

/data/app/mysql-3307/bin/mysqladmin -uroot password '123456'

  

查看默认引擎

show variables like '%storage_engine%';
show create table tb_dept\G

  

查询:

select f_id,f_name from fruits where f_name='apple';
小于
select f_name,f_price from fruits where f_price < 10;
带in
select s_id, f_name,f_price from fruits  where s_id in (101,2) order by f_name;
select s_id, f_name,f_price from fruits  where s_id in (101,102) order by f_name;

between and
select f_name,f_price from fruits where f_price between 2.00 and 10.20;
not between and
select f_name,f_price from fruits where f_price not between 2.00 and 10.20;

  

like查询

select * from fruits where f_name like 'b%';
select * from fruits where f_name like 'b%y';

_ 下划线 一次匹配一个
select * from fruits where f_name like '____y';

  

 

查询空值:

select c_id,c_name,c_email from customers where c_email is null;
select * from customers where c_email is not null;

  

and查询:

select f_id,f_price,f_name from fruits where s_id='101' and f_price>8;
select f_id, f_price, f_name from fruits where s_id in('101','102') and f_price >= 5 and f_name ='apple';

 

or查询:

select s_id,f_name,f_price from fruits where s_id=101 or s_id=102;

  

查询结果不重复:

select distinct s_id from fruits ;

  

查询结果排序:

查询结果排序
select f_name from fruits order by f_name;
多列排序
select f_name, f_price from fruits order by f_name ,f_price;
指定排序方向
select f_name,f_price from fruits order by f_price desc;
先将价格降序 在按名字升序
select f_price,f_name from fruits order by f_price desc, f_name;

 

lower_case_table_names=1 使 Linux 环境下 MySQL 忽略表名大小写,否则使用 MyCAT 的时候会提示找不到表的错误

  

 

posted @ 2019-06-03 17:35  Mr-Lee-long  阅读(212)  评论(0编辑  收藏  举报