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

第3.2课上课MySQL深入介绍

3_2MySQL深入介绍修改列信息--显示当前的数据库列表showdatabases;--创建数据库createdatabase数据库

3_2

MySQL深入介绍

 修改列信息

-- 显示当前的数据库列表

show databases;

 

-- 创建数据库

create database 数据库名;

 

-- 选择需要使用的数据库

use 数据库名;

 

-- 创建表

 

CREATE TABLE `e_user` (

`ID` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,

`T_PASSWORD` varchar(50) DEFAULT NULL,

`T_NAME` varchar(10) DEFAULT NULL

)

 

 

-- 显示表的详细信息

show create table e_user;

 

-- 显示表 列信息

desc e_user;

 

-- 显示当前数据库中的所有表名

show tables;

 

-- 重命名表名

-- 语法: ALTER TABLE 旧表名 RENAME TO 新表名;

alter table e_user2 rename e_user;

 

-- 添加列:

-- 语法: ALTER TABLE 表名 ADD COLUMN 列名 列类型;

alter table e_user add column t_age int;

alter table e_user add column t_sex varchar(2);

 

 

-- 删除列:

-- 语法: ALTER TABLE 表名 drop COLUMN 列名;

alter table e_user drop column t_sex;

 

 

-- 修改列名:

-- 语法: ALTER TABLE 表名 CHANGE 旧列名 新列名 新列类型;

alter table e_user change t_age t_age2 varchar(5);

 

 

-- 修改列属性:

-- 语法: ALTER TABLE 表名 MODIFY t_name varchar(10);

alter table e_user modify t_age2 int;

 

注意:只有当列只包含空值时,类型、大小都可以修改,否则修改可能不能成功。

 

 

 MySQL约束

  约束

   什么是约束?

1.什么是约束?

1)约束是在表上强制执行的数据校验规则。

2)约束主要用于保证数据库的完整性。

3)当表中数据有相互依赖性时,可以保护相关的数据不被删除。

 

   创建约束的时机

    建表时候创建(列级约束)

    建表后创建(表级约束)

   约束操作

    主键约束

1.主键从功能上看相当于“非空约束+唯一约束”,用来确定表中的一行数据;

2.一个表中只允许有一个主键;

3.主键字段可以是单字段或者是多字段的组合;

 

 

 

     创建主键约束

-- 定义列级主键约束

CREATE TABLE STUDENT_TABLE

(

STUDENT_ID INT PRIMARY KEY AUTO_INCREMENT,

STUDENT_NAME VARCHAR(255)

);

 

--定义表级主键约束

ALTER TABLE STUDENT_TABLE

ADD PRIMARY KEY (STUDENT_ID);

     删除主键约束

-- 删除主键约束

ALTER TABLE STUDENT_TABLE DROP PRIMARY KEY;

    非空约束

1.非空约束属于列级约束,只能使用列级约束语法定义;

2.确保字段值不允许为空;

 

注意:

1)所有数据类型的值都可以是NULL。

2)空字符串不等于NULL。

3)0也不等于NULL。

     创建非空约束

-- 定义列级非空约束

CREATE TABLE STUDENT_TABLE

(

STUDENT_ID INT PRIMARY KEY AUTO_INCREMENT,

STUDENT_NAME VARCHAR(255) NOT NULL

);

 

--定义表级非空约束

ALTER TABLE STUDENT_TABLE

MODIFY STUDENT_NAME VARCHAR(255) NOT NULL;

     删除非空约束

-- 删除非空约束

ALTER TABLE STUDENT_TABLE

MODIFY STUDENT_NAME VARCHAR(255) NULL;

    唯一约束

1.唯一性约束条件保证字段或者字段组合不会出现重复值;

2.可以对多列建立唯一约束。

 

     创建唯一约束

-- 建立列级唯一约束

CREATE TABLE STUDENT_TABLE

