MySQL学习笔记(二)

学习地址 p4-p7

常见问题

乱码问题
  • 视频教程中使用的是GBK编码,显示乱码解决方法告诉服务器客户端使用的GBK编码:set name gbk;服务器端返回的数据就是gbk编码格式。
  • .php是utf8编码,.php需要连接mysql,同上设置set name utf8;
语法问题
  • 输入语句不执行继续下一行等待输入:sql语句可以换行,遇到;时认为这条语句结束。
  • 如果语句打错了怎么办(1064问题):仔细检察,\c跳出执行当前语句,centos下可以按键重新输入。
大小写问题
  • MySQL在Win系统下默认都不区分大小写,配置信息在my.ini文件中
  • 在Linux下,数据库名、表名、变量名严格区分大小写,配置信息在/etc/my.cnf文件中
创建数据表

通用语法:CREATE TABLE table_name (column_name column_type);
实例:

1
2
3
4
5
6
7
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
id INT UNSIGNED AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
author VARCHAR(40) NOT NULL,
date DATE,
PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

实例解析:

  • 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
  • AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
  • PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
  • ENGINE 设置存储引擎,CHARSET 设置编码格式。

教师语录: 多百度,拒绝做伸手党 !

增删改查 之 insert

  • 查看表结构:desc table_name
  • 插入数据的逻辑:往哪张表添加行 + 给哪几列添加值 + 添加什么值
  • 通用插入语法:

    1
    2
    3
    4
    NSERT INTO table_name ( field1, field2,...fieldN )
    VALUES
    ( value1, value2,...valueN );
    // 注: 如果数据是字符型,必须使用单引号或者双引号,如:"value"。
  • 读取数据表:select * from table_name;

    注:

    • 如果设置了自增属性可以不指定值,插入省去这列即可
    • 如果设置了默认值不指定值则设为默认值
    • 如果赋值行插入所有列,则可以不声明待插入的列
    • 如果设置了不为空但未插入值则报错
    • 列与值必须一一对应!

增删改查 之 update

  • 更改逻辑: 改哪张表 + 改哪几列 + 改成什么值 + 改哪几行
  • 更改通用语法:
    1
    2
    3
    update table_name set
    列1=value1,列2=value2,...
    where expresion

注:

  • expresion是表达式,符合条件的行都会执行更改。
    • 上面语句可以在一行中执行

增删改查 之 delete

  • 删除逻辑:哪张表上的数据要删 + 删除哪些行
  • 不存在删除列,只能删除整行
  • 删除语法: delete from table_name where expresion

增删改查 之 query

  • MySQL 数据库使用SQL SELECT语句来查询数据。
  • 查询通用语法:

    1
    2
    3
    4
    SELECT column_name,column_name
    FROM table_name
    [WHERE Clause]
    [LIMIT N][ OFFSET M]
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。

  • SELECT 命令可以读取一条或者多条记录。
  • 你可以使用星号*来代替其他字段,SELECT语句会返回表的所有字段数据,即在读取整张数据表的基础上限制某些条件。
  • 你可以使用 WHERE 语句来包含任何条件。
  • 你可以使用 LIMIT 属性来设定返回的记录数。
  • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。