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:\mysql\mysql-5.6.24-win32\bin>mysqldump -u root -p mydb > mydb_bakup_20171221.sql
--创建数据库
D:\mysql\mysql-5.6.24-win32\bin>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:\mysql\mysql-5.6.24-win32\bin>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:\Users\jack> 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:\Users\jack> mysqldump -uroot -pmysql sva_rec > e:\sva_rec.sql
2.导出一个表,包括表结构和数据
mysqldump -u用户名 -p 密码 数据库名 表名> 导出的文件名
C:\Users\jack> mysqldump -uroot -pmysql sva_rec date_rec_drv> e:\date_rec_drv.sql
3.导出一个数据库结构
C:\Users\jack> mysqldump -uroot -pmysql -d sva_rec > e:\sva_rec.sql
4.导出一个表,只有表结构
mysqldump -u用户名 -p 密码 -d数据库名 表名> 导出的文件名
C:\Users\jack> 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:\Users\ceshi>mysqldump -uroot -p mydb > d:\111\q.sql
导出一个表,包括表结构和数据
C:\Users\ceshi>mysqldump -uroot -p123456 mydb my_student > d:\111\s.sql
导出一个数据库结构
C:\Users\ceshi>mysqldump -uroot -p123456 -d mydb > d:\111\dbcon.sql
导出一个表,只有表结构
C:\Users\ceshi>mysqldump -uroot -p123456 -d mydb my_student > d:\111\table.sql
导入数据
mysql> source d:\111\table.sql
posted on 2017-12-21 14:08 sunny_2016 阅读(131) 评论(0) 编辑 收藏 举报