MYSQL笔记2

创建表:
格式:
create  table  表名(表选项)
表定义选项格式为:
列名1 列类型1 约束, 列名2 列类型2 约束,……
默认的情况是,表被创建到当前的数据库中。若表已存在、没有当前数据库或者数据库不存在,则会出现错误
使用 crate table 创建表时,必须指定以下信息:
要创建的表的名称不区分大小写,不能使用SQL语言中的关键字,如DROP、ALTER、INSER等。
必须指定数据表中每个列(字段)的名称和数据类型,如果创建多个列,要用逗号隔开

示例1:创建数据库并新建表
数据表属于数据库,在创建数据表之前,应使用语句“use <数据库>”指定操作在哪个数据库中进行,如果没有选择数据库,就会抛出 No database selected 的错误

mysql> select database(); # 查看当前数据库

mysql> create database mydb2_stuinfo; # 创建数据库
Query OK, 1 row affected (0.02 sec)

mysql> use mydb2_stuinfo; # 使用数据库
Database changed

mysql> create table student1(id int, name varchar(30), sex char(2), age int unsigned, score float, addr varchar(50));
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
+-------------------------+
| Tables_in_mydb2_stuinfo |

查看表:
show语句:显示当前数据库中已有的数据表
格式:show table [from 数据库名] [like wild]

describe语句:查看数据表中各列的信息
格式:{describe|desc}表名[列名];       # or       show columns from 表名称;

mysql> desc student1;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(30) | YES | | NULL | |
| sex | char(2) | YES | | NULL | |
| age | int unsigned | YES | | NULL | |
| score | float | YES | | NULL | |
| addr | varchar(50) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql> show columns from student1;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(30) | YES | | NULL | |
| sex | char(2) | YES | | NULL | |
| age | int unsigned | YES | | NULL | |
| score | float | YES | | NULL | |
| addr | varchar(50) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

字段意义分析:
Field :字段名称
type:字段类型
null:是否允许为空
key:索引类型
default:默认值
extra:填充

使用\G可以查看更全面的表定义信息:

mysql> show create table student1\G
*************************** 1. row ***************************
Table: student1
Create Table: CREATE TABLE `student1` (
`id` int DEFAULT NULL,
`name` varchar(30) DEFAULT NULL,
`sex` char(2) DEFAULT NULL,
`age` int unsigned DEFAULT NULL,
`score` float DEFAULT NULL,
`addr` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)



删除表
格式: drop table [if exists] 表名:
注意:
用户必须拥有执行 drop table 命令的权限,否则数据表不会被删除
推荐使用if exists字句,即先判断是否存在,存在则删除,如:
mysql> drop table if exists tb1;
Query OK, 0 rows affected (0.01 sec)

修改表:
更改表名(重命名):
语法1:
alter  table  表名  rename  新表名;
语法2:
rename  table  表名  to  新表名;

添加新列:
alter table 表名 add 新列名 列类型 [after|first] 列名;
# after:在指定列之后插入新列
# first:在第一列插入新列
# 注意:无before关键字
例:增加一列password
mysql> alter table student1 add password char(8);
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
# 注意:数据库操作后得到的反馈,表明操作的结果。这个信息表示:
Records: 2: 表示成功导入或处理的记录总数是2条。
Duplicates: 0: 表示在操作过程中没有发现重复的记录。
Warnings: 0: 表示在操作过程中没有产生任何警告。

删除列:
格式:alter table 表名 drop 列名;

修改列名:
格式: alter table 表名 change 旧列名 新列名 列类型;

修改列类型:
格式:alter table 表名 modifyn 列名 列类型;

修改列位置:
格式:alter table 表名 modify 列名 列类型 after 某列;

复制表的结构:
方法一:在create table语句的末尾添加like子句,可以将源表的表结构复制到新表中,语法格式如下:
create table 新表名 like 源表   #(结构)
方法二:在create table语句的末尾添加一个select语句,可以实现表结构的复制,甚至可以将源表的表记录拷贝到新表中,下面的语法格式将源表的结构和记录都拷贝到新表中:
create table 新表名 select * from 源表        #(结构和内容)
方法三:如果已经存在一张结构一致的表,复制数据:
insert into 表名 select * from 来源表;           #(同结构和类型可以插入数据)

数据库字典
数据字典:类似于系统编目或花名册,它保存数据库服务器上的元数据信息(数据库的整体属性信息)
元数据(meta data):即“data about data” 关于数据的数据,理解为描述数据的数据,内容包括:数据库的属性信息、数据表的属性信息、字段的属性信息、视图的属性信息、用户信息、统计类信息等。
information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式

show databases;
+--------------------+
| information_schema |
| mydb1_test |
| mydb2_stuinfo |
| mydb3_employee |
| mydb4_product |
| mysql |
| performance_schema |
| sys |
+--------------------+
8 rows in set (0.00 sec)

information_schema就像是MySQL实例的一个百科全书,记录了数据库当中大部分我们需要了结的信息,比如字符集,权限相关,数据库实体对象信息,外检约束,分区,压缩表,表信息,索引信息,参数,优化,锁和事物等等。
通过information_schema我们可以窥透整个MySQL实例的运行情况,可以了结MySQL实例的基本信息,甚至优化调优,维护数据库等,可以说是真正的一部百科全书。

