2018-09-04 mysql2

1、DDL

常用數(shù)據(jù)類型
創(chuàng)建表
create table user(username varchar(30), password char(32));
查看表結(jié)構(gòu)
desc user;
查看表創(chuàng)建語句
show create table user;
刪除表
drop table user;
創(chuàng)建表指定字符集和引擎
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 進(jìn)入數(shù)據(jù)庫系統(tǒng),創(chuàng)建數(shù)據(jù)庫dudu,進(jìn)入數(shù)據(jù)庫dudu use dudu,然后才是創(chuàng)建表的過程
所有的符號(hào)都是英文。
創(chuàng)建表開始學(xué)習(xí)增刪改

    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;
    【注】單選在插入值的時(shí)候,可以直接使用1 2,那么1代表女,2代表男,enum類型如不不給值,默認(rèn)是第一個(gè)

set類型如何插入?
set('吃', '喝', '嫖', '賭', '抽')
1 2 4 8 16
4|8|16 如果是后三個(gè),可以這么寫
28 也可以加起來,這么寫

2、DML

增刪改語句
向表中插入值的幾種方法


image.png

image.png

記錄1與記錄2都是單項(xiàng)插入,而記錄3是多個(gè)項(xiàng)目的插入


image.png

插入數(shù)據(jù)可以不傳值的情況:
自增的字段可以不用傳入值(每插入一條該字段的值會(huì)自動(dòng)加1)
有默認(rèn)值
可為空的字段可不傳

說明:插入記錄2的方式為更常用的用法


image.png

image.png
image.png

查詢結(jié)果展示


image.png

3、可視化工具

當(dāng)你去操作數(shù)據(jù)庫的時(shí)候,其實(shí)有3中方式
(1)使用mysql自帶的客戶端進(jìn)行操作
(2)使用一些第三方的可視化工具管理數(shù)據(jù)庫 比如navicate、sqlyog
(3)使用代碼去操作數(shù)據(jù)庫,比如python、java、php

4、DQL

query : 查詢
模糊查詢:like '%德%' 只要有 德 字的都符合要求
% 代表任意多的字符
like '柳_' 叫 柳某 的都符合要求
_ 代表一個(gè)任意字符
limit:
limit 2 : 在結(jié)果集中只要前兩個(gè)
limit offset, number : offset代表偏移量,number代表數(shù)量
LIMIT number1 OFFSET number2 : number1 是數(shù)量 number2 是偏移量

上網(wǎng)的時(shí)候,經(jīng)常會(huì)有分頁,每頁顯示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

分組:
字段只能出現(xiàn)分組字段和統(tǒng)計(jì)信息,其它的字段出現(xiàn)沒有意義

    select province, count(*) from user group by province;
    select province, count(*) as c from user group by province having c>=2;
    【注】having經(jīng)常跟在group by的后面,where是跟在表的后面

select使用順序

    SELECT xxx FROM xxx WHERE xxx GROUP BY xxx HAVING xxx ORDER BY xxx LIMIT xxx;
    取出擁有年齡大于30歲的明星個(gè)數(shù)大于兩個(gè)且第二多的省份
多表聯(lián)合
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);

隱式內(nèi)連接
select user.name as uname, goods.name as gname from user, goods where user.gid=goods.gid;
顯示內(nèi)連接
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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容