MySQL学习笔记(一)

数据库是什么

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

MySQL数据库特性

  • MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司
  • MySQL 是开源的,所以你不需要支付额外的费用。
  • MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  • MySQL 使用标准的 SQL 数据语言形式。
  • MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、- - Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
  • MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。

下载和配置MySQL数据库

  1. 下载地址
  2. 安装完成后将安装目录下的bin目录添加至环境变量
  3. 配置C:\ProgramData\MySQL\MySQL Server 8.0下的my.ini文件,设置为
    [mysql]
    default-character-set=utf8
    [mysqld]
    character-set-server=utf8
    
    其中也可以更改端口号,数据库存储位置等
  4. 在任务管理器的服务页面中可以启动或者关闭mysql服务。或者在cmd中输入命令
    net start mysql80
    net stop mysql80
    
    来启动或关闭
  5. 在cmd中输入mysql -u [username] -p [password]即可进入(用户名和密码是在安装时设置的)

一些术语

  • 数据库: 数据库是一些关联表的集合。
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
  • 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
  • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • 外键:外键用于关联两个表。
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 表头(header): 每一列的名称;
  • 列(col): 具有相同数据类型的数据的集合;
  • 行(row): 每一行用来描述某条记录的具体信息;
  • 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
  • 键(key): 键的值在当前列中具有唯一性。

操作数据库

  • 所有完整的SQL语句以;结尾
  • 创建数据库
    CREATE DATABASE database_name;
    
    实例
    CREATE DATABASE mydb;
    
  • 删除数据库
    DROP DATABASE database_name;
    
  • 选择数据库
    USE database_name;
    
    只有选择了数据库才能在其中创建表

数据类型

  • 数值类型
    数据类型
  • 日期和时间
    日期时间
  • 字符串类型
    字符串类型

操作数据表

  • 创建数据表

    CREATE TABLE table_name (column_name column_type);
    

    实例

    CREATE TABLE IF NOT EXISTS users(
       id INT UNSIGNED AUTO_INCREMENT,
       username VARCHAR(100) NOT NULL,
       gender TINYINT UNSIGNED DEFAULT 2,
       PRIMARY KEY ( id )
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    解析

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

    DROP TABLE table_name;
    
  • 插入数据

    INSERT INTO table_name ( field1, field2,...fieldN )
    VALUES ( value1, value2,...valueN );
    

    实例

    INSERT INTO users (username, gender )
    VALUES ( '小明', 1 );
    
    INSERT INTO users (username, gender )
    VALUES ( '小红', 0 );
    
  • 查询数据

    SELECT column_name,column_name
    FROM table_name
    [WHERE Clause]
    [LIMIT N];
    

    解析

    • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
    • SELECT 命令可以读取一条或者多条记录。
    • 可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
    • 可以使用 WHERE 语句来包含任何条件。
    • 可以使用 LIMIT 属性来设定返回的记录数。

    实例

    SELECT * FROM users;
    

    结果

    mysql> select * from users;
    +----+----------+--------+
    | id | username | gender |
    +----+----------+--------+
    |  1 | 小明     |      1 |
    |  2 | 小红     |      0 |
    +----+----------+--------+
    2 rows in set (0.00 sec)
    
  • WHERE子句

    SELECT field1, field2,...fieldN FROM table_name1, table_name2...
    [WHERE condition1 [AND [OR]] condition2.....
    

    解析

    • 查询语句中你可以使用一个或者多个表,表之间使用逗号, 分割,并使用WHERE语来设定查询条件。
    • 可以在 WHERE 子句中指定任何条件。
    • 可以使用 AND 或者 OR 指定一个或多个条件。
    • WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
    • WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。

    实例

    SELECT * FROM users WHERE id = 1;
    

    结果

    mysql> select * from users where id = 1;
    +----+----------+--------+
    | id | username | gender |
    +----+----------+--------+
    |  1 | 小明     |      1 |
    +----+----------+--------+
    1 row in set (0.00 sec)
    
  • 更新数据

    UPDATE table_name SET field1=new-value1, field2=new-value2
    [WHERE Clause]	
    

    解析

    • 可以同时更新一个或多个字段。
    • 可以在 WHERE 子句中指定任何条件。
    • 可以在一个单独表中同时更新数据。

    实例

    UPDATE users SET gender = 0 WHERE id = 1;
    

    结果

    mysql> select * from users;
    +----+----------+--------+
    | id | username | gender |
    +----+----------+--------+
    |  1 | 小明     |      0 |
    |  2 | 小红     |      0 |
    +----+----------+--------+
    2 rows in set (0.00 sec)
    
  • 删除数据

    DELETE FROM table_name [WHERE Clause]
    

    解析

    • 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
    • 可以在 WHERE 子句中指定任何条件
    • 可以在单个表中一次性删除记录。

    实例

    DELETE FROM users WHERE id = 1;
    

    结果

    mysql> select * from users;
    +----+----------+--------+
    | id | username | gender |
    +----+----------+--------+
    |  2 | 小红     |      0 |
    +----+----------+--------+
    1 row in set (0.00 sec)
    
  • LIKE子句

    SELECT field1, field2,...fieldN 
    FROM table_name
    WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
    

    解析

    • 可以在 WHERE 子句中指定任何条件。
    • 可以在 WHERE 子句中使用LIKE子句。
    • 可以使用LIKE子句代替等号 =
    • LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
    • 可以使用 AND 或者 OR 指定一个或多个条件。
    • 可以在 DELETEUPDATE 命令中使用 WHERE...LIKE 子句来指定条件。

    实例

    SELECT * FROM users WHERE username LIKE '%小%';
    

    结果

    mysql> SELECT * FROM users WHERE username LIKE '%小%';
    +----+----------+--------+
    | id | username | gender |
    +----+----------+--------+
    |  2 | 小红     |      0 |
    +----+----------+--------+
    1 row in set (0.00 sec)
    
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值