MySQL輕快入門

今天是3月7日,女生節,在此先祝各位廣大女性同志節日快樂。

今天清理桌面,找到了一份MySQL的入門筆記,趁着今天清閒,我就把它倒騰過來,順便複習複習,畢竟很久沒碰過數據庫了。

下面直接進入正題:

1、入門須知:

客戶端的概念:我們存取數據都需要客戶端和服務器端進行通話,我們打開任務管理器,可以看到mysql相關的服務,可以找到mysql(客戶端)和mysqld(服務端),其實數據的存取就是這二者之間的通話。

SQL語言的特點:結構化查詢的語言、what型語言而非how型語言。

基礎操作命令:

  1. 連接數據庫:mysql -h 地址 -u 用戶名 -p密碼
  2. 查看數據庫:show databases
  3. 使用數據庫:use 數據庫名
  4. 查看數據表:show tables
  5. 查看錶的字段:desc 表名
  6. 創建數據庫:create database dbname charset utf8;
  7. 刪除數據庫:drop database dbname;
  8. 查看錶的創建過程:show create table  tableName;

下面看一下我創建的一個數據庫:

create database qingshudan;

use qingshudan;

CREATE TABLE `user` (
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
	`name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '用戶名',
	`phone` VARCHAR(15) NOT NULL DEFAULT '' COMMENT '手機號',
	`avatar` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '頭像',
	`signature` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '簽名',
	`wx_id` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '微信綁定',
	`qq_id` VARCHAR(100) NOT NULL DEFAULT '' COMMENT 'QQ綁定',
	`wb_id` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '微博綁定',
    `fans` INT(11) NOT NULL DEFAULT '0' COMMENT '粉絲數',
    `followers` INT(11) NOT NULL DEFAULT '0' COMMENT '關注數',
    `collections` INT(11) NOT NULL DEFAULT '0' COMMENT '收藏數',
    `writ_reads` INT(11) NOT NULL DEFAULT '0' COMMENT '待看數',
    `integral` INT(11) NOT NULL DEFAULT '0' COMMENT '積分',
    `address` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '聯繫地址',
	`status` INT(11) NOT NULL DEFAULT '0' COMMENT '狀態 0 正常 1 刪除',
	`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '註冊時間',
	PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `category` (
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
	`name` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '類名',
    `books` INT(11) NOT NULL DEFAULT '0' COMMENT '書本數',
	`status` INT(11) NOT NULL DEFAULT '0' COMMENT '狀態 0 正常 1 刪除',
	PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `book` (
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
	`name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '書名',
    `author` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '作者',
    `isbn` VARCHAR(20) NOT NULL DEFAULT '' COMMENT 'ISBN',
    `publisher` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '出版社',
    `publish_time` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '出版時間',
    `category_id` INT(11) NOT NULL DEFAULT '0' COMMENT '分類id',
    `category_name` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '分類名',
    `pages` INT(11) NOT NULL DEFAULT '0' COMMENT '頁數',
    `price` DECIMAL(10,2) NOT NULL DEFAULT '0.00' COMMENT '定價/最低價',
    `cover` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '封面',
    `recommend_des` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '推薦語',
    `collections` INT(11) NOT NULL DEFAULT '0' COMMENT '收藏數',
    `shares` INT(11) NOT NULL DEFAULT '0' COMMENT '分享數',
    `user_id` INT(11) NOT NULL DEFAULT '0' COMMENT '用戶id',
    `buy_link` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '購買地址',
	`status` INT(11) NOT NULL DEFAULT '0' COMMENT '狀態 0 正常 1 刪除',
	`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
	PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `bill` (
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
	`title` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '標題',
    `books` INT(11) NOT NULL DEFAULT '0' COMMENT '圖書數量',
    `recommend_des` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '推薦語',
    `collections` INT(11) NOT NULL DEFAULT '0' COMMENT '收藏數',
    `shares` INT(11) NOT NULL DEFAULT '0' COMMENT '分享數',
    `comments` INT(11) NOT NULL DEFAULT '0' COMMENT '評論數',
    `user_id` INT(11) NOT NULL DEFAULT '0' COMMENT '用戶id',
	`status` INT(11) NOT NULL DEFAULT '0' COMMENT '狀態 0 正常 1 刪除',
	`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
	PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `comment` (
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
	`user_id` INT(11) NOT NULL DEFAULT '0' COMMENT '用戶id',
    `user_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '用戶名',
    `user_avatar` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '用戶頭像',
    `bill_id` INT(11) NOT NULL DEFAULT '0' COMMENT '書單id',
    `content` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '內容',
	`status` INT(11) NOT NULL DEFAULT '0' COMMENT '狀態 0 正常 1 刪除',
	`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
	PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `share` ( 
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `user_id` INT(11) NOT NULL DEFAULT '0' COMMENT '用戶id',
    `type` INT(11) NOT NULL DEFAULT '0' COMMENT '類型 0 書籍 1書單',
    `bill_id` INT(11) NOT NULL DEFAULT '0' COMMENT '書單id',
    `book_id` INT(11) NOT NULL DEFAULT '0' COMMENT '書籍id',
    `channel` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '分享渠道',
    `share_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '分享時間',
    PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `attention` (
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `attention_id` INT(11) NOT NULL DEFAULT '0' COMMENT '關注人id(我關注)',
    `attentioned_id` INT(11) NOT NULL DEFAULT '0' COMMENT '被關注人id(粉絲)',
    `status` INT(11) NOT NULL DEFAULT '0' COMMENT '狀態 0正常 1取消關注' ,
    `attent_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '關注時間',
    PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `collect`(
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `user_id` INT(11) NOT NULL DEFAULT '0' COMMENT '用戶id',
    `type` INT(11) NOT NULL DEFAULT '0' COMMENT '類型 0書籍 1書單',
    `bill_id` INT(11) NOT NULL DEFAULT '0'  COMMENT '書單id',
    `book_id` INT(11) NOT NULL DEFAULT '0'  COMMENT '書籍id',
    `status`  INT(11) NOT NULL DEFAULT '0' COMMENT '狀態 0正常 1取消收藏',
    `collect_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '收藏時間',
    PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `gift`(
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `img` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '禮物封面圖',
    `title` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '禮物名稱',
    `score` INT(11) NOT NULL DEFAULT '0' COMMENT '積分數',
    `status` INT(11) NOT NULL DEFAULT '0' COMMENT '狀態 0正常 1下架',
    `num` INT(11) NOT NULL DEFAULT '0' COMMENT '兌換次數',
    `explain` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '說明',
    `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
    PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `gift_exchange`(
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `user_id` INT(11) NOT NULL DEFAULT '0' COMMENT '用戶id',
    `gift_id` INT(11) NOT NULL DEFAULT '0' COMMENT '禮物id',
    `status` INT(11) NOT NULL DEFAULT '0' COMMENT '狀態 0兌換失敗 1兌換成功',
    `num` INT(11) NOT NULL DEFAULT '0' COMMENT '兌換個數',
    `score` INT(11) NOT NULL DEFAULT '0' COMMENT '積分',
    `exchange_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '兌換時間',
    PRIMARY KEY(`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `score`(
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `user_id` INT(11) NOT NULL DEFAULT '0' COMMENT '用戶id',
    `num` INT(11) NOT NULL DEFAULT '0' COMMENT '積分總數',
    `remark` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '備註',
    `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '時間',
    PRIMARY KEY(`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `score_rule`(
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `type` INT(11) NOT NULL DEFAULT '0' COMMENT '類型 0簽到 1任務',
    `name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '任務名',
    `status` INT(11) NOT NULL DEFAULT '0' COMMENT '狀態 0未完成 1完成',
    `score` INT(11) NOT NULL DEFAULT '0' COMMENT '積分數',
    PRIMARY KEY(`id`) 
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `checkin`(
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `user_id` INT(11) NOT NULL DEFAULT '0' COMMENT '用戶id',
    `rule_id` INT(11) NOT NULL DEFAULT '0' COMMENT '規則id',
    `progress` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '完成進度',
    `status` INT(11) NOT NULL DEFAULT '0' COMMENT '完成狀態 0未完成 1完成',
    `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '時間',
    PRIMARY KEY(`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `bill_book`(
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `bill_id` INT(11) NOT NULL DEFAULT '0' COMMENT '書單id',
    `book_id` INT(11) NOT NULL DEFAULT '0' COMMENT '書籍id',
    `status` INT(11) NOT NULL DEFAULT '0' COMMENT '狀態 0正常 1移除',
    `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '時間',
    PRIMARY KEY(`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `today_recommend`(
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `book_id` INT(11) NOT NULL DEFAULT '0' COMMENT '書籍id',
    `name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '書名',
    `author` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '作者',
    `publisher` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '出版社',
    `publish_time` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '出版時間',
    `cover` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '封面',
    `type` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '書籍分類',
    `recommend_des` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '推薦語',
    `user_id` INT(11) NOT NULL DEFAULT '0' COMMENT '用戶id',
    `user_phto` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '用戶頭像',
    `user_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '用戶名',
    `num` INT(11) NOT NULL DEFAULT '0' COMMENT '關注數',
    `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '時間',
    PRIMARY KEY(`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `user_recommend`(
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
    `recommend_id` INT(11) NOT NULL DEFAULT '0' COMMENT '推薦id',
    `user_id` INT(11) NOT NULL DEFAULT '0' COMMENT '用戶id',
    `hobby` INT(11)NOT NULL DEFAULT '0' COMMENT '興趣 0不喜歡 1喜歡',
    `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '時間',
    PRIMARY KEY(`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、數據的增刪查改:

增加:INSERT INTO tablename ( field1, field2,...field ) VALUES ( value1, value2,...value ); 如果數據是字符型,必須使用單引號或者雙引號,如:"value"。

刪除:DROP TABLE table_name ; 刪除數據表
     delete from student where T_name = "張三";       刪除某一條數據      

查詢:select * from table_name ;查詢數據表中所有
select * from book limt 0,30 後面的limit m,n (分頁:m(m=(頁數-1)*n)爲略過的條數,n爲每頁多少條)

修改:UPDATE ss SET name ='dahai' WHERE id=1;(set後爲修改值,where爲查詢條件)

3.查詢模型:

(1)、列是變量,變量是可以計算的 

select name,age+1 from table_name
select substring(goods_name,3) ………

(2)、where是表達式,值爲真或者假

select * from table_name where 1

給大家介紹兩個裝逼的術語:

  • 投影運算:從表中取出列
  • 廣義投影:列與列再做運算

4、運算符:

    1)比較運算符:

             <      小於                           != 或 <>      不等於         

             <=     小於或等於                >=      大於或等於   

             In       在某集合內               between   在某範圍內

    2)邏輯運算符:

             NOT 或者 !        邏輯非

             OR 或  ||            邏輯或

            AND 或者 &&     邏輯與

5、模糊查詢:

like模糊匹配   %通配任意字符       _通配單一字符

select * from goods where good_name like ‘%哈哈’
select * from goods where good_name like ‘哈哈___’

6、奇怪的null

null沒有值,無法做比較  ==>   null=null   返回假    null !=null  返回假

select * from goods where name=null    //查不到

查詢怪癖的null我們需要通過is來查詢:

select * from goods where name is null 
select * from goods where name is not null 

7、group分組與統計函數

  • max()      求最大值
  • min()       求最小值
  • avg()       求平均值
  • count()    求行數
  • sum()      求總和

group by cloum_name  分組統計

select * from goods group by cat_id;

8、order by 排序:

  • asc 升序(默認方式)
  • desc 降序

select * from goods order by cat_id 

9、having篩選結果集:

先看一個例子,大家可以動手試一試:

select (a-b) as num from goods having num>100;(此處使用where會報錯)

having:是針對內存裏的結果集的 ,where是針對磁盤裏的數據文件

這裏我就不詳細介紹這兩者的區別,畢竟這一部分就已經脫離了我們入門的概念了,作爲一名前端工程師,上述基礎知識基本夠用了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章