热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Mysql入门以及基础命令(数据库定义语言DDL)

MySql基础一、数据库的简介1.1、理解概念:就是⼀款⽤于持久化保存数据的软件保存数据的技术:变量2.对象3.数组4.集合【将数据保存到内存】【易

MySql基础


一、数据库的简介


1.1、理解


概念:就是⼀款⽤于持久化保存数据的软件

保存数据的技术:

  1. 变量 2. 对象 3. 数组 4. 集合 【将数据保存到内存】【 易失性】

  2. IO 【可以持久化保存】 【操作性差】

数据库既可以持久化保存数据 ⼜⾮常灵活的操作数据



1.2、特点


1、可以持久化保存数据

2、保存数据是有组织 有结构

3、数据库是以表的形式 保存数据的

4、提供SQL语句 ⽤于操作⾥⾯的数据



1.3、分类


1、关系型数据库

Oracle、MySQL、SQLServer…

2、 ⾮关系型数据库

redis、MongoDB、HBase


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ml04BAEx-1648731004414)(C:\Users\12994\Desktop\笔记整理\JavaWeb\笔记\总结整理\Mysql基础以及DDL.assets\image-20220329201616715.png)]


二、SQL命令


2.1、SOL分类


数据库存储结构

⼀个数据库系统 ----> 保存很多个数据库

⼀个库中 ----> 保存很多数据表

表中 ----> 表头(字段/列名) ⼀条条数据



分类

DDL 数据定义语言 创建/删除库 创建、删除和修改表

DML 数据操作语言 数据可表中的数据的增删改操作

DQL 数据查询语言 数据库表中数据的查询

DCL 数据控制语言 数据可用户权限的操作

事物



2.2、DDL


2.2.1、库操作

1、show databases;【查看数据库系统中所有的库】

2、create database if not exists 库名;【创建一个数据库】

3、drop database if exists 库名;【删除一个数据库】

4、show create database 库名;【查看创建的数据库语句】

5、use 库名;【选中库】


2.2.2、表操作

1、show tables;【查看库中的所有表】

2、create table if exists 表名(列名 类型,列名 类型,列名 类型,列名 类型,………………)

CREATE TABLE employess(
employee_id INT(6),
first_name VARCHAR(20),
last_name VARCHAR(25),
email VARCHAR(25),
phone_number VARCHAR(20),
job_id VARCHAR(10),
salary DOUBLE(10,2),
commission_pct DOUBLE(4,2),
manager_id INT(6),
department_id INT(4),
hiredate DATETIME,
PRIMARY KEY(`employee_id`) -- 设置主键
)

3、desc 表名;【查看表结构】

4、drop table if exists 表名;【删除表】

5、修改表【alter

alter table 表名 rename to 新表名;【修改表名】

alter table 表名 change column 列名 新列名 类型;【修改列名】

alter table 表名 modify column 列名 新类型;【修改列的类型】

alter table 表名 add column 新列名 类型;【添加新列】

alter table 表名 drop column 列名;【删除一列】


2.2.3、约束的操作


mysql的五大约束

理解:额外的限定数据库表中的值,保证数据的正确性、准确性和完整性

分类:

primary key 【主键约束】 保证数据不能重复 不能为null 一个表对应一个主键约束

not null 【非空约束】 保证数据不能为空

default 【默认约束】 保证数据不屑也有默认值

unique 【唯一约束】 保证数据不重复 可以为null 并且可以有多个

foreign key 【外键约束】 建立表与表之间爱的关系

​ 要求:1、一个表(从表)的列 与 另一个表(主表)的主键列建立外键关系

​ 2、要先有主表 才能有从表

​ 3、从表的外键字段 和 主表的主键字段

​ 4、外键的取值 一定要来源于主键的值



添加约束

添加主键约束

ALTER TABLE users ADD PRIMARY KEY(id); # --- 表级添加
ALTER TABLE users MODIFY COLUMN id INT PRIMARY KEY; # --- 列级添加**

添加 not null

ALTER TABLE users MODIFY COLUMN NAME VARCHAR(16) NOT NULL;

添加 default

ALTER TABLE users MODIFY COLUMN age CHAR(4) DEFAULT 18;

添加 unique

ALTER TABLE users ADD UNIQUE(cardno); # --- 表级添加ALTER TABLE users MODIFY COLUMN cardno VARCHAR(20) UNIQUE; # --- 列级添加

添加 外键 foreign key

ALTER TABLE users ADD CONSTRAINT fk_u_c FOREIGN KEY(c_id) REFERENCES class(cid);

删除约束

删除主键约束

ALTER TABLE users DROP PRIMARY KEY;ALTER TABLE users MODIFY COLUMN id INT NULL;

删除 not null

ALTER TABLE users MODIFY COLUMN NAME VARCHAR(16) NULL;

删除默认约束

ALTER TABLE users MODIFY COLUMN age CHAR(4);

删除 唯⼀约束

ALTER TABLE users DROP INDEX cardno;

删除外键

ALTER TABLE users DROP FOREIGN KEY fk_u_c;ALTER TABLE users DROP INDEX fk_u_c;

DIFY COLUMN age CHAR(4);


**删除 唯⼀约束**```sql
ALTER TABLE users DROP INDEX cardno;

删除外键

ALTER TABLE users DROP FOREIGN KEY fk_u_c;ALTER TABLE users DROP INDEX fk_u_c;


推荐阅读
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 本文讨论了在 Oracle 10gR2 和 Solaris 10 64-bit 环境下,从 XMLType 列中提取数据并插入到 VARCHAR2 列时遇到的性能问题,并提供了优化建议。 ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 数据类型和操作数据表2.1MySQL类型之整型2.2MySQL数据类型之浮点型2.3日期时间型DATE1支持时间:1000年1月1日~9999年12月31日DATETIME ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
  • 本文详细介绍了在MySQL中如何高效利用EXPLAIN命令进行查询优化。通过实例解析和步骤说明,文章旨在帮助读者深入理解EXPLAIN命令的工作原理及其在性能调优中的应用,内容通俗易懂且结构清晰,适合各水平的数据库管理员和技术人员参考学习。 ... [详细]
author-avatar
我系懒懒懒猫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有