(

STUDENT_ID INT PRIMARY KEY AUTO_INCREMENT,

STUDENT_NAME VARCHAR(255) UNIQUE

);

 

-- 建立表级唯一约束

ALTER TABLE STUDENT_TABLE

ADD UNIQUE KEY STUDENT_NAME_UNIQUE(STUDENT_NAME);

 

STUDENT_NAME_UNIQUE是一个自定义的唯一约束名称,方便管理这个约束。

 

 

 

-- 对多列添加唯一索引

ALTER TABLE STUDENT_TABLE

ADD UNIQUE(FIRST_NAME, LAST_NAME);

     删除唯一约束

-- 删除唯一约束

ALTER TABLE STUDENT_TABLE

DROP INDEX STUDENT_NAME_UNIQUE;

 

    外键约束

1.外键是构建于一个表的两个字段或者两个表的两个字段之间的关系;

2.外键确保了相关的两个字段的两个关系:

1)子(从)表外键列的值必须在主表参照列值的范围内,或者为空(也可以加非空约束,强制不允许为空);

2)当主表的记录被子表参照时,主表记录不允许被删除;

3.外键参照的只能是主表主键或者唯一键,保证子表记录可以准确定位到被参照的记录;

 

添加外键约束的语法:

CREATE TABLE t_dept(

dept_id INT PRIMARY KEY,

NAME VARCHAR(18),

description VARCHAR(255)

);

 

CREATE TABLE t_employee(

employee_id INT PRIMARY KEY,

NAME VARCHAR(18),

gender VARCHAR(10),

dept_id INT REFERENCES t_dept(dept_id),

address VARCHAR(255)

);

 

或者:

 

CREATE TABLE t_employee(

employee_id INT PRIMARY KEY,

NAME VARCHAR(18),

gender VARCHAR(10),

dept_id INT,

address VARCHAR(255),

CONSTRAINT FOREIGN KEY t_employee (dept_id) REFERENCES t_dept(dept_id)

);

 

 

 

 

 

     创建外键约束

CREATE TABLE SCHOOL_TABLE

(

SCHOOL_ID INT PRIMARY KEY AUTO_INCREMENT,

SCHOOL_NAME VARCHAR(255)

);

 

-- 定义列级外键约束

CREATE TABLE STUDENT_TABLE

(

STUDENT_ID INT PRIMARY KEY AUTO_INCREMENT,

STUDENT_NAME VARCHAR(255),

SCHOOL_ID INT,

FOREIGN KEY (SCHOOL_ID) REFERENCES SCHOOL_TABLE(SCHOOL_ID) ON DELETE CASCADE

);

 

-- 定义表级外键约束

ALTER TABLE STUDENT_TABLE

ADD CONSTRAINT FK_STUDENT_SCHOOL_ID FOREIGN KEY(SCHOOL_ID) REFERENCES SCHOOL_TABLE(SCHOOL_ID);

 

注意:

ON DELETE CASCADE:当主表记录被删除,从表中的对应记录也会被删除。

ON UPDATE CANSCADE:当主表记录被更新,从表中的对应记录也会被更新。

ON DELETE SET NULL:当主表记录被删除,从表中的对应记录的外键列会被设置为NULL。

ON UPDATE SET NULL:当主表记录被更新,从表中的对应记录也会被会被设置为NULL。

     删除外键约束

-- 删除外键

ALTER TABLE STUDENT_TABLE

DROP FOREIGN KEY FK_STUDENT_SCHOOL_ID;


推荐阅读
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • importpymysql#一、直接连接mysql数据库'''coonpymysql.connect(host'192.168.*.*',u ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 数据类型和操作数据表2.1MySQL类型之整型2.2MySQL数据类型之浮点型2.3日期时间型DATE1支持时间:1000年1月1日~9999年12月31日DATETIME ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文介绍如何在将数据库从服务器复制到本地时,处理因外键约束导致的数据插入失败问题。 ... [详细]
author-avatar
Q_jack
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有