iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL之数据表控制语句
  • 803
分享到

MySQL之数据表控制语句

2024-04-02 19:04:59 803人浏览 薄情痞子
摘要

博文大纲: 一、约束条件相关语句 主键约束 非空约束 设置值的唯一性 设置列的默认值 设置自增值 二、ALTER指令的使用 修改列值的数据长度 修改字段名 向表中插入一个新的字段 添加字段时添加约

博文大纲:

  • 一、约束条件相关语句
    • 主键约束
    • 非空约束
    • 设置值的唯一性
    • 设置列的默认值
    • 设置自增值
  • 二、ALTER指令的使用
    • 修改列值的数据长度
    • 修改字段名
    • 向表中插入一个新的字段
    • 添加字段时添加约束
    • 添加一个外键
    • 删除外键
    • 删除列
    • 修改列的顺序
    • 删除表

一、约束条件相关语句

1、主键约束(主键约束要求主键列的数据唯一,并且不允许为空)
<!--创建库-->
Mysql> create database test01; 
<!--切换至新库-->
mysql> use test01;
<!--创建一个带有主键约束的表-->
mysql> create table t1(
    -> id int(10),
    -> name varchar(10) primary key,
    -> sex varchar(5),
    -> info varchar(200)
    -> );

确定创建的是否为主键(该列是否有PRI字样):

MySQL之数据表控制语句
上述方法,是在定义列的同时定义主键,下面来写一下定义完所有列之后指定主键:

mysql> create table t2(
    -> id int(10),
    -> name varchar(10),
    -> sex varchar(5),
    -> primary key(id)
    -> );

确认是否有主键:

MySQL之数据表控制语句

2、非空约束(不允许列的值为空)
mysql> create table t3(
    -> id int(6) not null,
    -> name varchar(10)
    -> );

查看表信息确认:

MySQL之数据表控制语句

3、设置值的唯一性(不允许重复数据,可以为空,但只能有一个空,否则就会被视为重复)
mysql> create table t7(
    -> id int not null unique,
    -> name varchar(20)
    -> );

查看其表结构:

MySQL之数据表控制语句

可以看到其被标识为了主键,但是在创建时并没有指定它是主键,而是这一列的属性基本满足了主键的要求,如唯一、不可以为空。

4、设置列的默认值(如果该列为空,则写入默认值)
mysql> create table t4(
    -> id int(2) not null,
    -> name varchar(20),
    -> project varchar(20) default 'mysql'
    -> );

查看确认:

MySQL之数据表控制语句

5、设置自增值(一般用于id列,自增列必须设置为主键)

注:mysql只允许设置初始值,而不允许设置自增值,也就是说,可以设置为第一个值为5,然后依次递增,如:5、6、7.....但不可以设置其一次递增2个数,比如:5、7、9......

mysql> create table t5(
    -> id int not null primary key auto_increment,
    -> name varchar(20)
    -> );

查看表结构进行确认:

MySQL之数据表控制语句

测试其自增效果:

mysql> insert into t5(name) values('zhangsan'),('lisi');
mysql> select * from t5;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | lisi     |
+----+----------+

从上面的测试可以看出,只插入了两个name的值,并没有插入id的值,但是查看表数据时,id已经有值了,说明自增生效。

设置自增的起始值

#定义初始值为5
mysql> create table t6(                                  
    -> id int primary key auto_increment,
    -> name varchar(20)
    -> ) auto_increment=5;
#插入数据进行测试
mysql> insert into t6(name) values('zhangsan'),('lisi'); 

验证其自增值:
MySQL之数据表控制语句

二、ALTER指令的使用

1、修改列值的数据长度
mysql> desc t1;            <!--查看t1表的结构-->
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(10)      | YES  |     | NULL    |       |
| name  | varchar(10)  | NO   | PRI | NULL    |       |
| sex   | varchar(5)   | YES  |     | NULL    |       |
| info  | varchar(200) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> alter table t1 modify name varchar(20);      <!--修改其name字段的长度为20-->

确认修改后的表结构:

MySQL之数据表控制语句

2、修改字段名(在修改字段名的同时,还可以修改其新字段名的数据类型及数据长度)
mysql> desc t1;         <!--查看其info列-->
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(10)      | YES  |     | NULL    |       |
| name  | varchar(20)  | NO   | PRI | NULL    |       |
| sex   | varchar(5)   | YES  |     | NULL    |       |
| info  | varchar(200) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+

