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.mzph.cn/pingmian/16843.shtml

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

相关文章

疯狂“造人”!美国两党共推新法案,5年培养100万AI及量子人才

当前&#xff0c;全球量子计算人才的短缺已成为制约该领域快速发展的关键瓶颈。 为了解决量子计算人才短缺的问题&#xff0c;各国政府和企业采取了积极措施&#xff0c;加大了对量子教育和培训的投入。根据美国参议院官网消息&#xff0c;2024年5月23日&#xff0c;美国两党议…

【算法】位运算——常见位运算基础操作总结

位运算基础操作总结&#xff0c;包括基础运算符 修改某位bit位 目录 1.基础位运算符2.按位基础操作1.给一个数 n&#xff0c;确定其二进制的第 x 位是 0/12.将一个数 n 的二进制标识的第 x 位修改成 13.将一个数 n 的二进制标识的第 x 位修改成 04.提取一个数 n 二进制中最右侧…

什么是住宅IP代理?为什么需要家庭 IP 代理

家庭代理 IP 允许您选择特定位置&#xff08;国家、城市或移动运营商&#xff09;并作为代理上网该区域的真实用户。住宅代理 IP 可以定义为保护用户免受一般网络流量影响的中介。它们在隐藏您的 IP 地址的同时充当缓冲区。住宅代理 IP 是服务提供商分配给用户的替代 IP 地址。…

EasyCode生成的SQL语句中无逗号分隔

EasyCode生成的SQL语句中无逗号分隔 EasyCode是一款非常好用的插件&#xff0c;可以帮助我们生成相关的一些代码&#xff0c;但是在生成SQL对应的xml文件之后&#xff0c;发现语句中多个字段之间没有逗号分隔&#xff0c;而是直接连在了一起。接下来&#xff0c;让我们一起去解…

【传知代码】私人订制词云图-论文复现

文章目录 概述原理介绍核心逻辑1、选取需要解析的txt文档2、选取背景图明确形状3、配置停用词4、创建分词词典&#xff0c;主要解决新的网络热词、专有名词等不识别问题 技巧1、中文乱码问题&#xff0c;使用的时候指定使用的文字字体2、更换背景图3、词库下载以及格式转换方式…

多线程编程(12)之HashMap1.8源码分析

之前已经分析过了一版1.7版本的HashMap&#xff0c;这里主要是来分析一下1.8HashMap源码。 一、HashMap数据结构 HashMap 是一个利用散列表&#xff08;哈希表&#xff09;原理来存储元素的集合&#xff0c;是根据Key value而直接进行访问的数 据结构。 在 JDK1.7 中&#xff…

内网穿透端口映射内外网反弹 shell 回顾

内网穿透&端口映射&内外网反弹 shell 回顾 内网概念 我们常说的内网&#xff0c;一般指的是非公有 IPv4 地址的网络比如学校机房里的电脑一般为私有网络&#xff0c;家里的网络也是私有网络 私有网络的范围与划分 ipaddressareaA 类地址10.0.0.0&#xff5e;10.255.…

521源码-免费下载-WordPress全能自动采集与发布插件 – WP-AutoPostPro 汉化版

更多网站源码学习教程&#xff0c;请点击&#x1f449;-521源码-&#x1f448;获取最新资源 本工具下载地址&#xff1a;WordPress全能自动采集与发布插件 – WP-AutoPostPro 汉化版 - 521源码 WP-AutoPostPro是一款出类拔萃的WordPress自动采集发布插件&#xff0c;凭借其卓…

Yolov5保姆及入门-含源码【推荐】

前言 YOLO系列模型作为一种实时目标检测算法&#xff0c;自从YOLO1发布以来&#xff0c;就以其检测速度快、准确率高而受到广泛关注。随着技术的迭代&#xff0c;YOLO系列已经发展到了YOLO8。本文将详细介绍YOLO5的技术规格、应用场景、特点以及性能对比。 yolov5源码下载地址…

