美文网首页
DDL、DML、DQL和可视化工具

DDL、DML、DQL和可视化工具

作者: 我是一只菜鳥 | 来源:发表于2018-09-04 17:45 被阅读0次

    1.DDL

    • 常用数据类型
    • 创建表
      create table user(username varchar(30), password char(32));
    • 查看表结构
      desc user;
    • 查看表创建语句
      show create table user;
    • 删除表
      drop table user;
    • 创建表指定字符集和引擎
      create table user(username varchar(30), password char(32)) engine=innodb default charset=utf8;
    • 修改字段类型
      alter table user modify username varchar(20);
    • 添加字段
      alter table user add email varchar(30)
      alter table user add email varchar(30) after username;
    • 增删改查 curd操作
    • 首先通过mysql -u root -p 进入数据库系统,创建数据库dudu,进入数据库dudu use dudu,然后才是创建表的过程。
    • 所有的符号都是英文。
    • 创建表开始学习增删改
      mysql> create table user(
      -> id int auto_increment,
      -> name varchar(30) not null,
      -> money int not null,
      -> province varchar(20) default null,
      -> age tinyint unsigned not null,
      -> sex enum('女', '男') not null,
      -> primary key(id)
      -> )engine=innodb default charset=utf8;
      【注】单选在插入值的时候,可以直接使用1 2,那么1代表女,2代表男,enum类型如不不给值,默认是第一个
    • set类型如何插入?
      set('吃', '喝', '嫖', '赌', '抽')
      1 2 4 8 16
      4|8|16 如果是后三个,可以这么写
      28 也可以加起来,这么写

    2.DML

    增删改查语句


    • insert into 表名 values(值1,值2,……) --》insert into user values(1,'王宝强',……);
      insert into 表名(字段1,字段2,……) values(值1,值2,……) --》insert into user(name,age,……) values('王宝强', 39), ('xxx', 18);

    • desc 表名;--》desc user;

    • delete from 表名 where 条件;--》delete from user where id=2;

    • update 表名 set 字段1=值1,字段2=值2,…… where 条件;--》update user set name='老王',age=36,…… where id=1;

    3.可视化工具

    当你去操作数据库的时候,其实有3中方式

    • (1)使用mysql自带的客户端进行操作
    • (2)使用一些第三方的可视化工具管理数据库 比如navicate、sqlyog
    • (3)使用代码去操作数据库,比如python、java、php

    4.DQL

    • query: 查询

    • 模糊查询:
      like '%德%' 只要有 德 字的都符合要求
      % 代表任意多的字符
      like '柳_' 叫 柳某 的都符合要求
      _ 代表一个任意字符

    • limit:
      limit 2 : 在结果集中只要前两个
      limit offset, number : offset代表偏移量,number代表数量
      LIMIT number1 OFFSET number2 : number1 是数量 number2 是偏移量

      上网的时候,经常会有分页,每页显示10条,
      第一页:select * from table limit 0, 10
      第二页:select * from table limit 10, 10
      第三页:select * from table limit 20, 10
      第n页:select * from table limit (n-1)*10, 10

    • 分组:

      字段只能出现分组字段和统计信息,其它的字段出现没有意义
      select province, count() from user group by province;
      select province, count(
      ) as c from user group by province having c>=2;
      【注】having经常跟在group by的后面,where是跟在表的后面

    • select使用顺序:
      SELECT xxx FROM xxx WHERE xxx GROUP BY xxx HAVING xxx ORDER BY xxx LIMIT xxx;
      取出拥有年龄大于30岁的明星个数大于两个且第二多的省份

    • 多表联合
      mysql> create table user(
      -> id int auto_increment,
      -> name varchar(30) not null,
      -> gid varchar(10) default 0,
      -> primary key(id)
      -> )engine=innodb default charset=utf8;

      mysql> create table goods(
      -> gid int auto_increment,
      -> name varchar(30) not null,
      -> price int not null,
      -> category varchar(20) not null,
      -> primary key(gid)
      -> )engine=innodb default charset=utf8;

      mysql> insert into user(name, gid) values('郭德纲', 1),
      -> ('岳云鹏', 2),
      -> ('曹云金', 0),
      -> ('于谦', 3),
      -> ('牛群', 1),
      -> ('冯巩', 1),
      -> ('大兵', 4),
      -> ('马三立', 0),
      -> ('贾玲', 2);

    • 隐式内连接
      select user.name as uname, goods.name as gname from user, goods where user.gid=goods.gid;

    • 显示内连接
      select * from user as u join goods as g on u.gid=g.gid;
      select u.name as uname, g.name as gname from user as u join goods as g on u.gid=g.gid;

    • 三表链接格式
      select * from user as u join goods as g on u.gid=g.gid join price as p on g.pid=p.pid

    相关文章

      网友评论

          本文标题:DDL、DML、DQL和可视化工具

          本文链接:https://www.haomeiwen.com/subject/leqnwftx.html