Mysql入门

2021/8/25 2:06:03

本文主要是介绍Mysql入门,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Sql语言的分类--功能

  • DDL:用来创建或者删除数据库,表,数据库操作语句

  • DML:用来对表中的内容,进行增删改的,数据库中数据的操作语句

  • DQL:用来对表中的数据进行查询操作

  • DCL:权限管理语句

    • database:数据库
  • table:表格(数据库的表)

    • show:展示 

DDL

创建数据库:

  create database mydb1;-- 创建数据库mydb1 

删除数据库:

  drop database mydb1; -- 删除数据库mydb1


使用数据库:

  use 数据库名称;

创建student表:

  create table 表名(字段1 字段类型 约束,字段2 字段类型 约.......)

 删除表:

  drop table 表名;

 修改表名称:

  rename table 旧表名 to 新表名; --注意:如果有外键,需要更新外键

修改表结构

  添加列:

    alter table 表名 add 列名 类型

  删除列:

    alter table 表名 drop column 列名

  修改列:

    alter table 表名 modify 列名 类型; -- 修改类型

    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 主表(主键字段);    

    注意:创建外键时,主表链接附表的(主键字段)且字段类型必须相同;

-- 附表创建
create table clazz(id int primary key ,clazz_name varchar(20));
-- 创建主表(带外键)
create table  student
    (id int primary key auto_increment,name varchar(20),
    clazz_id int ,foreign key (clazz_id) references clazz(id));
-- 删除外键
alter table  
    -- 因为没有使用 constraint 关键字给外键起名
   -- 所以student_ibfk_1(这是默认外键名)
    student drop foreign key student_ibfk_1;
-- 增加外键
alter table student add 
    -- 给外键起名clazz_id 
    constraint clazz_id 
    foreign key (clazz_id) references clazz(id);

  删除外键:

    alter table 表名 drop foreign key 外键名称

    修改默认值:

     ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;

  删除默认值:

    ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;

DML

  

一、增

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

例: insert into tab1(name,email) values('zhangyanlin','zhangyanlin8851@163.com')

二、删

-- `truncate table tab_name;`全表删除(可以删除约束字段,不支持数据回滚)

delete from 表 # 删除表里全部数据 delete from 表 where id=1 and name='zhangyanlin' # 删除ID =1 和name='zhangyanlin' 那一行数据

三、改

update 表 set name = 'zhangyanlin' where id>1 (一定要记得加条件,不让你就猴子他妈狒狒了!!)

DQL

四、查

select * from 表 select * from 表 where id > 1 select nid,name,gender as gg from 表 where id > 1

a、条件判断where

select * from 表 where id > 1 and name != 'aylin' 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 表)

b、通配符like

select * from 表 where name like 'zhang%' # zhang开头的所有(多个字符串) select * from 表 where name like 'zhang_' # zhang开头的所有(一个字符)

c、限制limit

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

d、排序asc,desc

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

e、分组group by

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 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

特注意:group by 必须在where之后,order by之前 



这篇关于Mysql入门的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程