MySQL基础篇(1)

本文详细介绍了MySQL数据库的基础知识,包括数据库的概念、SQL语言、DDL(数据定义语言)、DML(数据操作语言)和DQL(数据查询语言)。重点讲解了如何创建、修改和操作数据库表,以及数据的插入、更新和查询。此外,还讨论了MySQL的特色和语法规范,如不区分大小写的SQL语句、单行和多行注释等。
摘要由CSDN通过智能技术生成

学习目标:

学习MySQL

学习内容:

1、 数据库概述 2、 sql 3、 DDL 4、 DML 5、 DQL-基础查询

学习时间:

2021年7月2日 2021年7月5日

学习产出:

提示:
1、 技术笔记 1 遍
2、CSDN 技术博客 1 篇

数据库概述

为什么学习数据库:

​ 实现数据持久化到本地;

​ 使用完整的管理系统统一管理,可以实现结构化查询,方便管理;

数据库(DataBase)

​ 为了方便数据的存储和管理,它将数据按照特定的

规则存储在磁盘上,就是一个存储数据的仓库。通过数据库管理系统,可

以有效的组织和管理存储在数据库中的数据。

数据库相关概念:

​ DB:数据库(DateBase)

​ 存储数据的容器,它保存了一系列有组织的数据

​ DBMS:数据关系系统(DateBase Management System)

​ 又称为数据库软件或数据库产品,用于创建或管理DB

​ SQL:结构化查询语言(Structure Query Language)

​ 用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据、库软件通用的语言。

在这里插入图片描述

根据不同的存储类型可以分为

​ 关系型数据库

​ 关系型数据库管理系统称为RDBMS,R指Relation

​ Oracle:功能强大,收费

​ MySQL 快捷、可靠 开源、免费

​ SQL Server(微软): 只能安装在Windows操作系统

​ DB2 (IBM):适合处理海量数据,收费

​ 非关系型数据库

​ MongdoDB

​ Redis

Mysql数据库

MySQL是一个关系型数据库管理系统,具有快速、可靠和易于使用的特点。使用标准的sql语言,并且支持多种操作系统,支持多种语言。

MySQL语法规范 :

​ 不区分大小写,建议关键字大写,表名、列名小写

​ 每句话用;

注释 :

​ 单行注释:#注释文字

​ 单行注释:-- 注释文字(要有空格)

​ 多行注释:/* 注释文字 */

sql

结构化查询语言(Structured Query Language)简称SQL,是一种特殊 目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

SQL优点:

​ 不是某个特定数据库供应商专有的语是言,几乎所有DBMS都支持SQL

​ 简单易学

​ 实际上强有力的语言,灵活使用可以进行非常复杂和高级的数据库操作

DDL

数据库存储数据的特点

​ 将数据放到表中,表再放到库中 。

​ 一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名 具有 唯一性。

​ 表具有一些特性,这些特性定义了数据在表中如何存储,类似Java中“类”的 设计。

​ 表由列组成,我们也称列为字段。所有表都是由一个或多个列组成的,每一列 类似java中的”属性” 。

​ 表中的数据是按行存储的,每一行类似于Java中的“对象”。

数据库表的基本概念

1、数据表

​ 表(table)是数据存储的最常见和最简单的形式,是构成关系型数据库的基本元素。表的最简单形式是由行和列组成,分别都包含着数据。美美格尔表都有一个表头和表体,表头定义表名和列名。表中的行被看作是文件中的记录,表中的列被看作是这些记录的字段。

2、记录

​ 记录也被称为一行数据,是表里的一行,在关系型数据库的表里,一行数据是指一条完整的记录。

3、字段

​ 字段是表里的一列,用于保存每条记录的特定信息。数据表的一列包含了特定字段的全部信息。

设计表(数据类型)

​ char(n) 长度为n的定长字符串

​ varchar(n) 最大长度为n的可变长字符串

​ date 日期, 包含年月日

​ datetime 年月日 时分秒

整数

整数

浮点

浮点数

BLOB是一个二进制大对象,可以容纳可变数量的数据,用于存储图片视 频信息

/*
SELECT * FROM student;
*/
-- 脚本语言  不需要编译, 直接通过某种解释器解释执行
SELECT * FROM USER;
-- sql脚本

-- 创建数据库
CREATE DATABASE school_db;

CREATE DATABASE IF NOT EXISTS school_db;

-- 创建数据库并设置编码格式
CREATE DATABASE IF NOT EXISTS school_db CHARSET utf8;

-- 删除数据库
DROP DATABASE schoole_db;

-- mysql不能修改数据库名称

-- 修改字符集
ALTER DATABASE school_db CHARSET utf8;

-- 先创建一个基本的表 不涉及约束
-- 学生基本信息表  学号,姓名,性别,生日,身高,电话,登记时间
-- 用户表,角色,...  sys_user sys_role  hr_  cw
CREATE TABLE t_student(
             num INT,
             NAME VARCHAR(4),
             sex CHAR(1),
             birthday DATE,
             height FLOAT(4,1),
             phone CHAR(11),
             register_time  DATETIME   
)

-- 删除表
DROP TABLE t_student


