mysql命令大全一

mysql -u root -p;
create database qa;
show databases;
use qa;

create table results(
id int not null auto_increment,
primary key (id));
)

alter table results add column test_suite varchar(255);
alter table results add column test_name varchar(255);
alter table results add column test_status varchar(255);

mysql> create user 'tom'@'%' identified by '111111';
Query OK, 0 rows affected (0.02 sec)

mysql> grant all privileges on *.* to 'tom'@'%';
Query OK, 0 rows affected (0.02 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
grant select,insert,update,deleteon *.* to test2@localhost identified by "abc";

mysql -h127.0.0.1 -P3306 -uroot -p

查看数据库字符集
show variables like 'character_set_database';
设置数据库字符集

create database test2 character set utf8;
create table my_test(
id int,
name varchar(20)
);

show databases;--查看所有数据库
退出命令exit, quit, q
> create database mydatabase charset utf8;
-- 查看数据库 有空格
show databases like 'my%';
%: 表示匹配多个
_: 表示匹配单个
show databases like ‘mydatabase\_%’
alter database mydatabase charset GBK;
drop database mydatabase;
创建学生表
create database mydb;
create table if not exists mydb.student(
Number varchar(10),
Name varchar(10),
Gender varchar(10),
Age int
)
charset UTF8;

create table class(

name varchar(10),
home varchar(10)

)
CHARSET=utf8;

show tables like 'class%';
describe class;
desc class;
show columns from student;
rename table student to my_student;
alter table my_student charset GBK;
alter table my_student add column ID int first;
alter table my_student modify Number char(10) after Name;
alter table my_student drop Age;

重命名: rename

修改表:alter

新增字段: add

重命名字段:modify

删除字段:drop

删除数据表操作
drop table class;

insert into my_student values('java01001','Anthony','male',23),('java01002','Lily','female',22);

insert into my_student(ID,Name,Gender,Age) value('java01003','Tom','male',23),('java01004','Lucy','female',22);

insert into my_student(Name,Gender,ID) value('张三','男','jave01005');

create table results(
id int not null auto_increment,
primary key(id),
test_suit varchar(255),
test_name varchar(255),
test_status varchar(10)

)
charset utf8;

update my_student set age=18 where name='Lucy';

delete from my_student where dender = 'male'

show character set;

show variables like 'character_set%';

use mydb;
create table my_int(
int_1 tinyint,
int_2 smallint,
int_3 int,
int_4 bigint

)charset utf8;

insert into my_int values(100,100,100,100);--ok
insert into my_int values('a','b','199',100);--no
insert into my_int values(255,10000,100000,100000000);


alter table my_int add int_5 tinyint unsigned;
insert into my_int values(10,10000,100000,100000000,255);

create table my_float(
f1 float,
f2 float(10,2),
f3 float(6,2)
)charset utf8;

show tables;

insert into my_float values(1000.12,1000.10,1000.10);
insert into my_float values(3e38,3.23e7,1234.56);
ERROR 1136 (21S01): Column count doesn't match value count at row 1

insert into my_float values(9999999999,99999999.99,9999.99);
--定点型
create table my_decimal(
f1 float(10.2),
d1 decimal(10,2)
)charset utf8;

insert into my_decimal values(12345678.90,12345678.90);
insert into my_decimal values(1234.123456,1234.123456);
insert into my_decimal values(9999999.99,99999999.99);

create table my_date(
d1 datetime,
d2 date,
d3 time,
d4 timestamp,
d5 year
)charset utf8;

insert into my_date values('2017-12-24 21:30:23','2017-12-24','21:30:23','2017-12-24','2017');
insert into my_date values('2017-12-24 21:30:23','2017-12-24','-21:30:23','2017-12-24','2017');

create table my_enum(
gender enum('男','女','保密')
)charset utf8;

insert into my_enum values('保密');
insert into my_enum values('男');
insert into my_enum value (1),(2);

create table my_set(
ball set ('足球','篮球','羽毛球','排球','乒乓球')

)charset utf8;

insert into my_set values('足球,羽毛球');
insert into my_set values(3);
select ball+0 from my_set;

create table my_class(
name varchar(20) not null,
class varchar(20)
)charset utf8;

insert into my_class values(null,'302');-- 报错
insert into my_class values('java01','301');

content
-- 创建教师表

create table my_teacher(
name varchar(20) not null comment '名称',
money decimal(10,2) not null comment '工资'
)charset utf8;

show create table my_teacher;

create table my_default(
name varchar(20) not null,
age tinyint unsigned default 0,
gender enum('男','女','保密') default '男'
)charset utf8;


insert into my_default (name) values('张三');
insert into my_default values ('李四',default,default);

-- 主键
create table my_prim1(
name varchar(20) not null comment '姓名',
number char(10) primary key not null comment '学号'
)charset utf8;

create table my_prim2(
number char(8) not null comment '学号',
course char(10) comment '课程代码',
score tinyint unsigned default 60 comment '成绩',
primary key (number,course)
)charset utf8;

create table my_prim3(
course char(10) not null comment '课程编号',
name varchar(10) not null comment '课程名称'
)charset utf8;

alter table my_prim3 add primary key (course);

insert into my_prim3 values('java01','Java');
insert into my_prim3 values('java01','Javaweb');-- 重复

alter table my_prim3 drop primary key;


create table my_auto(
id int auto_increment comment '自动增长',
name varchar(10) not null

)charset utf8;-- 报错

create table my_auto(
id varchar(10) primary key auto_increment comment '自动增长',
name varchar(10) not null

)charset utf8; -- int
create table my_auto(
id int primary key auto_increment comment '自动增长',
name varchar(10) not null auto_increment

)charset utf8;--唯一

create table my_auto(
id int primary key auto_increment comment '自动增长',
name varchar(10) not null

)charset utf8;

insert into my_auto(name) values('Tom');
insert into my_auto values(null,'Anthony');
insert into my_auto values (default ,'jim');

show create table my_auto;
alter table my_auto auto_increment=10;

insert into my_auto values(default,'Lucy');
alter table my_auto modify id int;

create table my_unique1(
number char(10) unique comment '学号,唯一,允许为空',
name varchar(20) not null
)charset utf8;

set names gbk;
insert into my_unique1 values(null,'Antony'),(18001,'张三'),(null,'Tom');
insert into my_unique1 values('18001','Bobo');
show create table my_unique1;
alter table my_unique1 drop index number;
CREATE TABLE `my_class1` (
`name` varchar(20) NOT NULL,
`class` varchar(20) DEFAULT NULL,
PRIMARY KEY (`name`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into my_class1 values('Java01','A101'),('Java02','A102');
insert into my_class1 values('Java02','B102');-- 冲突
insert into my_class1 values('Java02','B102') on duplicate key update class='B102';
replace into my_class1 values('Java01','A105');


create table my_unique2(
number char(10) not null comment '学号',
name varchar(20) not null,
unique key(number)
)charset utf8;

show create table my_unique2;

create table my_unique3(
id int primary key auto_increment,
number char(10) not null,
name varchar(20) not null
)charset utf8;

alter table my_unique3 add unique key(number);


create table my_name(
name varchar(20)
)charset utf8;

insert into my_name values ('A'),('B'),('C'),('D'),('E');
update my_name set name = 'Tom' limit 3;
update my_name set name = 'Jim' where name = 'Tom' limit 3;
insert into my_name values ('Tom'),('Anthony'),('Tom'),('Tom'),('Bobo');
delete from my_name where name = 'Tom' limit 5;


create table student(
id int(10) not null auto_increment primary key,
number char(10),
name varchar(20),
gender varchar(10)
)charset utf8;

insert into student values
(default ,'1801','Tom','male'),
(default,'1802','Anthony','male'),
(default,'1803','Lucy','female'),
(default,'1804','Lily','female');

show create table student;
delete from student;
show create table student;

truncate student;

-- 查询
select * from my_student;
insert into my_student values('java01002','Lily','female','21');-- 插入重复数据
select distinct * from my_student;
select id, name as 姓名,gender as 性别,age as 年龄 from my_student;
select id, name 姓名,gender 性别,age 年龄 from my_student;


1、登录数据库存
格式: mysql -h主机地址 -u用户名 -p用户密码–P端口 –D数据库–e “SQL 内容”

>mysql -uroot -p 数据库名称

mysql -uroot -p mydb

2 、修改密码

格式:mysqladmin -u用户名 -p旧密码 password 新密码

Mysqladmin -uroot -password ab12

注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

例2:再将root的密码改为djg345。

mysqladmin-uroot -pab12 password djg345

shell>mysql -u root -p

mysql> update user setpassword=password(”xueok654123″) where user=’root’;

Mysqladmin -uroot -p 123456 password 111111
Mysqladmin -uroot -p123456 password "111111";
在mysqld下面添加skip-grant-tables
use mysql;
update user set password=password("111111") where user='root';
flush privileges;

3.数据库备份
-- 备份数据库
D:mysqlmysql-5.6.24-win32in>mysqldump -u root -p mydb > mydb_bakup_20171221.sql
--创建数据库
D:mysqlmysql-5.6.24-win32in>mysqladmin -h localhost -u root -p create mydbbakup
--恢复数据库
mysql> use mydbbakup;
Database changed
方法一:mysql> source mydb_bakup_20171221.sql;
create database mall;
mysql> use mall;
Database changed
mysql> grant all privileges on *.* to 'root'@'%';
方法二:D:mysqlmysql-5.6.24-win32in>mysql -u root -p mall < mydb_bakup_20171221.sql
导入sql
use test
mysql> source D:/mysql/mysql-5.6.24-win32/bin/mydb_bakup_20171221.sql;

10、删除授权:

mysql> revoke all privilegeson *.* from root@”%”;

mysql> delete from user whereuser=”root” and host=”%”;

mysql> flush privileges;
11、显示当前mysql版本和当前日期

select version(),current_date;

查询时间:select now();

查询当前用户:select user();

查询数据库版本:select version();

查询当前使用的数据库:select database();
18、删除表

mysql>drop TABLE MYTABLE;


19、 清空表

mysql>delete from MYTABLE;


20、添加表字段

alter tabletable1 add transactor varchar(10) not Null;

alter tabletable1 add id int unsigned not Null auto_increment primary key


21、修改某个表的字段类型及指定为空或非空

>alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空];
>alter table 表名称 modify 字段名称 字段类型 [是否允许非空];

>alter table 表名称 modify 字段名称 字段类型 [是否允许非空];


22、如果要删除某一字段,可用命令:

ALTER TABLEmytable DROP 字段名;


23、添加唯一键

ALTER TABLE`test2` ADD UNIQUE ( `userid`)


24、修改主键

ALTER TABLE`test2` DROP PRIMARY KEY ,ADD PRIMARY KEY ( `id` )

alter tableversion_template drop primary key ,add primary key version,role,type);


25、增加索引

ALTER TABLE`test2` ADD INDEX ( `id` )

alter tabletable1 add index ind_id (id);

create indexind_id on table1 (id);

create uniqueindex ind_id on table1 (id);//建立唯一性索引


26、删除索引

drop indexidx_id on table1;

alter tabletable1 drop index ind_id;


27、重命名表:

alter table t1 rename t2;


28、增加一个字段:

alter tabletabelName add column fieldName dateType;


29、增加多个字段

alter tabletabelName add column fieldName1 dateType,add columns fieldName2 dateType;

多行命令输入:注意不能将单词断开;当插入或更改数据时,不能将字段的字符串展开到多行里,否则硬回车将被储存到数据中;

增加一个管理员帐户:grant all on *.* to user@localhost identified by"password";

每条语句输入完毕后要在末尾填加分号';',或者填加'g'也可以;


30、创建临时表:

create temporarytable zengchao(name varchar(10));


31、创建表是先判断表是否存在

create table ifnot exists students(……);

create table s_position(

id int not null auto_increment,
name varchar(20) not null default '经理',
description varchar(100),
primary key PK_position(id)

)charset='utf8';

ERROR 1067 (42000): Invalid default value for 'name'

后来在网上找到了解决方法:

SET NAMES GBK;

并且CREATE TABLE的末尾加上charset='utf8';像下面这样

CREATE TABLE user(

id int unsigned auto_increment key,

username varchar(20) not null unique,

password char(32) not null,

sex enum('保密','女','男') not null default '保密',

face varchar(50) not null,

regTime int unsigned not null

) charset='utf8';

create table demparment(
id int not null auto_increment,
name varchar(20) not null default '系统部',
description varchar(100),
primary key PK_deparment(id)
)charset='utf8';


create table depart_pos(
department_id int not null,
position_id int not null,
primary key PK_pepart_pos(department_id,position_id)
);
create table staffer(
id int not null auto_increment primary key,
name varchar(20) not null default '无名氏',
department_id int not null,
position_id int not null,
unique(department_id,position_id)
)charset='utf8';

32、从已经有的表中复制表的结构

create tabletable2 select * from table1 where 1<>1;

create table my_student_con select * from my_student where 1<>1;
33、复制表

create tabletable2 select * from table1;
create table my_student_bak select * from my_student;

34、对表重新命名

alter table table1 rename astable2;


35、修改列的类型

alter table table1 modify id intunsigned;//修改列id的类型为int unsigned

alter table table1 change id sidint unsigned;//修改列id的名字为sid,而且把属性修改为int unsigned


36、联合字符或者多个列(将列id与":"和列name和"="连接)

select concat(id,':',name,'=')from students;


37、limit(选出10到20条)<第一个记录集的编号是0>

select * from students order byid limit 9,10;

select * from my_student order by ID limit 2,4;

38、MySQL会使用索引的操作符号

<,<=,>=,>,=,between,in,不带%或者_开头的like


39 、存储过程

1)查看存储过程

