MYSQL语法篇之:“建”、“增”
创始人
2024-04-26 01:00:15
0

MYSQL学习之语法篇
本章学习目标

SQL语句之“建”

SQL语句之“增”

数据的存储过程

有一个数据库

在数据库中创建表格

在表格当中插入数据

完成以上三步就完成了一整个数据存储过程。

所以我们要学习的两个点:

创建:“建”

增加:“增”

SQL语句之“建”

创建数据库语法:

create database database_name;

在创建数据库的时候还可以加入条件判断语句:

create database [if not exists] databses_name;

创建表语法:

这里需要注意的是要创建表要进入数据库内才能创建表

创建表格时候需要给表格添加约束条件

约束条件就是前面提到的:

数据类型

主键:唯一、不为空是主键的两个特点

外键

索引

所以我们需要先去了解MYSQL当中的这些约束(Constraints)条件。

(1)MYSQL当中的数据类型:

主要分为三大类

1、Text(文本)

Char(size):固定长度的字符串(包含字母、数字、特殊符号)。*括号中指定字符串的长度,最多为255个字符*

Varchar(size):可变长度字符串,*括号中指定字符串的长度,最多为255个字符。*如果超过255个字符则被转换为Text类型。

TinyText:存放最大长度为255个字符串。

Text:存放最大长度为65535个字符串

Blob(Binary Lange Object):专门存放二进制数据的数据类型对象最多存放65535字节的数据

Mediumtext:存放最大长度为16777215个字符的字符串

Mediumblob:存放最大长度为16777215字节的数据

Longtext:存放最大长度为4294967295个字符的字符串

Longblob:存放最多为4294967295字节的数据

2、Number(数字)

tinyint(size):带符号:-127到128

无符号:0-255

smallint(size_default=6):带符号:-32768到32767

无符号:0到65535

mediumint(size_default=9):带符号:-838608到8388607

无符号:0到16777215

int(size_default=11)

bigint(size_default=20)

float(size,d)(浮点型的小数字):size规定:显示最大为数

d规定:小数点右侧的最大位数

double(size,d)(浮点型的大数字):size规定:显示最大为数

d规定:小数点右侧的最大位数

decimal(size,d):字符串储存的double类型,允许固定小数点。 size规定:显示最大为数

d规定:小数点右侧的最大位数

这里需要注意:*int(size)并不是存储在数据库中的具体长度*,int(3)/int(4)/int(5)在数据库中所占的存储空间都一样大,只是*显示给用户的方式有不同*

3、Date(日期)

date( ) :日期

格式:YYYY-MM-DD

范围:1001-01-01到1999-12-31

datetime( ) :日期、时间组合

格式:YYYY-MM-DD HH:MM:SS

time( ) :时间

格式:HH:MM:SS

year( ) :年--2位 or 4位

(2)主键

Primary key

(3)外键

Foreign key

(4)索引

Index

(5)保证某列的每行必须有唯一的值

Unique

(6)保证列中得值符合指定的条件

Check

(7)规定没有给列赋值时的默认值

Default

有了以上知识铺垫以后可以来说说我们的表格创建语法:

创建表格语法:

create table table_name (

column_name1 data_type(size)(数据类型)constraint_name,

column_name2 data_type(size) constraint_name,

column_name3 data_type(size) constraint_name

......

);

可能有小伙伴看不明白上面啥意思可以举一个实例:

创建一个雇员表(employee),字段名包括:雇员ID(empid),名字(name),性别(sex),标题(title),生日(birthday),部门ID(depid)

雇员ID数字类型为整数型,设置为主键

姓名数字类型为可变字符串型,设置不能为空

性别数字类型设置为固定字符串型,设置选择“男” 或者 “女”

标题数字类型设置为可变字符串型,设置能为空

生日数字类型设置为日期型,设置唯一

部门ID数字类型设置为整数型,设置默认值为1

create table employee(

empid int(10) primary key,

name varchar(32) not null,

sex char(4) check ('男' or '女'),

title varchar(32) null,

birthday date unique,

depid number() default '1');

下面会举例创建每个约束条件

(1)创建主键约束:

首先我们需要去了解主键的特征:

1、约束唯一标识数据库表中每条记录

2、主键必须包含唯一的值

3、不能包含NULL值

4、每表应有一个主键

5、每表只能有一个主键

创建主键约束的语法:

create table table_name(

column_name1 datetype primary key);

在已建好的表中增加主键约束的语法(前提是该表之前没有主键约束):

alter table table_name add primary key (column_name);

撤销已建好的表中的主键约束的语法:

alter table table_name drop primary key (column_name);

(2)创建外键约束:

外键约束的特征:

