day17_Mysql

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 -uroot -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 表名 value(值1, 值2, ......)
      insert into 表名(字段1, 字段2, ......) value(值1, 值2, ......)
    • 删除记录:
      delete from 表名 where 条件
      !!!必须加where条件, 否则就会全部删除
    • 修改记录:
      update 表名 set 字段1=值1, 字段2=值2 where 条件
      !!!必须加where条件

3、可视化工具

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

4、DQL

    基础查询: select * from 表名

    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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,886评论 5 116
  • 观其大纲 page 01 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 M...
    周少言阅读 3,186评论 0 33
  • 总以为妈妈会永远陪着我,起码是很久很久,这是默认的我所相信的可以称得上的永恒了,现在变成了另一种永恒的缺失缺憾。
    我有猫病阅读 124评论 0 0
  • 文/一枚回形针 无鸡不成宴。鸡作为饭桌上的一个重要角色,自然会被发明各种吃法。追求健康平淡的,可以有我们广东人最常...
    zy子悦阅读 471评论 0 3
  • 讲到情节一词,让我们最经常听到的应该就是某某有 “恋母情结”。在这句话里有更多的是贬义,这词一般也用在男人身上比较...
    慈觉阅读 171评论 0 0