Day17-课堂笔记-mysql

1.DDl

1)常用数据类型

  • 创建表:create table user(username varchar(30),password char(30))
  • 查看表
    show tables;
  • 删除表
    drop table user;
  • 指定字符集合引擎
    create table user(username varchar(30),password char(30))engine=innodb default charset=utf8;
  • 修改数据类型
    alter table user modify age int;
  • 增加表字段
    alter table user add id int(10);
  • 删除表字段
    alter table new_user drop height;
    *表字段改名
    alter table user change id userid int(10);
    *修改表字段排列顺序
    alter table user rename new_user;

2)增删查改 ----- curd操作

首先通过 net start mysql57 开启mysql -> mysql -u root -p 进入mysql -> create database 数据库名 创建数据库->use 数据库名 进入数据库 ->create table 表名 创建表
创建表开始学习增删改

        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代表下标1,2代表代表下标2,enum类型如不不给值,默认是第一个

  • set类型插入
    set('吃', '喝', '嫖', '赌', '抽')
    1 2 4 8 16
    4|8|16 如果是后三个,可以这么写
    28 也可以加起来,这么写

2.DML

增删改语句
    看ppt吧

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

5.索引

你可能感兴趣的:(Day17-课堂笔记-mysql)