MySQL数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库相关的知识,希望对你有一定的参考价值。

基础篇(SQL通用语法及分类)

SQL通用语法

1,SQL语句可以单行书写或多行书写,以分号结尾。

2,SQL语句可以使用空格/缩进来增强语句的可读性。

3,mysql数据库的SQL语句不区分大小写,关键字建议大写。

4,注释:

  • 单行注释:--注释内容或#注释内容(数据库特有)
  • 多行注释:/*注释内容*/

SQL分类

DDL:数据定义语言,用来定义数据库对象(数据库,表,字段)
DML:数据操作语言,用来对数据库表中的数据进行增删改
DQL:数据查询语言,用来查询数据库中表的记录
DCL:数据控制语言,用来创建数据库用户,控制数据库的控制权限


DDL


DDL-数据库操作
查询

查询所有数据库

SHOW DATABASES;

查询当前数据库

SELECT DATABASE();

创建

CREATE DATABASE [IF NOT EXISTS] 数据库名[DEFAULT CHARSET字符集]

[COLLATE排序规则];

删除

DROP DATABASE [IF EXISTS]数据库名;


使用

USE 数据库名;

注意
  1. []当中的内容是可选的
  2. [IF NOT EXISTS]是如果不存在该数据库名则创建,存在则不创建,不发生报错,防止在创建数据库名发生报错
  3. UTF8字符集长度为3字节,有些符号占4字节,所以推荐用utf8mb4字符集
  4. 注意查询当前数据库后面有一个()


DDL-表操作-查询
查询当前数据库所有表

SHOW TABLES;

查询表结构

DESC 表名;

查询指定表的建表语句

SHOW CREATE TABLE 表名;

DDL-表操作-创建

CREATE TABLE 表名(

           字段1 字段1类型[COMMENT 字段1注释],

           字段2 字段2类型[COMMENT 字段2注释],

           字段3 字段3类型[COMMENT 字段3注释],

           ......


           字段4 字段4类型[COMMENT 字段4注释]

)[COMMENT 表注释];

注意:
  1. 最后一个字段没有逗号
  2. 在创建表时记得切换自己所需要的数据库,不要在系统数据库内创建表


创建表

MySQL数据库_字段

查看表结构

MySQL数据库_字段名_02


DDL-数据类型
数据类型

MySQL数据库_表名_03

  • 精度是整个数值的长度,标度是小数点的长度’

例如:123.45

精度是5标度是2

  • 有符号与无符号的区别

例如:年龄的数据类似可以用TINGINT(因为人的年龄在0-100多岁之间,而TINGINT的范围正好在这个范围之间),又因为年龄是没有负数的,所以我们要用无符号,在后面加一个UNSIGNED

age TINGINT UNSIGNED


字符串类型

MySQL数据库_字段_04

  •    定长char与变长varchar的区别

char(10)--性能好

varchar(10)--性能相对较差

注意:

  1. 10表示最多只能占10个字符,超过10个字符会报错
  2. 定长char即使用一个字符它也会占用10个字符的空间,未占用的字符用空格补位
  3. 变长varchar如果存储一个字符那么就占用一个字符的空间,如果存储两个字符就占用两个字符的空间

4,确定的值用char,不确定的值用varchar

日期类型

MySQL数据库_字段名_05


DDL-表操作-修改
添加字段

ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMEN注释][约束];

案例:

为abb表增加一个新的字段”昵称“为nickname,类型为varchar(20)

MySQL数据库_字段名_06

MySQL数据库_字段_07

修改数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);

修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新类型(长度)[COMMENT注释][约束];

案例:

将abb表中nickname改为usename ,类型为varchar(30)

MySQL数据库_字段_08

MySQL数据库_字段名_09

删除字段

ALTER TABLE 表名 DROP 字段名;

案例:

将abb表的字段usename删除

LATER TABLE abb DROP usename;

修改表名

ALTER TABLE 表名 RENAME TO 新表名;

案例:

将abb的表名改为acc表名

ALTER TABLE abb RENAME TO  acc;

删除表

DROP TABLE (IF EXISTS) 表名;

删除指定的表,并重新创建该表

TRUNCATE TABLE 表名;

注意:清除数据,结构还在



DML


DML的介绍

用来对数据库中的表的数据进行增删改

  • 增加数据(INSERT
  • 修改数据(UPDATE
  • 删除数据(DELETE


DML-增加数据
给指定字段添加数据

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

给全部字段添加数据

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

值1对应表中第一个字段名,值2对应表中第二个字段名......

批量添加数据

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

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

注意

  1. 插入数据时,指定的字段顺序需要与值的顺序一一对应。
  2. 字符串和日期型数据应该在引号当中
  3. 插入的数据大小,应该在字段规定的范围内

DML-修改数据

UPDATE 表名 SET 字段名1=新值1,字段名2=新值2,...[WHERE条件];

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





以上是关于MySQL数据库的主要内容,如果未能解决你的问题,请参考以下文章

mysql8 数据类型 float double decimal 的区别

mysql中的longblob对应java中的啥类型

spss测量标度是啥意思

R数据可视化----ggplot2之标度坐标轴和图例详解

Tidyverse自学笔记-ggplot2标度之坐标轴设置

Java 中应该使用啥数据类型来代表价格