2018-09-04

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
增删改语句
看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、索引

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、DDL 常用数据类型创建表create table user(username varchar(30), pa...
    BIGBOSS_93d6阅读 234评论 0 0
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 8,060评论 5 115
  • 观其大纲 page 01 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 M...
    周少言阅读 3,255评论 0 33
  • 一 到现在,你陪我走了一整个春夏秋冬 接下来 我会陪你看遍春花秋月,说尽夏虫冬雪 二 因为 你在我身边 这个冬天,...
    倪拗拗阅读 421评论 0 9
  • 弟弟要去商丘,我们要去吴屯坐车。因为下雨,也因为新手,妈不想让我们开车去。弟弟很想开车,妈还是让爸跟上我们。去时,...
    黄河故道边的一个教书匠阅读 124评论 0 0

友情链接更多精彩内容