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是针对磁盘里的数据文件

这里我就不详细介绍这两者的区别,毕竟这一部分就已经脱离了我们入门的概念了,作为一名前端工程师,上述基础知识基本够用了。

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