MySQL基础+SQL基本语法

本文介绍了MySQL的基础知识,包括数据库的概念、MySQL的特点,以及如何管理数据库(创建、查询、删除)、数据表的详细操作(创建、修改、删除结构)和用户管理(创建、删除用户,权限分配)。此外,还涉及了SQL的基本语法和MySQL中的数据类型,如数值型、字符串、日期时间类型。
摘要由CSDN通过智能技术生成

一、数据库概述

  数据库(Database,DB)一个按照一定的数据结构来组织、存储数据的仓库。用户可以对数据进行增加、修改、删除和查询(简称“增删改查”)操作。
  数据库管理系统(Database Management System,DBMS)是指一种操作和管理数据库的软件,用来建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户可以通过它访问数据库中表的数据。
  按照数据的组织形式,数据库可以分为关系型数据库(有MySQL, Oracle, SQL Server等)非关系型数据库(也称NoSQL, 有HBase, MongoDB, Redis等)两种。

二、MySQL简介

  MySQL是一个流行的关系型数据库管理系统,由瑞典MySQLAB公司开发, 目前属于Oracle旗下产品。
  MySQL拥有体积小、速度快、性能高、使用简单等优点, 开放源代码, 使用门槛低。
Tips:(LAMP组合)
…操作系统-Linux
…Web服务器-Apache
…数据库-MySQL
…服务器端脚本解释器-PHP

三、MySQL数据库管理

Tips:
查看mysql数据库版本的几种方法

  1. 创建数据库
      create database 数据库名;
    在这里插入图片描述
  2. 查询数据库
      show databases;
    在这里插入图片描述
  3. 删除数据库
      drop database 数据名;
    在这里插入图片描述

四、MySQL数据表管理

  数据库的数据文件存放在MySQL的data目录下,每个数据库对应一个目录,在数据库目录中存储各个数据表文件。每个数据表对应3个文件。分别为.frm、.myd、.myi类型文件。

  1. 创建数据表
    use 数据库名;
    create table 表名(字段名 类型(长度), 字段名 类型(长度))
    创建数据库语句要明确数据表的结构、各字段的名称、类型及长度等信息。
  2. 查看数据表
    show tables;       (–列出所有表名)
    describe 库名.表名;    (–查看某一个表在具体结构)
    若使用use语句进入某个数据库,则可以用"describe 表名"直接查看该库中某表的结构
  3. 修改数据表
    (1) 修改表名
      alter table 旧表名 rename 新表名;
    (2) 修改字段名
      alter table 表名 change 旧属性名 新属性名 新数据类型;
      如果不想修改该字段的数据类型,则只需写成原来的类型即可
    (3) 修改字段类型
      alter table 表名 modify 属性名 数据类型;
    (4) 增加字段
      alter table 表明 add 属性名 数据类型;
    (5) 删除字段
      alter table 表名 drop 属性名;
  4. 删除数据表
      use 数据库名;
      drop 表名;

      drop table 数据库名.表名;

五、MySQL用户管理

  为保证数据库的安全性,MySQL提供了一套完善的数据库用户及权限管理系统。
  在初始化MySQL后,会默认创建一个root用户,这个用户属于数据库超级管理员角色,具有一切权限,但root用户权限太大,以至于该用户可能误操作或可以破坏数据库系统,容易造成严重的安全问题。因此,需要创建一些权限小的用户,用于对普通数据库的管理运维,以及通过数据库进行开发。MySQL用户账户的创建、授权及其他管理,均需使用root用户。
5. 创建与删除用户
(1) 创建用户
  create user ‘username’@’host’ identified by ‘password’;
username-要创建的用户名
host-指定用户在哪个主机上可以登录,若该用户是本地用户可以使用localhost,若想让该用户从任意远程主机登录,则可以使用通配符%
password-表示该用户的登录密码,密码可以为空,若密码为空,则用户不需要密码登录服务器
例如:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2) 删除用户
  drop user ‘username’@‘host’;
6. 授予与回收用户权限
(1) 授予用户权限
  grant priviledges on dbname.tablename to ‘username’@‘host’;
