MYSQL之基本操作

数据库操作

一、查看所有的数据库

show databases;

二、创建数据库

create database userinfo;

说明:

创建了一个名为userinfo的数据库

三、使用数据库

use userinfo;

四、显示数据库中的所有表

show tables

数据表操作

一、创建表

create table tab1(nid int, name char(10));

说明:

创建了列名为nid,类型为int类型及列名为name,类型为char,字符长度为10的,名为tb1的表。

实例:

create table tb2(
    nid int not null auto_increment,
    name varchar(255),
    pwd varchar(255),
    primary key(nid)
) engine=innodb default charset=utf8;

二、删除表

drop table 表名

三、清空表

1、delete from tb1

这个清空只会将表中的内容清空,设置的 比如,自增效果;是不会清除的,如果清空后再增加数据,数据会接着上次清空的序号开始增加。

2、truncate table tb1

清空内容,也会将效果清除,比如,自增。

四、修改表

添加列:alter table 表名 add 列名 类型
删除列:alter table 表名 drop column 列名
修改列:
        alter table 表名 modify column 列名 类型;  -- 类型
        alter table 表名 change 原列名 新列名 类型; -- 列名,类型
  
添加主键:
        alter table 表名 add primary key(列名);
删除主键:
        alter table 表名 drop primary key;
        alter table 表名  modify  列名 int, drop primary key;
  
添加外键:alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
删除外键:alter table 表名 drop foreign key 外键名称
  
修改默认值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
删除默认值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;

表内容操作

一、对表插入内容

insert into tb1 (nid,name,pws) values(2,'haha','123');
  • 插入多个内容:
insert into tb1 (nid,name,pws) values(3,'haha','123'),(4,'xxx','113'),(5,'sss','666');

说明:

前面在创建表的时候,nid为主键,而且自增,所以增加内容的时候,nid不能重复,不然增加不进去。

二、删除表的内容

delete from 表
delete from 表 where id=1 and name='xxx'

三、修改表的内容

update 表 set name = 'xxx' where id>1

四、查看表的内容

select * from tb1;
  • 加入判断条件的查看
select * from 表
select * from 表 where id > 1
select nid,name,gender as gg from 表 where id > 1 

注意:

操作SQL方法的时候,默认是以分号“ ; ”,表示一段语句的结束;因此我们执行语句的时候,一条完整的语句结束时必须加结束符号分号,不然运行会不成功。

五、其他

1、条件

select * from 表 where id > 1 and name != 'xxx' and num = 12;
 
select * from 表 where id between 5 and 16; 
 
select * from 表 where id in (11,22,33)
select * from 表 where id not in (11,22,33)
select * from 表 where id in (select nid from 表)

2、通配符和模糊匹配

select * from 表 where name like 'ale%' - ale开头的所有(多个字符串)

select * from 表 where name like 'ale_' - ale开头的所有(一个字符)

3、限制

select * from 表 limit 5;            - 前5行
select * from 表 limit 4,5;          - 从第4行开始的5行
select * from 表 limit 5 offset 4    - 从第4行开始的5行

4、排序

select * from 表 order by 列 asc              - 根据 “列” 从小到大排列
select * from 表 order by 列 desc             - 根据 “列” 从大到小排列
select * from 表 order by 列1 desc,列2 asc    - 根据 “列1” 从大到小排列,如果相同则按列2从小到大排序

说明:

  • 从大到小 desc
  • 从小到大  asc

5、分组

select num from 表 group by num
select num,nid from 表 group by num,nid
select num,nid from 表  where nid > 10 group by num,nid order by nid desc
select num,nid,count(*),sum(score),max(score),min(score) from 表 group by num,nid
 
select num from 表 group by num having max(id) > 10 –获取id大于10中最大的id

特别的:

group by 必须在where之后,order by之前

6、组合

组合,自动处理重合

select nickname
from A
union
select name
from B

组合,不处理重合

select nickname
from A
union all
select name
from B
原文地址:https://www.cnblogs.com/jayafs/p/6171874.html