MySQL数据库语法(二)

一、数据库的创建

创建数据库CRATE DATABASE语法:CREATE DATABASE [IF NOT EXISTS]数据库名;功能:用给定的名字创建一个数据库如果数据库已经存在,发生一个错误。查看创建数据库:SHOW CREATE DATABASE <数据库名>;示例:create database school DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
删除DROP DATABASE语法:DROP DATABASE [IF EXISTS]数据库名;功能:删除数据库中得所有表和数据库要小心使用这个命令(慎用)
切换使用USE选用数据库语法:USE 数据库名;功能:把指定数据库作为默认(当前)数据库使用,用于后续语句。其他:查看当前连接的数据库SELECT DATABASE();查看数据库版本SELECT VERSION();查看当前用户SELECT USER();查看所有用户SELECT User,Host,Password FROM mysql.user;

 1、登陆数据库 

2、创建数据库zoo 

.

create database zoo; --创建数据库

3、修改数据库zoo字符集为gbk

create database if not exists zoo character set gbk;

 4、选择当前数据库为zoo 

5、查看创建数据库zoo信息 

6、删除数据库zoo

二、数据类型

在 MySQL 中,有三种主要的类型:文本、数字和日期/时间类型。

Text类型:

Number 类型:

Date 类型:

标准的建表(table)语法(列定义之间以英文逗号,隔开):
数据表的每行称为一条记录(record),每一列称为一个字段(field)。
主键列:唯一能够标识每条记录的列。CREATE TABLE [schema.]table(column datatype[DEFAULT expr] ,…) ENGINE = 存储机制CREATE TABLE
简单语法:CREATE TABLE 表名(列名 列类型,列名 列类型);
功能:在当前数据库中创建一张表

创建表 1、创建一个名称为db_system的数据库

 2、在该数据库下创建两张表,具体要求如下  员工表 user  字段 类型 约束 备注  id 整形 主键,自增长 id  NAME 字符型 非空 姓名  gender 字符 非空 性别  birthday 日期型 生日  entry_date 日期型 非空 入职时间  job 字符型 非空 职位

员工绩效表 salary
字段        类型    约束                                备注
id            整形    主键,自增长                        id
userId        字符型    非空,外键,关联的是user表的id字段     用户id
baseSalary    小数    非空                                基本工资
month        整数    非空                                月份
allowances    小数    非空,默认为0                        补贴

三、数据库表的修改(表的约束)