-- 学生基本信息表  学号,姓名,性别,生日,身高,电话,登记时间
/*
    PRIMARY KEY  主键约束  不能为空,不能重复,一个表中只有一个唯一约束
    AUTO_INCREMENT mysql主键自增(选填) 自增列是主键,类型是整数
    NOT NULL 不能为空
    UNIQUE  唯一约束
    CHECK(height>100.0) 检查约束
    default  默认值
    comment  字段注释 
*/

CREATE TABLE t_student(
            num INT  PRIMARY KEY AUTO_INCREMENT COMMENT'学号 主键',
            NAME VARCHAR(4) NOT NULL COMMENT'姓名',
            sex CHAR(1) DEFAULT '男' COMMENT'性别',
            birthday DATE NOT NULL,
            height FLOAT(4,1) CHECK(height>100.0),
            phone CHAR(11) NOT NULL UNIQUE,
            reg_time DATETIME
)

-- 删除表  
DROP TABLE IF EXISTS t_student;

-- 修改表名   旧表名       新表名
RENAME TABLE student TO t_student;

-- 复制表  例如对某张表进行操作时,备份数据
CREATE TABLE stu LIKE t_student;


-- 添加,删除主键约束
ALTER TABLE t_student ADD PRIMARY KEY(num)
ALTER TABLE t_student DROP PRIMARY KEY

-- 设置主键自增,删除主键自增
ALTER TABLE t_student MODIFY num INT AUTO_INCREMENT;
ALTER TABLE t_student MODIFY num INT

-- 设置列不能为空,可以为空
ALTER TABLE t_student MODIFY NAME VARCHAR(4) NOT NULL;
ALTER TABLE t_student MODIFY NAME VARCHAR(4)  NULL;

-- 添加唯一约束,删除唯一约束
ALTER TABLE t_student ADD CONSTRAINT uni_phone UNIQUE(phone)
ALTER TABLE t_student DROP INDEX uni_phone

-- 添加检查约束,删除检查约束
ALTER TABLE t_student ADD CONSTRAINT check_height CHECK(height>100)
ALTER TABLE t_student DROP CHECK check_height

-- 修改表结构   添加列,删除列,修改列的名称,类型
ALTER TABLE t_student ADD weight FLOAT(5,2)
ALTER TABLE t_student ADD weight FLOAT(5,2) AFTER height

ALTER TABLE t_student DROP weight

ALTER TABLE t_student CHANGE phone mobile CHAR(11)

ALTER TABLE t_student  MODIFY mobile VARCHAR(11)


-- alter table 表名 add/drop/change/modify 

DML

DML 数据操作语言(Data Manipulation Language)
常用操作:

​ insert(插入数据)

​ delete(删除数据)

​ update(修改数据)

--  now() 获取数据库所在系统的当前时间
 -- 插入数据
 INSERT INTO t_student(NAME,sex,birthday,height,mobile,reg_time)
                VALUES('张三','男','2000-1-1',170.1,'13333333333',NOW())
                
                
 INSERT INTO t_student SET NAME='李四',sex='女',birthday='2001-1-1',mobile='135555555',
                               reg_time=NOW()

INSERT INTO t_student(NAME,sex,birthday,height,mobile,reg_time)
       VALUES('张三1','男','2000-1-1',170.1,'13333333331',NOW()),
             ('李四1','男','2000-1-1',170.1,'13333333332',NOW())
             
             
  DROP TABLE stu
  
  -- 复制表结构
  CREATE TABLE stu LIKE t_student
  
  -- 复制表数据
  INSERT INTO stu(NAME,sex,birthday,height,mobile,reg_time) 
          SELECT  NAME,sex,birthday,height,mobile,reg_time  FROM t_student
                    
                    
  -- 修改语句
  
  UPDATE t_student SET NAME='王五'                 
                                       -- 修改时需要注意条件            
  UPDATE t_student SET NAME='张三',sex='女'  WHERE num = 1     
  
  
 -- 删除语句  删除注意删除条件                     
  DELETE FROM  t_student WHERE num = 1          

DQL-基础查询

DQL(Data Query Language)数据查询语言查询是使用频率最高的一个操作, 可以从一个表中查询数据,也可以从多个表中查询数据

基础查询

语法:

​ select 查询列表 from 表名;

特点:

​ 查询列表可以是:表中的字段、常量、表达式、函数

​ 查询的结果是一个虚拟的表格

-- 查询语句 DQL  使用频率最高的语句
-- select  查询列表(结果)  from  表名;


-- select 结果  from  表名   where  条件  排序  分组  行数限制  子查询
-- 多表  关联查询

-- 查询结果进行处理
--     常量
SELECT 100,NAME FROM t_student 
--	   表达式
SELECT 10*10,NAME FROM t_student 
SELECT height+5,NAME FROM t_student 
--	   函数
SELECT VERSION()
SELECT CHAR_LENGTH(NAME) FROM t_student

-- * 所有列
SELECT * FROM t_student

-- 查询特定列(建议使用的)
SELECT num,NAME,sex FROM t_student

-- 去除重复数据, 针对查询出来的结果, 要求是所有列都是相同
SELECT DISTINCT * FROM t_student

SELECT DISTINCT NAME,sex FROM t_student
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值