mysql> alter table t1 change info infofo char(20);    <!--修改其info列的名字及数据类型-->

验证修改后的结果:

MySQL之数据表控制语句

3、向表中插入一个新的字段

1)在最后一列插入新列:

mysql> desc t3;             <!--确认t3列当前的字段-->
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(6)      | NO   |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> alter table t3 add tel int(13);         <!--插入一个tel列-->

查看插入后的列:

MySQL之数据表控制语句
2)在表格开头插入新列:

mysql> alter table t3 add sex char(1) first;

3)在指定的列后面插入新列:

mysql> alter table t3 add loc varchar(255) after name;
4、添加字段时添加约束
mysql> alter table t3 add hobyy varchar(255) default 'work';
5、添加一个外键

进行此操作前,需要自行找一个有主键的表(我这里t1表的name列是主键)。

现在t1表的结构如下:
MySQL之数据表控制语句
t3表的结构如下:
MySQL之数据表控制语句

现在将t3表的name列添加为t1表的name列的外键(其中t3_t1_name为自定义的约束名称):

mysql> alter table t3 add constraint t3_t1_name foreign key(name) references t1(name);

查看t3表的变化:

MySQL之数据表控制语句

6、删除外键

将上面添加的外键删除,t3_t1_name是外键的名称。

mysql> alter table t3 drop foreign key t3_t1_name;
mysql> alter table t3 drop  key t3_t1_name;
7、删除列
mysql> alter table t3 drop tel;                <!--删除t3表的tel列-->

注意:如果要删除的列和其他表中的列有关联关系,则需要先删除关系,再删除列。否则当以后再创建了相同名称的列时,会自动将其建立关系。

8、修改列的顺序
<!--将name字段移动到表的第一列-->
mysql> alter table t3 modify name varchar(10) first;
9、删除表
mysql> drop table t5;            <!--直接删除-->
Query OK, 0 rows affected (0.00 sec)

mysql> drop table t5;            <!--再次删除,由于已经删除了,所以表不存在,会报错-->
ERROR 1051 (42S02): Unknown table 'test01.t5'
mysql> drop table if exists t5;       <!--进行判断后删除,if exists表示如果存在就删除-->
Query OK, 0 rows affected, 1 warning (0.00 sec)
<!--可以看到上述返回的信息有1个warning事项,可以执行以下命令进行查看-->
mysql> show warnings;    <!--记录的信息时不知道test01库中的t5表-->
+-------+------+---------------------------+
| Level | Code | Message                   |
+-------+------+---------------------------+
| Note  | 1051 | Unknown table 'test01.t5' |
+-------+------+---------------------------+
1 row in set (0.00 sec)

同样,当执行删除表操作时,如果存在关联关系,则需要先删除关联关系,再删除表。

———————— 本文至此结束,感谢阅读 ————————

您可能感兴趣的文档:

--结束END--

本文标题: MySQL之数据表控制语句