select name from mysql.proc where db=’数据库名’;

或者

select routine_name frominformation_schema.routines where routine_schema='数据库名';

或者

show procedure status where db='数据库名';


40、MySQL存储过程的修改

ALTER PROCEDURE

更改用CREATEPROCEDURE 建立的预先指定的存储过程,其不会影响相关存储过程或存储功能。


41、MySQL存储过程的删除

删除一个存储过程比较简单,和删除表一样:

DROP PROCEDURE

从MySQL的表格中删除一个或多个存储过程。
mysql> use test;
Database changed
mysql> show procedure status where Db='test';
Empty set (0.04 sec)

mysql> create procedure hi() select 'hello';
Query OK, 0 rows affected (0.03 sec)

mysql> call hi();
+-------+
| hello |
+-------+
| hello |
+-------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)


在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看:
mysqldump

最常用的:
mysqldump -uroot -pmysql databasefoo table1 table2 > foo.sql

这样就可以将数据库databasefoo的表table1,table2以sql形式导入foo.sql中,其中-uroot参数表示访问数据库的用户名是root,如果有密码还需要加上-p参数

C:Usersjack> mysqldump -uroot -pmysql sva_rec date_drv > e:date_drv.sql

mysql的数据导入也是相当便捷的,如:
mysql -uroot databasefoo < foo.sql

