day37-mysql2

1. DDL

  1. 創(chuàng)建表
    create table user(username varchar(30), password char(32));
    查看表結(jié)構(gòu)
    desc user;
    查看表創(chuàng)建語句
    show create table user;

  2. 刪除表
    drop table user;

  3. 創(chuàng)建表指定字符集和引擎
    create table user(username varchar(30), password char(32)) engine=innodb default charset=utf8;

  4. 修改字段類型
    alter table user modify username varchar(20);

  5. 添加字段
    alter table user add email varchar(30)
    alter table user add email varchar(30) after username;

  6. 增刪改查 curd操作
    首先通過mysql -uroot -p 進入數(shù)據(jù)庫系統(tǒng),創(chuàng)建數(shù)據(jù)庫dudu,進入數(shù)據(jù)庫dudu use dudu,然后才是創(chuàng)建表的過程
    所有的符號都是英文。

  7. 創(chuàng)建表開始學習增刪改
    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類型如不不給值,默認是第一個

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

2. DML

增刪改語句

  1. 增加:
    1)insert into 表 values(值1,值2,值n);
    2)insert into 表(字段1,字段2,字段n) values(值1,值2,值n)
    3)insert into star(name, money, province, age, sex) values('黃曉明', 2000000, '山東', 39, 0),( 'angelababy', 3000000, '上海', 27, 1),( '陳赫', 150000, '福建', 31, 0);
  2. 刪除
    delete from 表 where 條件;
  3. 修改
    update 表 set 字段1=值1,字段2=值2 where 條件;
  4. 查詢
    select * from 表;

3. 可視化工具

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

4. DQL

query : 查詢

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

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

  1. 分組:
    字段只能出現(xiàn)分組字段和統(tǒng)計信息,其它的字段出現(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是跟在表的后面
  2. select使用順序
    SELECT xxx FROM xxx WHERE xxx GROUP BY xxx HAVING xxx ORDER BY xxx LIMIT xxx;

5. 多表聯(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);

  1. 隱式內(nèi)連接
    select user.name as uname, goods.name as gname from user, goods where user.gid=goods.gid;
  2. 顯示內(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;
  3. 三表鏈接格式
    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)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容