修改表的结构
修改列类型ALTER TABLE 表名 MODIFY 列名 列类型;增加列ALTER TABLE 表名 ADD 列名 列类型 [约束条件];删除列ALTER TABLE 表名 DROP 列名;列改名ALTER TABLE 表名 CHANGE 旧列名 新列名 列类型;
更改表名ALTER TABLE 表名 RENAME 新表名;RENAME TABLE 表名 TO 新表名;复制表的结构
复制一个表结构的实现方法有两种方法一:在create table语句的末尾添加like子句,可以将源表的表结构复制到新表中,语法格式如下。
create table 新表名 like 源表方法二:在create table语句的末尾添加一个select语句,可以实现表结构的复制,甚至可以将源表的表
记录拷贝到新表中。下面的语法格式将源表的表结构以及源表的所有记录拷贝到新表中。
create table 新表名 select * from 源表方法三:如果已经存在一张机构一致的表,复制数据
insert into 表 select * from 原表;
数据库字典
由information_schema数据库负责维护tables-存放数据库里所有的数据表、以及每个表所在数据库。
schemata-存放数据库里所有的数据库信息
views-存放数据库里所有的视图信息。
columns-存放数据库里所有的列信息。
triggers-存放数据库里所有的触发器。
routines-存放数据库里所有存储过程和函数。
key_column_usage-存放数据库所有的主外键
table_constraints-存放数据库全部约束。
statistics-存放了数据表的索引。
表的约束
NOT NULL非空
UNIQUE Key唯一键
PRIMARY KEY主键
FOREIGN KEY外键
CHECK检查
默认值约束
语法:列定义[CONSTRAINT 约束名] 约束类型(列名)
alter table 表名 add constraint 约束名 约束类型(要约束的列名)
表的约束示例:
1、非空约束(NOT NULL)
列级约束,只能使用列级约束语法定义。
确保字段值不允许为空
只能在字段级定义CREATE TABLE tb_student(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(18) NOT NULL
)NULL
所有数据类型的值都可以是NULL。
空字符串不等于NULL。
0也不等于NULL。2、唯一约束
唯一性约束条件确保所在的字段或者字段组合不出现重复值
唯一性约束条件的字段允许出现多个NULL
同一张表内可建多个唯一约束
唯一约束可由多列组合而成
建唯一约束时MySQL会为之建立对应的索引。
如果不给唯一约束起名,该唯一约束默认与列名相同。CREATE TABLE tb_student(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(18) UNIQUE NOT NULL
)3、主键约束
主键从功能上看相当于非空且唯一
一个表中只允许一个主键
主键是表中唯一确定一行数据的字段
删除表的约束
自动增长和默认值
存储引擎
主键字段可以是单字段或者是多字段的组合
当建立主键约束时,MySQL为主键创建对应的索引
主键约束名总为PRIMARY。CREATE TABLE tb_student(id INT PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(18)
)4、外键约束
外键是构建于一个表的两个字段或者两个表的两个字段之间的关系
外键确保了相关的两个字段的两个关系:
子(从)表外键列的值必须在主表参照列值的范围内,或者为空(也可以加非空约束,
强制不允许为空)。
当主表的记录被子表参照时,主表记录不允许被删除。
外键参照的只能是主表主键或者唯一键,保证子表记录可以准确定位到被参照的记录。格式FOREIGN KEY (外键列名)REFERENCES 主表(参照列)CREATE TABLE tb_dept(dept_id INT PRIMARY KEY,NAME VARCHAR(18),description VARCHAR(100)
);CREATE TABLE tb_employee(employee_id INT PRIMARY KEY,NAME VARCHAR(18),gender VARCHAR(10),dept_id INT,FOREIGN KEY (dept_id) REFERENCES tb_dept(dept_id),address VARCHAR(100)
);# 检查约束# 注意检查约束在8.0之前,MySQL默认但不会强制的遵循check约束(写不报错,
但是不生效,需要通触发器完成)
# 8之后就开始正式支持这个约束了。
create table t3(id int, age int check(age > 18),gender char(1) check(gender in ('M','F'))
);# 默认值
可以使用default关键字设置每一个字段的默认值。
-- 创建一张user表
CREATE TABLE `test`.`user`(  `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` VARCHAR(225) COMMENT '姓名',`sex` TINYINT(1) DEFAULT 1 COMMENT '性别 1男 0女',PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
删除表的约束:
删除NOT NULL约束alter table 表名 modify 列名 类型;删除UNIQUE约束alter table 表名 drop index 惟一约束名;删除PRIMARY KEY约束alter table 表名 drop primary key;删除FOREIGN KEY约束alter table 表名 drop foreign key 外键名;

1、在上面员工表的基本上增加一个image列,类型是blod,长度255。

 2、修改job列,使其长度为60。

 3、删除gender列。

 4、表名salary改为usersalary。 

5、修改表的字符集为utf8;

 6、列名name修改为username

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

好用的linux链接工具

工具下载链接&#xff1a; FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本4.3.10,更新日期2023.12.31 - FinalShell官网FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还是功能强大的开发,运维工具,充分满足开发,运维需求.特色功…

SpringBoot——全局异常处理

目录 异常 项目总结 新建一个SpringBoot项目 pom.xml Result&#xff08;通用的响应结果类&#xff09; MyBusinessException自定义异常类 GlobalExceptionHandler全局异常处理类 ExceptionController控制器 SpringbootExceptionApplication启动类 参考文章&#xff1a…

Facebook开户|Facebook公共主页疑难杂症详解

​​要要切克闹&#xff0c;公共主页我来道...哈喽呀家人们中午好&#xff0c;上一次学习还是在上一次..hhh相信很多家人在做Facebook的时候总会遇到各种各样匪夷所思的bug&#xff01;经常被搞心态吧&#xff01;那么咱们今天呢就来总结一下各类的bug以及解决方法&#xff0c;…

EPSON爱普生RTC RA8900CE/RA8000CE+松下Panasonic电池组合

RTC是一种实时时钟&#xff0c;用于记录和跟踪时间&#xff0c;具有独立供电和时钟功能。在某些应用场景中&#xff0c;为了保证RTC在断电或者其他异常情况下依然能够正常工作&#xff0c;需要备份电池方案来提供稳定的供电。本文将介绍EPSON爱普生RTC RA8900CE/RA8000CE松下Pa…

王春城 | 如何解决精益转型过程中的信任问题?

实践证明&#xff0c;精益转型不仅仅是技术和管理方法的更新&#xff0c;更是一场深刻的文化变革。在这个过程中&#xff0c;涉及到多个部门、多个层级的协同合作&#xff0c;需要团队成员之间的深度沟通和高度信任。如果缺乏信任&#xff0c;团队成员之间就会产生隔阂和抵触情…

手写数据集minist基于pytorch分类学习

1.Mnist数据集介绍 1.1 基本介绍 Mnist数据集可以算是学习深度学习最常用到的了。这个数据集包含70000张手写数字图片&#xff0c;分别是60000张训练图片和10000张测试图片&#xff0c;训练集由来自250个不同人手写的数字构成&#xff0c;一般来自高中生&#xff0c;一半来自工…

linux中最基础使用的命令

小白学习记录&#xff1a; 前情提要&#xff1a;Linux命令基础格式!查看 ls看目录的小技巧 进入指定目录 cd查看当前工作目录 pwd创建一个新的目录(文件夹&#xff09; mkdir创建文件 touch查看文件内容 cat、more操作文件、文件夹- 复制 cp- 移动 mv- 删除【危险操作&#xff…

OpenAI 近期动荡:解雇 Sam Altman 事件分析与 AI 未来展望

引言 OpenAI 的动荡从未停止。最近&#xff0c;由于 OpenAI 高层领导的更迭&#xff0c;引发了广泛的关注和讨论。特别是在 Sam Altman 被解雇后&#xff0c;再次回归 CEO 职位的过程&#xff0c;更是引起了公众和业内的巨大反响。前 OpenAI 董事会成员 Helen Toner 在最新一期…

Java1.8+ idea hbuilder+ uniapp、vue上门家政小程序APP源码开发

Java1.8 idea hbuilder uniapp、vue上门家政小程序APP源码开发 家政服务系统是一种专为家庭提供全方位服务的综合性系统。该系统通过整合多种服务功能和智能化管理&#xff0c;旨在提高家庭生活的质量和效率。 家政服务系统技术开发环境&#xff1a; 技术架构&#xff1a;spri…

心动(GDI+)

文章目录 前言实现步骤源代码心形坐标类心形函数定时器方法绘制函数完整源码 结束语 前言 近期学习了一段时间的GDI,突然想着用GDI绘制点啥&#xff0c;用来验证下类与方法。有兴趣的&#xff0c;可以查阅Windows GDI学习笔记相关文章。 效果展示 实现步骤 定义心形函数 。…

【微服务】部署mysql集群,主从复制,读写分离

两台服务器做如下操作 1.安装mysqldocker pull mysql:5.72.启动以及数据挂载 mkdir /root/mysql/data /root/mysql/log /root/mysql/conf touch my.conf //mysql的配置文件docker run --name mysql \ -e MYSQL_ROOT_PASSWORD123456 \ -v /root/mysql/data:/var/lib/mysql \ -v…

HarmonyOS鸿蒙学习笔记(28)@entry和@Component的生命周期

entry和Component的生命周期 entry和Component的关系Component生命周期Entry生命周期 生命周期流程图生命周期展示示例代码参考资料 HarmonyOS的生命周期可以分为Compnent的生命周期和Entry的生命周期&#xff0c;也就是自定义组件的生命周期和页面的生命周期。 entry和Compone…

RabbitMQ-发布/订阅模式

RabbitMQ-默认读、写方式介绍 RabbitMQ-直连交换机(direct)使用方法 目录 1、发布/订阅模式介绍 2、交换机(exchange) 3、fanout交换机的使用方式 3.1 声明交换机 3.2 发送消息到交换机 3.2 扇形交换机发送消息代码 3.2 声明队列&#xff0c;用于接收消息 3.3 binding …

sigmoid, softmax

∙ \bullet ∙ sigmoid函数 值域(0,1) 常用于二分类问题 ∙ \bullet ∙ softmax函数 每一项的区间范围的(0,1) 所有项相加的和为1. 常用于多分类问题 ∙ \bullet ∙ 区别&#xff1a; softmax 当类别数是2时&#xff0c;它退化为二项分布&#xff0c;而它和sigmoid真正的区别…

解决VSCode右键没有Open In Default Browser问题

在VSCode进行Web小程序测试时&#xff0c;我们在新建的HTML文件中输入 !会自动生成页面代码骨架&#xff0c;写入内容后&#xff0c;我们想要右键在浏览器中预览。发现右键没有“Open In Default Browser”选项。原因是没有安装插件。 下面是解决方案&#xff1a;首先在VSCode找…

探索 Android Studio 中的 Gemini:加速 Android 开发的新助力

探索 Android Studio 中的 Gemini&#xff1a;加速 Android 开发的新助力 在 Gemini 时代的下一篇章中&#xff0c;Gemini融入了更多产品中&#xff0c;Android Studio 正在使用 Gemini 1.0 Pro 模型&#xff0c;使 Android 开发变得更快、更简单。 Studio Bot 现已更名为 And…

The Isle恐龙岛服务器开服联机教程

服务端区别&#xff1a;The lsle 是测试服 &#xff1b;The lsle Evrima 是正式服&#xff08;运行内存需要上到12G才可以运行&#xff09; 1、购买后登录服务器 进入控制面板后会出现正在安装的界面&#xff0c;安装大约5分钟&#xff08;如长时间处于安装中请联系我们的客服人…

Unity 自定义编辑器根据枚举值显示变量

public class Test : MonoBehaviour {[HideInInspector][Header("数量")][SerializeField]public int num;[Header("分布类型")][SerializeField]public DistributionType distType;[HideInInspector][Header("位置")][SerializeField]public Li…

Vue之组件基础(插槽)

在HTML中&#xff0c;开发者可以在双标签内添加一些信息。而在Vue中&#xff0c;组件以标签的形式引用&#xff0c;那么如何在组件的标签内添加一些信息并将信息渲染到页面中呢?其实&#xff0c;Vue 提供了插槽&#xff0c;专门用来实现这样的效果。 一.什么是插槽 Vue为组件…

视频修复工具助你完成高质量的视频作品!

在短视频发展兴起的时代&#xff0c;各种视频层出不穷的出现在了视野中&#xff0c;人们已经从追求数量转向追求质量。内容相同的视频&#xff0c;你视频画质好、质量高的更受大家欢迎&#xff0c;那么如何制作高质量、高清晰度的视频呢&#xff1f;与您分享三个视频修复工具。…