一个表中的foreign key指向另一个表中的unique key(唯一约束值)

必须有两个表才能引用foreign key

创建外键约束的语法:

前置条件:

table1

table2

创建外键的语法:(用到关键字:reference n.参考)

create table table2_name1(

column_name1 datetype constraint,

column_name2 datetype constraint,

primary key (column_name1),

foreign key (column_name2) reference table1_name1 (column_name1));

(3)创建索引:

索引的特征:

1、数据库更快的查询数据

2、(用户无法看到索引)它们只能被用来加速搜索查询

创建索引的语法:

1、在表上创建一个简单的索引:

create index index_name on table_name (column_name);

可以理解为在表的列上创建索引

2、在表上创建一个 唯一 索引:

这里面用到了关键字唯一(unique)。这是一个组合用法

create unique index index_name on table_name (column_name);

3、创建不止一个索引:

create index index_name on table_name (column_name1、column_name2);

4、删除表中索引:

alter table table_name drop index index_name;

(其实语句语法都是相似的只是看如何使用。这里面就要涉及到对SQL语句的理解深度的问题)

(4)创建唯一约束:

这里只需要注意一点每个表中可以有多个unique约束,但是只能有一个primary key约束

create table table_name(

column_name datetype unique);

(5)创建CHECK约束:

create table table_name(

column_name datetype check ( '内容' or '内容'));

(6)创建DEFAULT约束:

create table table_name(

column_name datetype default value);

SQL语句之“增”*

增的语法比较简单,但是增的类型有两种。

第一种:整行插入(关键字:insert into)

语法:

insert into table_name values(

column_name1_date),

(column_name2_date),

(column_name3_date,......);

上面的方法是多段插入的方法,下面有分别插入的方法:

insert into table_name values(

column_name1_date);

insert into table_name values(

column_name2_date);

insert into table_name values(

column_name3_date);

......

第二种:指定插入(关键字:update)

update table_name set column_name='value_new' where column_name='value_old';

增的时候要注意:增加的数据必须符合建表是该字段名的数据类型以及约束条件

 

相关内容

热门资讯

安卓更换别的手机系统,轻松切换... 你有没有想过,你的安卓手机用久了,是不是有点审美疲劳了呢?或者,你最近是不是对其他手机系统产生了浓厚...
安卓系统单机神雕侠侣,指尖重温 你有没有想过,在手机上也能体验一把江湖恩怨、侠骨柔肠?没错,就是那个让人心驰神往的《神雕侠侣》!今天...
安卓系统键盘语言切换,安卓系统... 你有没有发现,手机上的安卓系统键盘语言切换功能,简直就像是个神奇的魔法棒,轻轻一点,就能让文字飞舞在...
oppok1安卓系统,性能与体... 你有没有发现,最近手机圈里又掀起了一股热潮?没错,就是OPPO K1这款新机!这款手机不仅外观时尚,...
安卓系统环境的搭建,从零开始构... 想要在电脑上体验安卓系统的魅力,是不是已经跃跃欲试了呢?别急,今天就来手把手教你如何搭建一个属于自己...
【MySQL】锁 锁 文章目录锁全局锁表级锁表锁元数据锁(MDL)意向锁AUTO-INC锁...
【内网安全】 隧道搭建穿透上线... 文章目录内网穿透-Ngrok-入门-上线1、服务端配置:2、客户端连接服务端ÿ...
GCN的几种模型复现笔记 引言 本篇笔记紧接上文,主要是上一篇看写了快2w字,再去接入代码感觉有点...
数据分页展示逻辑 import java.util.Arrays;import java.util.List;impo...
Redis为什么选择单线程?R... 目录专栏导读一、Redis版本迭代二、Redis4.0之前为什么一直采用单线程?三、R...
【已解决】ERROR: Cou... 正确指令: pip install pyyaml
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
Lock 接口解读 前置知识点Synchronized synchronized 是 Java 中的关键字,...
Win7 专业版安装中文包、汉... 参考资料:http://www.metsky.com/archives/350.htm...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
大模型未来趋势 大模型是人工智能领域的重要发展趋势之一,未来有着广阔的应用前景和发展空间。以下是大模型未来的趋势和展...
python实战应用讲解-【n... 目录 如何在Python中计算残余的平方和 方法1:使用其Base公式 方法2:使用statsmod...
学习u-boot 需要了解的m... 一、常用函数 1. origin 函数 origin 函数的返回值就是变量来源。使用格式如下...
常用python爬虫库介绍与简... 通用 urllib -网络库(stdlib)。 requests -网络库。 grab – 网络库&...
药品批准文号查询|药融云-中国... 药品批文是国家食品药品监督管理局(NMPA)对药品的审评和批准的证明文件...