这样就可以将foo.sql的数据全部导入数据库databasefoo

1.导出整个数据库

  mysqldump -u用户名 -p密码 数据库名 > 导出的文件名
  C:Usersjack> mysqldump -uroot -pmysql sva_rec > e:sva_rec.sql

  2.导出一个表,包括表结构和数据

  mysqldump -u用户名 -p 密码 数据库名 表名> 导出的文件名
  C:Usersjack> mysqldump -uroot -pmysql sva_rec date_rec_drv> e:date_rec_drv.sql

  3.导出一个数据库结构
  C:Usersjack> mysqldump -uroot -pmysql -d sva_rec > e:sva_rec.sql

4.导出一个表,只有表结构

  mysqldump -u用户名 -p 密码 -d数据库名 表名> 导出的文件名
  C:Usersjack> mysqldump -uroot -pmysql -d sva_rec date_rec_drv> e:date_rec_drv.sql


  5.导入数据库

  常用source 命令
  进入mysql数据库控制台,
  如mysql -u root -p
  mysql>use 数据库
  然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
  mysql>source d:wcnc_db.sql
导出整个数据库
C:Usersceshi>mysqldump -uroot -p mydb > d:111q.sql
导出一个表,包括表结构和数据
C:Usersceshi>mysqldump -uroot -p123456 mydb my_student > d:111s.sql
导出一个数据库结构
C:Usersceshi>mysqldump -uroot -p123456 -d mydb > d:111dbcon.sql
导出一个表,只有表结构
C:Usersceshi>mysqldump -uroot -p123456 -d mydb my_student > d:111 able.sql
导入数据
mysql> source d:111 able.sql

原文地址:https://www.cnblogs.com/51testing/p/8080254.html