Linux环境下关于mysql数据库的操作指令

/*
检测数据库是否安装

sudo netstat -tap|grep mysql


数据库的安装


sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev


登录数据库
mysql [-h主机ip]  -u用户名  -p

 

用户操作
1,添加用户
create user '用户名'@'localhost' identified by '密码'

2,授权
grant all on *.* to '用户名'@'localhost'

3,查看用户
select host,user from mysql.user;


库的操作
1,显示所有的库
show databases

2,创建库
create database 库名

3,删除库
drop database 库名

4,选中库
use 库名

 

导出操作

一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
1、导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql
敲回车后会提示输入密码

PS:如果出现多个相同表名的错误使用下面的语句:

mysqldump --single-transaction  -uroot -p 表名 > 导出名称.sql;

2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql

注:/usr/local/mysql/bin/ ---> mysql的data目录

导入数据库
1、首先建空数据库
mysql>create database abc;

2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql

表的操作
1,显示所有表格
show tables;

2,创建表格
create table 表名 (字段名1 类型,字段名2 类型,.....,字段名n 类型)charset utf8


3,显示字段详细信息
desc 表名


4,删除表格
drop table 表名


5,修改表名
rename table 旧表名 to 新表名


字段操作:
1,添加字段
alter table 表名 add 字段的定义 //默认放在最后
alter table 表名 add 字段的定义 first      //放在最前
alter table 表名 add 字段的定义 after 字段名  //指定字段后面


2,删除字段
alter table 表名 drop 字段名


3,修改字段类型
alter table 表名 modify 字段名 新的类型


4,修改字段属性
alter table 表名 change 字段名 重新定义字段


5,显示字段详细信息
desc 表名


记录操作
1,插入记录
insert into 表名 values (value1,value2,...,value)
insert into 表名 (字段名1,字段名2,..,字段n)  values (value1,value2,...,value)
insert into 表名 values (value1,value2,...,value),(value1,value2,...,value)

ps:字符串类型的数据一定要加单引号

2,删除记录
delete from 表名 where 条件表达式

3,修改记录
update 表名 set 字段名=value   where 条件表达式

4,查看
select * from 表名

select 字段1,字段2  from 表名

select * from 表名 where 表达式

类型:
1,数值类型
1)整型:
tinyint 1:默认是有符号类型
unsigned : 设置无符号类型
zerofill : 零填充,默认就是无符号类型
not null :  不能为空
default :  设置默认值

主键:能够唯一标识一条记录,不能有重复的,默认就是不能为空 一张只有一个主键,可以定义表格时设置,也可以定义玩表格设置
primary key: 主键
删除主键: alter table 表名 drop primary key

设置主键: alter table 表名 add primary key(字段名)

auto_increment:自增属性,默认是从1开始,也可以自定义自增值

设置自增值:alter table 表名 auto_increment=value

ps:一个字段同时有主键和自增两个属性,如果要删除主键属性,必须先删除自增,再删除主键
alter table 表名 change sid sid int;
alter table 表名 drop primary key

unique : 唯一性

外键:让两张表格建立关联 (让一张表中的字段参照另外一张表格的主键),保证数据的有效性和正确性

创建表格设置外键:constraint 外键别名 foreign key(字段名) references 参照表(字段名)


建表后添加外键:alter table 表名 add constraint 外键别名 foreign key(字段名) references 参照表(字段名)

删除外键:alter table 表名 drop foreign key 外键别名

整型类型
smallint 2
mediumint 3
int 4
bigint 8

2)浮点类型
float: 4
double : 8
decimal(m,d)

2,字符串
char(32):   定长字符串
varchar(32):  变长字符串   
text :   文本,不允许设置默认值


3,日期时间类型
year :年份(以整型表示)
date:日期('yy-mm-dd')
time :时间('hh:mm:ss')
datetime:日期时间('yy-mm-dd hh:mm:ss')


五种子句查询
1,where
  关系运算符: > >= < <= = !=(<>)
  逻辑运算符: &&(and) ||(or) !(not)
in(value1,value2,value3,.....)
between v1 and v2
  模糊查询:like
%:匹配n个字符

_:匹配一个字符


2,group by:分组
min()
max()
sum()
avg()
count(*)

as:取别名

3,having:查询临时表格再次进行过滤

4,order by:排序
 默认按照升序排序
asc:升序
desc:降序


5,limit:

三种子查询:
where:内层查询的结果作为外层查询的条件

from:将内层查询的结果供外层查询


exists:

多表连接查询:
select * from t1,t2;


左连接:
t1 left join t2 on 条件表达式
右连接:
t1 right join t2 on  条件表达式
内连接(左连接和右连接的交集):
t1 inner join t2 on  条件表达式

备份:
1,表级备份(系统命令终端操作)
mysqldump -uroot -p 库名 表1  表2 > 路径 //备份指定表格
mysqldump -uroot -p 库名 > 路径        //备份库下的所有表格

2,库级备份
mysqldump -uroot -p 库1  库2 -B >路径 //备份指定库
mysqldump -uroot -p --all-databases >路径 //备份所有库


恢复(数据库命令行操作的):
1,表级恢复
use 库名;
source 路径;
2,库级恢复
source 路径

posted @ 2023-03-01 11:27  不想挨捶的牛  阅读(116)  评论(0编辑  收藏  举报