priviledges-要授予用户的操作权限(select、insert、update等)如果要授予用户所有权限则使用all
dbname-数据库名
tablename-数据表名
如果要对所有的数据库和表的相应操作权限,则可用“*”表示
在这里插入图片描述在这里插入图片描述
注意:分 号 要 记 得 加 上
(2) 回收用户权限
  revoke priviledges on dbname.tablename from ‘username’@‘host’;
7. 设置与更改用户密码
  set password for ‘username’@‘host’ = password(‘newpassword’);
-----------------------------------------我是分界线------------------------------------------

六、SQL基本语法

SQL(结构化查询语言):
  (1)DDL-数据定义语句,定义了不同数据库、表、列、索引等数据库对象。常用的语句关键字包括create,drop,alter等。
  (2)DML-数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用语句的关键字包括insert,delete,update,select等。
  (3)DCL-数据控制语句,定义了数据库、表、字段、用户的访问权限和安全级别。常用语句的关键字包括grant,revoke等。

1. MySQL基本数据类型:数值型、字符串、日期和时间类型

(1)数值型:整型、浮点型、定点型

数据类型存储空间 表示范围
TINY INT1-128~127
SMALL INT 2-32768~32767
MEDIUM INT3 -8388608~8388607
INT4
BIG INT8
FLOAT(M,D)48位精度,M数字总位数,D小数点后数字位数
DOUBLE(M,D)88位精度,M数字总位数,D小数点后数字位数

  (2)字符串类型:char、varchar、binary、varbinary、blob、text、enum、set

类型大小用途
CHAR0-255字节定义固定长度字符串
VARCHAR0-65535 字节定义可变长度字符串
TINYBLOB0-255字节不超过 255 个字符的二进制字符串
TINYTEXT0-255字节短文本字符串
BLOB0-65 535字节二进制形式的长文本数据
TEXT0-65 535字节长文本数据
MEDIUMBLOB0-16 777 215字节二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215字节中等长度文本数据
LONGBLOB0-4 294 967 295字节二进制形式的极大文本数据
LONGTEXT0-4 294 967 295字节极大文本数据
ENUM0-4 294 967 295字节极大文本数据
  •   CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
    CHAR : 当你想要储存一个长度不足 255 的字符时,MySQL 会用空格来填充剩下的字符。因此在读取数据时,char 类型的数据要进行处理,把后面的空格去除。
 总结起来,有几点:
 - 经常变化的字段用 varchar
 - 知道固定长度的用 char
 - 尽量用 varchar
 - 超过 255 字符的只能用 varchar 或者 text
 - 能用 varchar 的地方不用 text
  •   BINARY 和 VARBINARY用来存储二进制字符串,存储和使用方式与CHAR和VARCHAR类似。它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值。另外,当保存BINARY值时,会在它右边填充0x00(零字节)值以达到指定长度。
  •   BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。
 BLOB和TEXT的不同点:
 - 当保存或检索BLOB和TEXT的值时不删除尾部空格
 - 在比较时,会用空格对TEXT进行扩充以适应比较的对象
 - 对于BLOB和TEXT的索引,必须指定索引前缀的长度。
 - BLOB和TEXT不能有默认值
  • ENUM表示枚举类型
  • SET表示集合对象,可包含0~64个成员,其所占存储空间的大小是因集合成员数量的不同而有所不同的。
集合成员数量所占存储空间(Bytes)
1~81
9~162
17~243
25~324
32~648
SET和ENUM的不同点:
 - SET可以一次选择多个成员,ENUM只能选择一个

  (2)日期和时间类型:DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
TIMESTAMP类型有专有的自动更新特性,将在后面描述。

类型大小(字节)范围格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3‘-838:59:59’/‘838:59:59’HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 UTC~ 2038-1-19 03:14:07 UTCYYYYMMDD HHMMSS混合日期和时间值,时间戳

2.数据插入(INSERT语句)

插入语句 insert into 表名 values (值1, 值2, …);

INSERT INTO 表名 VALUES (值1, 值2, ..);

此时values后的值的排列要与该表中存储的列名排列一致

INSERT INTO 表名 (列1,列2, ...) VALUES (值1, 值2, ....);

此时values后的值的排列要与into句子后的列名排列一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值