Mysql基本操作

一、数据库

1.数据库的创建 :create database 数据库名(在创建之前要查看数据库中是否已存在,已存在的数据库无法创建)

2.查询所有数据库 :show databases

3.打开数据库 :use 数据库名

 

二、数据表

1.数据表的创建:

  • create table 表名(列名 类型 是否可以为空,列名 类型 是否可以为空......)
  • create table 表名(列名 类型 是否可以为空 默认值 自增 主键 外键,列名 类型 是否可以为空 默认值 自增 主键 外键......)

默认值:default 2   默认值为2

自增:auto_increment / auto_increment primary key   自增列的值自动增长,无需设定

          自增列必须是索引(含主键),自增可以设置步长和起始值  

      show session variables like 'auto_inc%';
      set session auto_increment_increment=2;
      set session auto_increment_offset=10;

      shwo global  variables like 'auto_inc%';
      set global auto_increment_increment=2;
      set global auto_increment_offset=10;

主键:唯一,不能为空的特殊索引,如果主键为单一列,值必须唯一,如果是多列组合主键,则组合必须唯一

      create table tb1(
          nid int not null auto_increment primary key,
          num int null
      )
            或
      create table tb1(
          nid int not null,
          num int not null,
          primary key(nid,num)
      )

外键:一个特殊的索引,只能是指定内容,外键的reference(参考)必须是另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。

            creat table color(
                nid int not null primary key,
                name char(16) not null
            )

            create table fruit(
                nid int not null primary key,
                smt char(32) null ,
                color_id int not null,
                constraint fk_cc foreign key (color_id) references color(nid)
            )

2.删除数据表 :drop table 表名

3.清空数据表:

  • delete from 表名 
  • truncate table 表名

4.修改数据表: alter table 表名。。。

  • 添加列:alter table 表名 add 列名 类型
  • 删除列:alter table 表名 delete 列名
  • 修改列:

              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 从表(外键字段)reference 主表 (主键字段);
  • 删除外键:alter table 表名 drop foreign key 外键名称
  • 修改默认值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
  • 删除默认值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;

三、数据库和表内容的操作

1.增

  • insert into 表 (列名,列名)values (值,值);
  • insert into 表 (列名,列名)values (值,值),(值,值);
  • insert into 表 (列名,列名)select (列名,列名)from 表 ;

2.删

  • delete form 表 
  • delete form 表 where id=1 and name=“Alex”

3.改

  • update 表 set name =“Alex” where id>1;

4.查

  • 普通查询
  1. select * from 表
  2. select * from 表 where id > 1
  3. select id,name,gender as gg from 表 where id > 1
  4. 条件查询
  5. 限制查询
  • 数据(排序)查询
  1. select * from 表 order by 列 asc   根据“列”从小到大排序
  2. select * from 表 order by 列 desc   根据“列”从大到小排序
  3. select * form 表 order by 列1 desc,列2 asc    根据列1从大到小排序,如果相同则按列2从小到大排序
  • 模糊查询
  1. select * form 表 where name like ‘%ale’;      ale开头的所有(多个字符串)
  2. select * form 表 where name like ‘ale_’;       ale开头的所有(1个字符)
  • 聚集函数查询
  • 分组查询
  1. select num from 表 group by num 
  2. select id,num from 表 group by id,num
  3. select id,num from 表 where id>10 group by id,name order by id asc
  4. select id,num,count(*) ,sum(score),max(score),min(score) from 表 group by id,num
  5. select num from 表 group by num having max(id)>10

    group必须在where之后,order之前

  • 多表查询
  1. 链表
    无对应关系则不显示
    select A.num, A.name, B.name
    from A,B
    Where A.nid = B.nid
 
    无对应关系则不显示
    select A.num, A.name, B.name
    from A inner join B
    on A.nid = B.nid
 
    A表所有显示,如果B中无对应关系,则值为null
    select A.num, A.name, B.name
    from A left join B
    on A.nid = B.nid
 
    B表所有显示,如果B中无对应关系,则值为null
    select A.num, A.name, B.name
    from A right join B
    on A.nid = B.nid
  1. 组合
    组合,自动处理重合
    select nickname
    from A
    union
    select name
    from B
 
    组合,不处理重合
    select nickname
    from A
    union all
    select name
    from B

https://www.cnblogs.com/programmer-tlh/p/5782418.html

https://www.cnblogs.com/heyangblog/p/7624645.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值