本文链接: https://www.lsjlt.com/news/39056.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python基础之函数与控制语句
    目录前言函数判断循环总结前言 今天我们简单说下Python函数和控制语句,大纲如下: 函数 “脏活累活交给函数来做”,首先,看看Python中定义函数的方法...
    99+
    2024-04-02
  • Oracle数据库之PL/SQL使用流程控制语句
    目录一、条件分支语句1、if判断2、if else判断3、if elsif  else判断4、CASE 表达式二、循环语句1、loop简单循环(至少执行一次)2. ...
    99+
    2024-04-02
  • C语言控制语句之 循环
    入口条件循环:while循环 在执行多次循环之前之就已经决定是否执行循环 代码格式: while(关系表达式) 语句 //可以是以分号结尾的简...
    99+
    2024-04-02
  • 头歌Java语言之控制语句
    第1关:if-else语句 - 绩点计算 本关的编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下: decompose()方法将传入一个变量score,表示小明的课程的成绩。 输...
    99+
    2023-10-09
    java c++ 算法
  • 【MySQL】数据库SQL语句之DML
    目录 前言: 一.DML添加数据 1.1给指定字段添加数据 1.2给全部字段添加数据 1.3批量添加数据 二.DML修改数据 三.DML删除数据 四.结尾 前言:   时隔一周,啊苏今天来更新啦,简单说说这周在做些什么吧,上课、看书、...
    99+
    2023-08-31
    数据库 sql mysql
  • MySQL NULLIF() 控制流函数与 CASE 语句有何相似之处?
    正如我们所知,MySQL的NULLIF()控制流函数在两个参数相同时返回NULL,否则返回第一个参数。因此,它类似于以下的CASE语句:CASE WHEN expression1=expression2 THEN NULL ELSE Exp...
    99+
    2023-10-22
  • python循环控制之break和continue流程控制语句
    目录1.流程控制语 break1.1while循环1.2for循环二、循环控制语 continue1.流程控制语 break 用于结束整个循环结构,直接退出整个循环 例: 用两种循环...
    99+
    2024-04-02
  • mysql中删除数据表的语句
    在 mysql 中,删除数据表的语句为:drop table 表名。该语句将永久删除指定名称的数据表及其中的所有数据,因此在使用前应确保不再需要该数据。 MySQL 中删除数据表的语句...
    99+
    2024-05-01
    mysql
  • mysql流程控制语句是什么
    这篇文章将为大家详细讲解有关mysql流程控制语句是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql中的流程控制语句包括有:IF语句、CASE语句、LOOP语...
    99+
    2024-04-02
  • mysql查询控制语句的介绍
    这篇文章主要讲解了“mysql查询控制语句的介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql查询控制语句的介绍”吧!mysql查询的控制语句字段去重**关键字:distinct*...
    99+
    2023-06-14
  • 数据库事务控制语句是怎样的
    这篇文章将为大家详细讲解有关数据库事务控制语句是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在MYSQL命令行的默认设置下,事务都是自动提交的,即执...
    99+
    2024-04-02
  • Python - if语句控制
    if else逻辑值包含了两个值Ture: 表示非空的量(string,tuple,list,set,dictionary),所有非零数。Flase: 表示0,None,空的量。elif语句if expression1:    statem...
    99+
    2023-01-31
    语句 Python
  • 流程控制语句
    JavaScript 运算符与流程控制语句 运算符 1、赋值运算符:=、+=、-=、*=、/=、%= 2、算术运算符:+、-、*、/、%、++、-- 3、字符串运算符:+、+= 4、比较运算符:==、!=、= 5、逻辑运算符:&&、||、...
    99+
    2023-06-03
  • MySQL中有哪些事务控制语句
    今天就跟大家聊聊有关MySQL中有哪些事务控制语句,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。事务SQL 控制语句MySQL事务遵从ACID:•...
    99+
    2024-04-02
  • mysql中有哪些流程控制语句
    mysql中的流程控制语句有:1.IF语句,根据不同条件执行不同操作;2.CASE语句,多分支语句结构;3.WHILE循环语句,先判断后执行;4.LOOP循环语句,没有内置的循环条件;5.REPEAT循环语句,先执行后判断;mysql中的流...
    99+
    2024-04-02
  • Mysql数据库之sql基本语句小结
    本文实例讲述了Mysql数据库之sql基本语句。分享给大家供大家参考,具体如下: SQL基本语句 1.登录退出及快捷键: (1)快捷键: ————快速回到行首 ctrl + a ————回到行末 ctr...
    99+
    2024-04-02
  • SQL语句复制数据库表中两个字段数据
    这篇文章主要讲解了“SQL语句复制数据库表中两个字段数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL语句复制数据库表中两个字段数据”吧! ...
    99+
    2024-04-02
  • mysql数据库创建数据表的语句怎么写
    这篇文章将为大家详细讲解有关mysql数据库创建数据表的语句怎么写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在mysql中,可以使用“CREATE TABLE”语句来...
    99+
    2024-04-02
  • MySQL数据表使用的SQL语句整理
    目录EXPLAIN 语句SHOW INDEX 语句ANALYZE TABLE 语句EXPLAIN 语句 分析SQL索引使用,关键词EXPLAIN: SQL举例: CREATE TAB...
    99+
    2024-04-02
  • mysql修改表数据的语句怎么写
    mysql修改表数据语句的写法:语法格式update 表名 set 字段名=‘新内容’+ where条件示例mysql> select* from&nbs...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作