1、连接数据库和数据库基本操作
mysql -h hostname -P port -u username -p password
例如: mysql -h 10.2.3.14 -P 3306 -u root -p 123456 test
#创建数据库
create_db_sql=“create database IF NOT EXISTS
D
B
N
A
M
E
"
m
y
s
q
l
−
h
{DBNAME}" mysql -h
DBNAME"mysql−h{HOSTNAME} -P
P
O
R
T
−
u
{PORT} -u
PORT−u{USERNAME} -p
P
A
S
S
W
O
R
D
−
e
"
{PASSWORD} -e"
PASSWORD−e"{create_db_sql}”
#创建表
create_table_sql=“create table IF NOT EXISTS
T
A
B
L
E
N
A
M
E
(
n
a
m
e
v
a
r
c
h
a
r
(
20
)
,
i
d
i
n
t
(
11
)
d
e
f
a
u
l
t
0
)
"
m
y
s
q
l
−
h
{TABLENAME} ( name varchar(20), id int(11) default 0 )" mysql -h
TABLENAME(namevarchar(20),idint(11)default0)"mysql−h{HOSTNAME} -P
P
O
R
T
−
u
{PORT} -u
PORT−u{USERNAME} -p${PASSWORD}
D
B
N
A
M
E
−
e
"
{DBNAME} -e"
DBNAME−e"{create_table_sql}”
#插入数据
insert_sql=“insert into
T
A
B
L
E
N
A
M
E
v
a
l
u
e
s
(
′
b
i
l
l
c
h
e
n
′
,
2
)
"
m
y
s
q
l
−
h
{TABLENAME} values('billchen',2)" mysql -h
TABLENAMEvalues(′billchen′,2)"mysql−h{HOSTNAME} -P
P
O
R
T
−
u
{PORT} -u
PORT−u{USERNAME} -p${PASSWORD}
D
B
N
A
M
E
−
e
"
{DBNAME} -e"
DBNAME−e"{insert_sql}”
#查询
select_sql=“select * from
T
A
B
L
E
N
A
M
E
"
m
y
s
q
l
−
h
{TABLENAME}" mysql -h
TABLENAME"mysql−h{HOSTNAME} -P
P
O
R
T
−
u
{PORT} -u
PORT−u{USERNAME} -p${PASSWORD}
D
B
N
A
M
E
−
e
"
{DBNAME} -e"
DBNAME−e"{select_sql}”
#更新数据
update_sql=“update
T
A
B
L
E
N
A
M
E
s
e
t
i
d
=
3
"
m
y
s
q
l
−
h
{TABLENAME} set id=3" mysql -h
TABLENAMEsetid=3"mysql−h{HOSTNAME} -P
P
O
R
T
−
u
{PORT} -u
PORT−u{USERNAME} -p${PASSWORD}
D
B
N
A
M
E
−
e
"
{DBNAME} -e"
DBNAME−e"{update_sql}”
mysql -h
H
O
S
T
N
A
M
E
−
P
{HOSTNAME} -P
HOSTNAME−P{PORT} -u
U
S
E
R
N
A
M
E
−
p
{USERNAME} -p
USERNAME−p{PASSWORD}
D
B
N
A
M
E
−
e
"
{DBNAME} -e"
DBNAME−e"{select_sql}"
#删除数据
delete_sql=“delete from
T
A
B
L
E
N
A
M
E
"
m
y
s
q
l
−
h
{TABLENAME}" mysql -h
TABLENAME"mysql−h{HOSTNAME} -P
P
O
R
T
−
u
{PORT} -u
PORT−u{USERNAME} -p${PASSWORD}
D
B
N
A
M
E
−
e
"
{DBNAME} -e"
DBNAME−e"{delete_sql}”
2、使用sql脚本将数据库查询结果输出到文件
mysql -h hostname -P port -u username -p password -A <“sql脚本” >> 输出文件名
如果输出的文件不是自己需要的格式,比如你需要逗号分割数据,输出的是回车分割的。使用全文替换命令
:%s/\n/, / g 即可把回车分割变成,号分割。
3、常用数据库命令
shell>mysql -u root -p
mysql> update user set password=password(”1234″) where user=’root’;
mysql>use dbname; 打开数据库:
mysql>show databases; 显示所有数据库
mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后
mysql>show create table tableName;展示数据库创建的详细信息。
1)创建数据库staffer
mysql> create database 数据库名
2)创建表
create table ABC
(
id int not null auto_increment,
name varchar(20) not null default ‘经理’, #设定默认值
description varchar(100),
primary key PK_positon (id) #设定主键
);
3)删除
mysql>
drop table ABC;
4)修改结构
mysql>
#表position增加列test
alter table position add(test char(10));
#表position修改列test
alter table position modify test char(20) not null;
#表position修改列test默认值
alter table position alter test set default ‘system’;
#表position去掉test默认值
alter table position alter test drop default;
#表position去掉列test
alter table position drop column test;
#表depart_pos删除主键
alter table depart_pos drop primary key;
#表depart_pos增加主键
alter table depart_pos add primary key PK_depart_pos (department_id,position_id);
#清空表
delete from MYTABLE;
- 创建索引
alter table table1 add index ind_id (id);
create index ind_id on table1 (id);
create unique index ind_id on table1 (id);//建立唯一性索引
6)删除索引
drop index idx_id on table1;
alter table table1 drop index ind_id;
4、索引
#使用索引的缺点
1)减慢增删改数据的速度;
2)占用磁盘空间;
3)增加查询优化器的负担;
当查询优化器生成执行计划时,会考虑索引,太多的索引会给查询优化器增加工作量,导致无法选择最优的查询方案;
#分析索引效率
方法:在一般的SQL语句前加上explain;
分析结果的含义:
1)table:表名;
2)type:连接的类型,(ALL/Range/Ref)。其中ref是最理想的;
3)possible_keys:查询可以利用的索引名;
4)key:实际使用的索引;
5)key_len:索引中被使用部分的长度(字节);
6)ref:显示列名字或者"const"(不明白什么意思);
7)rows:显示MySQL认为在找到正确结果之前必须扫描的行数;
8)extra:MySQL的建议;
作者:流年冲淡时光
来源:CSDN
原文:https://blog.csdn.net/one_piece_hmh/article/details/79532570
版权声明:本文为博主原创文章,转载请附上博文链接!