MySQL学习笔记之基础操作(一)

1. 概述

  • 数据存储
    1. 人工管理 储存量有限,共享麻烦,操作混乱
    2. 文件管理 优点:可长期保存,存储大量数据,使用简单缺点: 一致性差,查找不便,冗余比较大
    3. 数据库管理 优点:降低冗余度,提高增删改查效率,易扩展,便调用缺点: sql或特定语句,相对比较专业
  • 基本概念数据库: 按照数据一定结构,存储管理数据的仓库。数据库是在数据库管理系统管理和控制下,在一定介质上的数据集合。
  • 数据库管理系统: 管理数据库的软件,用于建立和维护数据库。
  • 关系型: 采用关系模型(二维表)来组织数据结构的数据库,如Oracle、SQL_Server、MySQL非关系型: 不采用关系模型组织数据结构的数据库,如:MongoDB、Redis

2. MySQL

TcX --> Sun -- > Oracle

  • 特点
    • 是开源数据库,使用C和C++编写
      • 能够工作在众多不同的平台上
      • 提供了用于C、C++、Python、Java、Perl、PHP、Ruby众多语言的API
    • 存储结构优良,运行速度快
    • 功能全面丰富
  • 安装
  • 启动和连接MySQL服务
    • 服务端启动
      • 查看MySQL状态 sudo service mysql status
      • 启动/停止/重启sudo service mysql / start / restart
    • 连接数据库mysql -h 主机地址 -u 用户名 -P注意回车后输入数据库密码如果链接自己主机数据库可省略-h选项
      • 关闭连接ctrl + DexitMySQL 数据库结构数据元素---> 记录 ---> 数据表 --->数据库基本概念解析
      • 数据表(table): 存放数据的表格
      • 字段(column): 每个列,用来不表示该列数据的含义
      • 记录(row) : 每行,表示一组完整的数据3. SQL语言
    • 什么是SQL结构化查询语言(Structured Query Language),一种特殊目的的编程语言,是一种数据查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
    • SQL语言特点
      • SQL语言基本上独立于数据库本身
      • 各种不同的数据库对SQL语言的支持与标准存在着细微的不同
      • 每条命令以;结尾
      • SQL命令(除了数据库名和表名)关键字和字符串可以不区分字母大小写4. 数据库管理
    • 默认库:
      • information_schema :用户信息数据库,提供访问数据库元数据的方式。保存服务器维护的所有其它数据库的信息
      • mysql :核心数据库,主要负责存储数据库用户、权限设置、关键字等mysql控制和管理信息sys 所有数据来源于performance_schema:目标是把performance_schema复杂度降低performace_schema 收集数据服务器性能参数。
      • hive 自建数据库
    • 创建库
    • create database 库名 [character set utf8] # 创建stu数据库,编码为utf8
      create database stu character set utf8;
      create database stu character=utf8;注意:库名的命令
      1. 数字、字母、下划线,但不能使用纯数字
      2. 库名区分字母大小写
      3. 不要使用特殊字符和mysql关键字
    • 切换库
      • use 库名;# 使用 stu 数据库
        use stu;
    • 查看当前所在库
      • select database();
    • 删除库
      • drop database 库名;# 删除 seasiloDB数据库
        drop database seasiloDB5. 数据表管理
    • 基本思考过程
      1. 确定存储内容
      2. 明确字段构成
      3. 确定字段数据类型
    • 基础数据类型
      • 数字类型
        • 整数类型:INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT
        • 浮点类型: FLOAT, DOUBLE, DECIMAL
        • 比特值类型:BIT
      • 字符串类型
        • 普通字符:CHAR, VARCHAR
        • 存储文本:TEXT
        • 存储二进制数据:BLOB
        • 存储选项型数据:ENUM, SET
      • 注意:
        • char: 定长,即指定存储字节数后,无论实际存储了多少字节数据,最终都占指定的字节大小 。默认只能存1字节数据。存取效率高。
        • varchar:不定长,效率偏低,但是节省空间,实际占用空间根据实际存储数据大小而定。必须要指定存储大小varchar(50)
        • enum用来存储给出的多个值中的一个值,即单选,enum(“A”,“B","C")
        • set用来存储给出的多个值中一个或多个值,即多选,set(‘A’,'B','C')

3. 表的基本操作

  • 创建表create table 表名(字段名 数据类型 约束,字段名 数据类型 约束,...字段名 数据类型 约束 )
    • 字段约束设置数字为无符号则加上UNSIGNED字段不为NULL可设置字段属性为NOT NULL
    • DEFAULT 设置字段默认值
    • COMMENT 增加字段说明
    • AUTO_INCREMENT 定义列为自增的属性,一般用于主键,数值会自动加1.
    • PRIMARY KEY 关键字用于定义列为主键。 主键的值不能重复,且不能为空。
      • # 创建班级表
      • create table class (id int primary key auto_increment,name varchar(32) not null,age tinyint unsigned not null,sex enum('w','m'),score float default 0.0);
      • # 创建兴趣班表
      • create table hobby (id int primary key auto_increment,name varchar(32) not null,hobby set('sing','dance','draw'),level char not null,price decimal(6,2),remark text);
    • 字段约束
      • show tables;
    • 查看表结构
      • desc 表名;
    • 查看数据表创建信息
      • show create table 表名;
    • 删除表
      • drop table 表名;
  • 6. 表数据基本操作
    • 插入(insert)
      • 以记录为单位,一次插入一行记录;字符串须引起来;
      • insert into 表名 values(值1,值2....),(值1,值2),...;
      • insert into 表名 (字段1,....) values (值1,值2),...;
      • insert into class values (2,'Toby',19,'m',99),(1,'Sam',12,'m',90);
      • insert into class (name,age,sex,score) values ('Toby',28,'m',99);
    • 查询(select)
      • select * from 表名 [where 条件]; select 字段1,字段2 from 表名 [where 条件];
      • select * from class; select name,age from class;
      • where 子句 where子句在sql语句中扮演了重要角色,主要通过一定的运算条件进行数据的筛选,在查询、删除、修改中使用。
    • 算数运算符
      • 运算符作用+ - * / %加 减 * / 余# 示例 select * from class_1 where age % 2 = 0;
    • 比较运算符
      • 符号描述= != > < <= >=等,不等,大小于
      • BETWEEN 在两值之间
      • NOT BETWEEN不在两值之间
      • NOT IN不在集合中
      • IS NULL为空
      • IS NOT NULL不为空
      • #示例:
      • select * from class where age > 88;
      • select * from class where age between 18 and 30;
      • select * from class where age in (10,30);
    • 逻辑运算符
      • 运算符号作用
      • NOT AND OR逻辑非、与 、或
      • #示例 select * from class where sex="m" and age > 9;
    • 运算优先级 可借用括号改变默认优先级运算符优先级
    • 更新表记录(update)
      • update 表名 set 字段1=值1,字段2=值2,.... where 条件;
      • 注意:
        • update 语句后如果不加where条件,所有记录全部更新
        • # 示例
        • update class set age=18,sex=o where name="tony"; update class set age=18,sex=o where name = "tony"; update class set age=age-1;# 批量更新
    • 删除表记录(delete)
      • delete from 表名 where 条件;
      • 注意:delete 语句后后果不如where 条件,所有记录全部清空
      • # 示例
        • delete from class where name='sby';
版权声明:seasilo 发表于 2020-12-31 21:16:32。
转载请注明:MySQL学习笔记之基础操作(一) | 海筒自习室

暂无评论

暂无评论...