mysql> use information_schema ;
mysql> show tables;
# 常用表解释
tables-存放数据库里所有的数据表、以及每个表所在数据库。
schemata-存放数据库里所有的数据库信息
views-存放数据库里所有的视图信息。
columns-存放数据库里所有的列信息。
triggers-存放数据库里所有的触发器。
routines-存放数据库里所有存储过程和函数。
key_column_usage-存放数据库所有的主外键
table_constraints-存放数据库全部约束。
statistics-存放了数据表的索引。
……

删除的注意事项:
1.删除数据库表之前,一定要备份数据,以免数据丢失。
2.在删除数据库表之前,要确保该表没有被其他的表所引用,否则可能会破坏外键约束。
3.在删除数据库表之前,要确保该表的数据已经备份,并且不再需要使用。
4.在删除数据库表之前,要确保该表的数据已经被清空,否则会破坏外键约束。
5.在删除数据库表之前,要确保该表的所有索引都已经被删除。如果还存在索引,可能会导致删除失败。
6.在删除数据库表之前,要确保该表的所有相关程序已经停止运行,以免影响其他程序的正常运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/585.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux修炼:开发工具

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》、《C修炼之路》、《Linux修炼&#xff1a;终端…

基于 CentOS 7 的 LVS+DR+Web+NFS 旅游攻略分享平台部署

1 项目概述 1.1 旅游攻略平台项目背景 随着互联网旅游行业的快速发展&#xff0c;用户对旅游攻略分享平台的高可用性和稳定性提出了更高要求。传统单服务器架构在面对高并发访问时容易出现性能瓶颈&#xff0c;导致响应延迟甚至服务中断。本项目基于 LVSDRWebNFS 架构&#x…

python-enumrate函数

文章目录基本语法基本用法基本遍历指定起始索引实际应用场景需要索引的循环创建字典映射处理文件行号与range(len())对比注意事项enumerate()是Python内置函数&#xff0c;用于在遍历序列&#xff08;如列表、元组或字符串&#xff09;时同时获取索引和值。基本语法 enumerate…

linux_线程概念

线程特征&#xff1a;是进程内的执行分支&#xff0c;线程的执行粒度&#xff0c;要比进程要细。1.理解Linux线程线程<执行流<进程 线程实际上是复用进程的数据结构和管理算法&#xff0c;进程的task struct&#xff0c;实际上是模拟线程&#xff0c;部分书中说Linux没有…

校园幸运抽(抽奖系统)测试报告

校园幸运抽&#xff08;抽奖系统&#xff09; 项目介绍测试用例设计部分测试示例自动化测试编写自动化脚本&#xff08;1&#xff09;引入相关的脚本依赖&#xff08;2&#xff09; 创建对应的类和文件夹自动化部分功能实战结果&#xff08;视频&#xff09;部分源码展示&#…

【跟着PMP学习项目管理】敏捷专题 - 敏捷概述

目录 1、可确定的工作与高度不确定的工作 2、《敏捷宣言》及思维模式 3、 精益与看板方法 4、 不确定性、风险和生命周期选择 1、可确定的工作与高度不确定的工作 项目工作包括可确定的工作与高度不确定的工作。可确定的工作项目具有明确的流程,它们在以往类似的…

os.machine()详解

核心功能返回硬件架构 返回字符串表示系统的硬件架构&#xff0c;常见值包括&#xff1a; x86_64&#xff1a;64 位 x86 架构&#xff08;Intel/AMD&#xff09;armv7l&#xff1a;32 位 ARM 架构&#xff08;如树莓派 3B&#xff09;aarch64&#xff1a;64 位 ARM 架构&#x…

day4--媒资管理模块(Nacos+网关)

1. 需求分析 1.1 介绍 媒资管理系统是每个在线教育平台所必须具备的&#xff0c;查阅百度百科对它的定义如下&#xff1a; 媒体资源管理(Media Asset Management&#xff0c;MAM)系统是建立在多媒体、网络、数据库和数字存储等先进技术基础上的一个对各种媒体及内容(如视/音…

【数据结构与算法】206.反转链表(LeetCode)

反转链表 问题描述 给定单链表的头节点 head&#xff0c;要求反转链表并返回反转后的链表头节点。 题目传送门 思路一&#xff1a;创建新链表头插法 核心思路&#xff1a;创建新链表&#xff0c;将原链表中的节点拿来头插 算法步骤 初始化新链表头节点 newhead 为 NULL使…

源表=电源+数字表?一文看懂SMU源表 2025-04-14

源表(Source Meter Unit, SMU)广泛用于半导体器件、材料、医疗、发光器件与光通信等行业,测量器件的伏安(I-V)特性曲线、绝缘材料的电阻值(电阻率)、电容的绝缘电阻(漏电流)、光电器件的暗电流或者L-I-V等。 源表的名称已经清晰的告诉我们,它包含了高精度电源输出和…

探索飞算 JavaAI 进阶:解锁高效Java开发的新维度

前引&#xff1a;在当今快速迭代的软件开发领域&#xff0c;Java作为企业级应用的基石&#xff0c;持续推动着技术创新。随着性能需求的提升&#xff0c;“飞算JAVA”应运而生&#xff0c;它融合了现代优化理念&#xff0c;为开发者提供了一套简洁、高效的解决方案。本文将深入…