海外真实机房给云手机上“福利”

不论是做出海跨境方面的业务&#xff0c;大家都不自觉的把目光放在了海外的云手机上&#xff0c;尤其是有直播群控&#xff0c;引流获客这样的一个刚需&#xff0c;只有处在海外真实环境了&#xff0c;那么在一些活动的过程中&#xff0c;才能表现的更稳&#xff0c;而不会触发…

Android --- 交换两个布局

准备布局 exchange_out_layout exchange_in_layout <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"andr…

免费,Python蓝桥杯等级考试真题--第13级(含答案解析和代码)

Python蓝桥杯等级考试真题–第13级 一、 选择题 答案&#xff1a;C 解析&#xff1a;正向下标由0开始&#xff0c;下标3代表第四个元素&#xff0c;故答案为C。 答案&#xff1a;A 解析&#xff1a;range&#xff08;0,4&#xff09;的取前不取后&#xff0c;元组的符号是小括…

【CGAL】Region_Growing 检测平面并保存

目录 说明一、算法原理二、代码展示三、结果展示 说明 本篇博客主要介绍CGAL库中使用Region_Growing算法检测平面的算法原理、代码以及最后展示结果。其中&#xff0c;代码部分在CGAL官方库中提供了例子。我在其中做了一些修改&#xff0c;使其可以读取PLY类型的点云文件&…

【搭建大语言模型】使用LocalGPT搭建本地大语言模型服务并实现远程访问进行交互

文章目录 前言环境准备1. localGPT部署2. 启动和使用3. 安装cpolar 内网穿透4. 创建公网地址5. 公网地址访问6. 固定公网地址 前言 本文主要介绍如何本地部署LocalGPT并实现远程访问&#xff0c;由于localGPT只能通过本地局域网IP地址端口号的形式访问&#xff0c;实现远程访问…

设计模式15——享元模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 享元模式&#xff08;Flyweigh…

Linux信号:信号的概念及意义

目录 一、什么是信号 kill-l查看信号 二、信号的产生 2.1系统调用 kill raise abort 2.2软件条件 13)SIGPIPE pipe信号 14&#xff09;SIGAKARM alarm信号 2.2硬件中断 2.3异常 8)SIGFPE 除0异常 11)SIGSEGV 野指针 2.4信号处理的常见方式 三、Core Dump和term…

一文详解SaaS增长模式:PLG、MLG、SLG哪种更适合你?

在SaaS&#xff08;软件即服务&#xff09;的领域中&#xff0c;增长策略的选择对于企业的成功至关重要。其中&#xff0c;PLG&#xff08;产品驱动增长&#xff09;、MLG&#xff08;市场驱动增长&#xff09;和SLG&#xff08;销售驱动增长&#xff09;是三种常见的策略&…

Centos 7 安装刻录至服务器

前言 在日常测试中&#xff0c;会遇到很多安装的场景&#xff0c;今天给大家讲一下centos 7 的安装&#xff0c;希望对大家有所帮助。 一.下载镜像 地址如下&#xff1a; centos官方镜像下载地址https://www.centos.org/download/ 按照需求依次点击下载 二.镜像刻录 镜像刻…

强悍!轻量级 Viedo Download 项目!!【送源码】

今天给大家分享一个非常轻量实用的命令行视频下载项目&#xff1a;Lux。 项目简介 Lux是一款基于Golang编写的快速、简单的视频下载库和命令行工具&#xff0c;支持众多个流行的视频网站&#xff0c;包括 YouTube、Bilibili、优酷、爱奇艺、腾讯视频、抖音快手等。 界面简洁易…

重生之 SpringBoot3 入门保姆级学习(07、整合 Redis 案例)

重生之 SpringBoot3 入门保姆级学习&#xff08;07、整合 Redis 案例&#xff09; 导入 Maven 依赖并刷新 Maven <dependencies><!--springboot3 Web 依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring…