MySQL基础篇

这篇博客详细介绍了MySQL的基础知识,包括数据库概述、SQL语法、DDL、DML、DQL、DCL操作,以及函数、约束和多表查询。讲解了如何创建、修改和删除数据库及表,数据类型的使用,SQL查询语句的执行顺序,以及事务的概念和特性。还涉及了函数、外键约束和不同类型的多表查询,如内连接、外连接和子查询。
摘要由CSDN通过智能技术生成

MySQL基础篇

1.mysql概述

1.1数据库相关概述

(1)数据库相关概念

名称 全称 简称
数据库 存储数据的仓库,数据是有组织的进行存储 DataBase(DB)
数据库管理系统 操纵和管理数据库的大型软件 DataBase Management System(DBMS)
SQL 操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 Structured Query Language(SQL)

1.2Mysql数据库

net start/stop mysql
  • 客户端连接

    mysql [-h 127.0.0.1] [-p 3306] -u root -p
    

    注意:需要配置一下path的环境变量

  • 关系型数据库(RDBMS)

    概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库

    特点:1. 使用表存储数据,格式统一,便于维护

    ​ 2.使用sql语言操作,标准统一,使用方便

  • 数据模型

1657958408183

2.SQL

2.1-SQL通用语法

  • 1.SQL语句可以单行或者多行书写,以分号结尾
  • 2.SQL语句可以使用空格、缩进来增强语句的可读性
  • 3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
  • 注释
    • 单行注释:–注释内容或注释内容(MySQL特有)
    • 多行注释:/* 注释内容 */

2.2 SQL分类

分类 全称 说明
DDL Data Definition Language 数据定义语言,用来定义数据库对象(数据库、表、字段)
DML Data Maniputlation Language 数据操作语言,用来对数据表中的数据进行增删改
DQL Data Query Language 数据查询语言,用来查询数据库中表的记录
DCL Data Control Language 数据控制语言,用来创建数据库用户、控制数据库的访问权限

2.3 DDL

2.3.1数据库的操作
  • 数据库操作

    • 查询

    • 查询所有数据库

    show databases;
    
    • 查询当前数据库

      select databases;
      
  • 创建 create

    create database [if not exits] 数据库名 [default charset 字符集] [collate 排序规则];
    
  • 删除

    drop databases [if exists] 数据库名
    
  • 使用

use 数据库名;
2.3.2表的操作
  • 查询当前数据库所有表

    show tables;
    
  • 查询表结构

    desc 表名
    
  • 查询指定表的建表语句

    show create table 表名;
    
  • 表的创建

    create table 表名(
       字段1 字段1类型 [comment 字段1注释],
       字段2 字段2类型 [comment 字段2注释],
       字段3 字段3类型 [comment 字段3注释],
      ...
       字段n 字段n类型 [comment 字段n注释]
    )[comment 表注释];
    

    注意:[…]为可选参数,最后一个字段后面没有逗号

2.3.3数据类型及案例
  • 数值类型
分类 类型 大小 有符号(signed)范围 无符号(无signed)范围 描述
tinyint 1 bytes ( -128,127) (0,255) 小整数值
smallint 2 bytes (-32768,32767) (0.65535) 大整数值
mediumint 3 bytes (-8388608,8388607) (0,16777215) 大整数值
int或integer 4 bytes (-2147483648,2147483647) (0,4294967295) 大整数值
bigint 8 bytes (-263,263-1) (0,2^64-1) 极大整数值
float 6 bytes ( -3.402823466 E+38.3.402823466351 E+38) 0和(1.175494351 E-38,3.402823466 E+38) 单精度浮点数值
double 8bytes (-1.7976931348623157 E+308,1.7976931348623157 E+308) (-1.7976931348623157 E+308,1.7976931348623157 E+308) 双精度浮点数值
decimal 依赖于M(精度)和D(标度)的值 依赖于M(精度)和D(标度)的值 小数值(精确定位数)
  • 字符串类型
分类 类型 大小 描述
CHAR 0-255 bytes 定长字符串
VARCHAR 0-65535 bytes 变长字符串
TINYBLOB 0-255 bytes 不超过255个字符的二进制数据
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
TEXT 0-65 535 bytes 长文本数据
MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295 bytes 极大文本数据
  • char()和varcahr()比较

    char()-------->性能好

    varchar(10)---------->性能比较差

  • 日期类型

    分类 类型 大小 范围 格式 描述
    DATE 3 1000-01-o1至9999-12-31 YYYY-MM-DD 日期值
    T工ME 3 -838:59:59 至838:59:59 HH :MM : ss 时间值或持续时间
    YEAR 1 1901至 2155 Yrrx 年份值
    DATETIME 8 1000-01-01 00:00:00至9999-12-31 23:59:59 YYYY-MM-DD HH:MIM : ss 混合日期和时间值
    T工MESTAMP 4 1970-01-01 00:00:01至2038-01-19 03:14:07 YYYx一MM-DD HH :MM : ss 混合日期和时间值,时间戳
  • 案例

    根据需求创建表

    设计一张员工信息表,要求如下

    • 1.编号(纯数字)

    • 2.员工工号(字符串类型,长度不超过10位)

    • 3.员工姓名(字符串类型,长度不超过10位)

    • 4.性别(男/女,存一个汉字)

    • 5.年龄(正常人年龄,不可能存储负数)

    • 6.身份证号(二代身份证均为18位,身份证中有x这样的字符)

    • 7.入职时间(取值年月日即可)

      create table emp(
      id int comment '编号',
      workno varchar(10) comment '工号',    
      name varchar(10) comment '姓名',
      gender char(1) comment '性别',    
      age tinyint unsigned comment '年龄',    
      idcard char(18) comment '身份证号',    
      entrydate date comment '入职时间'    
      )comment '员工表';
      
2.3.4 SQL-DDL-表操作-修改和删除
  • 添加字段

    alter table 表名 add 字段名 类型(长度) [comment注释] [约束]
    案例演示:为emp表增加一个新的字段“昵称”为nickname,类型为varchar(20)
    alter table emp add nickname varchar(20) comment '昵称';
    
  • 修改数据类型

     alter table 表名 modify 字段名 新数据类型(长度);
     
    
  • 修改字段名和字段类型

    alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
    案例:将emp表的nickname字段修改为username,类型为varchar(30)
    alter table emp change nickname username varchar(30);
    
  • 删除字段

    alter table 表名 drop 字段名;
    案例:将emp表的字段username删除
    alter table emp drop username;
    
  • 修改表名

    alter table 表名 rename  to 新表名;
    案例:
    将emp表的表名修改为employee;
    alter table emp rename to employee;
    
  • 删除表

    drop table [if exists] 表名;
    
  • 删除指定表,并重新创建该表

    truncate table 表名;
    

    注意:在删除表时,表中的全部数据也会被删除

2.4DML

2.4.1介绍
  • DML全称:Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作

​ 1. 添加数据,insert

​ 2.修改数据,update

​ 3.删除数据,delete

  • 添加数据

    1.给指定字段添加数据

    insert into 表名(字段名1,字段名2,...) values(值1,值2,...);
    

    2.给全部字段添加数据

    insert into 表名 values(值1,值2,...);
    

    3.批量添加数据

    insert into 表名(字段名1,字段名2,...) values(值1,值2,...),(值1,值2,...),(值1,值2,...);
    
    insert into 表名 values(值1,值2,...),(值1,值2,...),(值1,值2,...);
    

    注意:

    1.插入数据时,指定的字段顺序需要与值的顺序是一一对应的。

    2.字符串和日期型数据应该包含引号中。

    3.插入的数据大小,应该在字段的规定范围内。

    案例:

    --插入指定数据
    insert into emp(id,workno,name,gender,age,idcard,entrydate) values(1,'1','itcast','男',10,'123456789123456789','2000-01-01');
    --全部字段添加数据
    insert into emp values(2,'2','张三丰','男',18,'123456789123456780','2005-01-01');
    --批量添加
    insert into emp values (3,'3','韦一笑', '男',38,'123456789123456770','2005-01-01'),(4,'4','赵敏', '女',18,'123456789123456770','2005-01-01');
    
  • 修改数据

    update 表名 set 字段名1=值1,字段名2=值2,.....[where 条件];
    案例:
    --修改id为1的数据,将name修改为itworker
    update employee set name ='itworker' where id=1;
    --修改id为1的数据,将name修改为小昭,gender修改为女
    update employee set name = '小昭',gender='女' where id=1;
    --将所有的员工入职日期修改为2008-01-01
    update employee set entrydate='2008-01-01';
    

    注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。

  • 删除数据

    delete from 表名 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还宠金金金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值