面试之MySQL基本命令

既然要操作数据库就从数据库链接写起,包括建库、建表、增删该查字段及约束,删库,删表的数据,以下主要是对我以往面试的总结,欢迎补充!

一、数据库连接

1、连接本机(p和密码123456之间无空格)

mysql -u username -p123456;

2、远程连接

mysql  -h 要访问的ip地址 -u username -p123456;

二、对库的操作

create database db_name;

drop database db_name;

show databases;

use db_name;

rename database db_name to new_db_name

mysqldump -u username -p123456 db_name > 导出的文件名;               #备份

三、对表的操作

1、建表/删表/复制表/备份表

creat table db_name.tb_nane(

  id smallint unsigned auto_increment,

  username varchar(20) not null unique key,

  sex enum("1","2") default "1")

drop table (if exists) tb_name;

create table tb_name2 select * from db_name.tb_name;

mysqldump -u username -p123456 db_name tb_name> 导出的文件名;      

2、插入数据

insert into tb_name (col_name1,col_name2)values (值1,值2);

insert into tb_name.tb_name(username,sex)values("zhang",1);

insert into tb_name.tb_name values (1,"wang",1),(2,"lili",2),(3,"haha",2);

3、删除数据

delete col_name from tb_name where col_name=值;                #删除某条记录

truncate table tb_name;                                                              #删除所有记录

4、增加/删除单列

alter table tb_name add col_name col_defination [first |after col_name];

alter table tb-name drop col_name;

5、增加/删除约束

alter table tb_name add primary key col_name;                      #主键(主键自动为not null;每张表只有一个主键)

alter table tb_name add unique col_name;

alter table tb_name add index index_name col_name;

alter table tb_name drop primary key;

6、修改约束

 alter table tb_name modify id int unsigned;                          #修改列id的类型为int unsigned 

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

 

7、查看表结构

show colums from tb_name;

desc tb_name;

8、限制查询返回结果

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

 select * from students order by id limit 9,10; 

2> top选出前十条记录

select top 10 from students;

9、MySQL中的外连接,分为左外连接和右连接,即除了返回符合连接条件的结果之外,还要返回左表(左连接)或者右表(右连接)中不符合连接条件的结果,相对应的使用NULL对应。

select col_name from tb_name1 left join tb_name2 on tb_name1.col=tb_name2.col;

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

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

 

 

示例,常用命令 ORDER BY    DISTINCT

select * from table_name where (city='ts' or city='sh') and plat=0 ORDER BY update_time DESC    ### 按照更新时间降序排列

select id,person,history,time from table_name ORDER BY time ASC    ### 按照更新时间升序排列

select DISTINCT prio from table_name where isdelete=0 and (type=4 or type=5);        ###对prio字段的值进行去重处理

select count(DISTINCT prio) from table_name where isdelete=0 and (type=4 or type=5);      ###对prio字段的值进行去重处理后统计数量

原文地址:https://www.cnblogs.com/echoqi/p/6379994.html