MySQL常用命令(完整中)

关于库的操作

进行数据库的备份和还原:

备份

Mysql -uroot -proot --database 数据库名 > G:\  \ 文件名.sql;

还原

Mysql -uroot -proot < G:\ \文件名.sql;

创建库:

create database 数据库名 default charset utf8 collate utf8_general_ci; (default 后面定义的是数据库的字符集).

删除库:

drop database 数据库名;

查所有的数据库

show databases;

切换数据库

use 数据库名;

关于表的操作

创建表

create table 表名(

id int(11),

name varchar(40)

)

删除表:

drop table 表名;

查看数据库中的表

show tables;

查看表结构

desc 表名称;

添加表字段:

alter table 表名 add column 字段名 int(11) not null  (在字段名后面可以跟字段的的类型和字段约束)

删除表字段

alter table 表名 drop column 字段名;

修改表名:

alter table 表名 rename 修改后的表名;

添加单列索引:

alter table 表名 add index 索引名(关联的字段名)

添加唯一索引

alter table 表名 add unique 索引名 (关联字段名);

添加主键:

alter table 表名 add primary key 索引名 (索引的字段名);

添加联合索引

alter table 表名 add index 索引名 (索引的字段名1,字段2);

删除索引:

alter table 表名 drop index 索引名;

添加外键约束

alter table 表名 add foreign key 外键名

创建一个表复制该表的结构和约束,不复制数据

create table 表名 like 复制的表名

创建一个表复制表的结构和数据,不复制约束

create table 表名 as select * from 复制的表名

添加外键

alter table 表名 add foreign key 外键名(外键字段) references 关联表(主键);

删除外键

我用的是MySQL 5.5 ,根据外键名无法直接删除外键

解决步骤

1.输入 show create table 表名 (查看表的具体属性)

2.查看外键之前的外键约束名

3.根据约束名删除外键 alter table 表名 drop foreign key 外键约束名

修改表字段的名字(注意存储类型,不要改变之后,类型不兼容)

alter table 表名 change column 字段名 新字段名 字符类型

修改字段类型

alter table 表名 modify column 字段名 修改后字段类型

修改字段约束

alter table 表名 alter column  字段名 set default  默认值 ;

删除字段约束

alter table 表名 alter column 字段名 drop default;

启动约束

alter table 表名 enable keys;

禁用约束

alter table 表名 disable keys;

插入语句

Insert :向表中写入数据 Insert into <表名>(<列名>,<列名>……<列名>) values(<值>……)

多段插入

insert into 表名(<列名>,<列名>……<列名>) values(<值>……),(<值>……).......

Select 查询语句

作用 获取表中的数据 基本语法 Select <字段列表/表达式列表> [from 表名] [where <条件>] [group by <字段列表>] [having <条件>] [order by <字段> asc/desc][limit <行数>]

goup by  字段名:表示结果按照字段分行

having:1. 能够使用统计函数,但是where不能使用 例如having count(*) >5

            2. having子句中可以使用字段别名,而where不能使用

            3. where是判断数据从磁盘读入内存的时候 ,having是判断分组统计之前的所有条件

order by 字段名 desc/asc 表示按字段 desc 降序 asc 升序

limit 表示显示的行数

select 语句中的关于连接查询的语句 参考网站 :https://www.cnblogs.com/cs071122/p/6753681.html (区别)

                                                          具体讲解 :https://blog.csdn.net/plg17/article/details/78758593

内连接 (无论怎们样对应的东西会会显示出来,没有对应的东西就不会显示了)

select 查询的字段   from 表A 表的变量名 inner join  表B 表变量名 on A.id=B.id;

左连接(以左边的位参考,右边的少的加null,多的不要)

select 查询的字段 from 表A 表变量 left join 表B 表变量 on A.id=B.id;

右连接(以右边的为参考,左边少的加null,多的不要)

select 查询的字段 from 表A 表变量 right join 表B 表变量 on A.id=B.id;

全外连接:

全外连接 完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。 注:MYSQL中没有全外连接的语法,要实现全外连接的效果需要使用左外连接和右外连接一起实现

Select * from tb01 left join tb02 on tb01.f1=tb02.f1 union select * from tb01 right join tb02 on tb01.f1=tb02.f1

修改语句 

update 表名 set  字段=值 where  字段=值(条件)

删除语句

delete from 表名  where 字段=值(后面跟条件)

猜你喜欢

转载自blog.csdn.net/qq_35501660/article/details/82789496