数据库的简单知识

发布于:2022-12-16 ⋅ 阅读:(1218) ⋅ 点赞:(1)

目录

1.创建数据库

2.创建表

 3.添加字段

4.删除字段

5.修改字段名

6.添加唯一性约束

7.为表的所有字段插入数据

8.更新数据

9.删除数据

10.使用select创建表


1.创建数据库

创建一个名为teachingdb的数据库

CTEATE DATABASE teachingdb;

 创建完数据库之后我们可以通过show databases;命令查看MySQL中已存在的数据库

2.创建表

我们知道数据库就是存储数据的地方,那数据库中的数据到底存放在哪里呢?数据库中的数据是存放在一张一张的中的。 你可以想象数据库就像一个文件夹,而你可以理解为一个 excel 表格,其实他们本来就挺像。

如何在指定数据库中创建表

我们先来了解一下在数据库中创建表的规则:

CREATE TABLE 表名
(
    字段名,数据类型,
    字段名,数据类型,
    .....
)

 例如:

 

 添加了数据(向表中插入数据之后的章节会提到)的表格,示例如下:

是不是很像 excel 表格呢?现在你确实可以这样理解哦。

接下来我们通过一个例子来了解如何在指定数据库中创建表:

t_user 表结构如下:

字段名称 数据类型 备注
id INT 用户ID
username VARCHAR(32) 用户名
password VARCHAR(32) 密码
phone VARCHAR(11) 手机号码

首先创建数据库(在MySQL数据库中是不区分大小写的不过数据库的名字是区分大小写的),如下:

CREATE DATABASE MyDb;

然后选择数据库:

USE MyDb;

最后创建 t_user 表:

CREATE TABLE t_user
(
    id INT,
    username VARCHAR(32),
    password VARCHAR(32),
    phone VARCHAR(11)
);

 如图:

 表创建好之后可以使用如下语句查看表的基本结构,用来验证是否创建成功是再好不过啦。

语法如下:


 
  1. DESCRIBE 表名;

简写:


 
  1. DESC 表名;

例如:

主键

主键,是表中一列或者多列的组合,主键约束(Primary Key Constraint)要求主键列的数据唯一,并且不允许为空,主键能够唯一的标识表中的每一条记录,可以结合外键来定义与不同数据表之间的关系。 怎么理解主键呢?我们知道数据库中的表可以存放很多数据,如果把表中的每一个数据比作一个人的话,那么表的主键就可以看做是人的身份证

添加主键约束

有两种方式可以添加主键约束: 1.在定义列的同时指定主键; 2.在定义完字段之后再指定主键。

(1) 在定义列的同时指定主键:

 (2) 在定义完所有列之后指定主键。

 3.添加字段

添加字段

因为甲方的业务需求是不停变化的,所以在数据库操作中,添加字段可是常有的事。一个完整的字段包括:字段名数据类型完整性约束

语法规则为: ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件] [FIRST|AFTER] 已存在字段名; 。

以下是在 MySQL 中常用的约束。

NOT NULL 约束:确保某列不能有 NULL 值。

DEFAULT 约束:当某列没有指定值时,为该列提供默认值。

UNIQUE 约束:确保某列中的所有值是不同的。

PRIMARY Key 约束:唯一标识数据库表中的各行/记录。

CHECK 约束:CHECK 约束确保某列中的所有值满足一定条件。

在表的最后一列添加字段

只要不做 [FIRST|AFTER] 的位置说明,在添加字段时 MySQL 会默认把新字段加入到表的最后一列。

举个例子: 现在我们要把字段 prod_country 添加到表 Mall_products 的最后一列。表结构如下:

 输入命令: ALTER TABLE Mall_products ADD prod_country varchar(30);

执行结果如下所示:

在表的第一列添加字段

如果我们想在第一列添加新的字段,只需做 FIRST 的位置说明。

举个例子: 现在我们要把字段 prod_country 添加到表 Mall_products 的第一列。

输入命令: ALTER TABLE Mall_products ADD prod_country varchar(30) FIRST; 执行结果如下所示:

在表的指定列后添加字段

如果我们想在某一列后面添加新的字段,只需做 AFTER 的位置说明,然后注明你想让它添加在哪个字段的后面即可。

举个例子: 现在我们要把字段 prod_country 添加到表 Mall_productsprod_name 字段的后面。

输入命令: ALTER TABLE Mall_products ADD prod_country varchar(30) AFTER prod_name; 执行结果如下所示:

 总之,想要添加新的字段,记住绿色框里的语法规则就能记住三种位置的添加方式。

4.删除字段

有添加的需求就会有删除的需求。删除一个字段就是将数据表中的某个字段从表中移除。

语法规则为: ALTER TABLE 表名 DROP 字段名; 。

举个例子: 现在我们要把字段 prod_price 从表 Mall_products 中删除。表结构如上图结果所示。

输入命令: ALTER TABLE Mall_products DROP prod_price; 执行结果如下所示:

 字段 prod_price 成功删除!

5.修改字段名

有时,在我们建好一张表后会突然发现,哎呀!字段名貌似写错了!怎么办?要删了表再重新建一个新表吗?还是要删了这个字段再新建一个新的字段? 都不用,MySQL 中修改字段名称也有专门的语句,接近于自然语言,很好记忆。

语法规则为: ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型; 。

举个例子: 现在我们要把表 Mall_products 中的字段 prod_id 改名为 ID。表结构如下:

 输入命令:ALTER TABLE Mall_products CHANGE prod_id ID varchar(20);。执行过程如下所示。简单吧!

小提示: 如果不需要修改字段的数据类型,可以把新字段的数据类型设置为和原来一样,但是!千万不要空着它!

修改字段数据类型

随着存储的数据越来越多,数据库新人可能会发现,哎呀,当初预留的数据类型已经不能满足要求了,或者当初预留的字符太少了,怎么办?怎么修改?规则来了。

语法规则为: ALTER TABLE 表名 MODIFY 字段名 数据类型; 。

举个例子: 现在我们要把表 Mall_products 中的字段 ID 的数据类型改为 varchar(30)。表结构如下:

 输入命令:ALTER TABLE Mall_products MODIFY ID varchar(30);。执行过程如下所示。

 ID 的数据类型 varchar(20) 成功变成了 varchar(30)

6.添加唯一性约束

唯一性约束定义

  • 唯一约束(Unique Key)是指所有记录中字段的值不能重复出现。

  • 唯一约束与主键约束相似的是它们都可以确保列的唯一性。

  • 唯一约束与主键的区别: 唯一约束在一个表中可有多个,并且设置唯一约束的列允许有空值,但是只能有一个空值。 而主键约束在一个表中只能有一个,且不允许有空值。

添加唯一性约束

语法规则为:ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>)

7.为表的所有字段插入数据

向表中插入数据最简单的方法就是使用 INSERT 语句。 INSERT 语句需要你声明要插入内容的表 (table) 名和内容 (values)

  1. 语法规则:INSERT INTO 表名 (字段名) VALUES (内容);

举个例子:

假设我们现在有一张空表MyUser如下:

 接下来,我们要往空表中插入一条内容,插入(INSERT)语句为:

  1. insert into MyUser(name,age) values('zhnagsan',18);

结果为:

分析:

在插入数据时,我们指定了所有的字段名,这样的好处是:即使我们打乱了原本字段的排列顺序,只要插入的数据与之匹配,插入都不会出错。其实,还有一种偷懒的办法,就是我们可以不填字段名,但是这样的话,就必须老老实实的按字段顺序来填入相应的数据。

为表的指定字段插入数据

有的时候,我们并不想往某个字段内插入完完整整的值,或者说,有的时候我们并没有完整的数据可以整整齐齐插入某个字段。这时候就需要我们只为指定好的字段插入数据了,其他的我们都不用管。换句话说,就是: 为表的指定字段插入数据,就是在 INSERT 中只向部分插入值,而其他字段的值为表定义时的默认值。

举个例子

假设我们现在有一张空表 MyUser 如下:

 我们忽略字段 age,为表 MyUser 插入内容:

  1. insert into MyUser(name) values('lisi'),('fawaikuangtu'),('zhangsan');

结果为:

 由于我们建表时给字段 age 设置的默认值为 Null,所以插入数据时忽略该字段,就会默认给它赋值为空。

8.更新数据

UPDATE 操作也很简单,只要记住 UPDATE 语句三要素就能轻松掌握,它们分别是:

  • 需要更新的表(table)名

  • 需要更新的字段(column)名和它的新内容(value)

  • 决定更新哪一条内容(value)过滤条件

语法规则为: UPDATE 表名 SET 字段名1 = 内容1, 字段名2 = 内容2, 字段名3 = 内容3 WHERE 过滤条件; 。

举个例子 我们现在有一张表Mall_products2,内容如下图所示:

现在我们想把 Span 换成 Pakistan,当然,地区代码也要换为 92

更新(UPDATE)语句为:

  1. UPDATE Mall_products2
  2. SET country_name = "Pakistan", country_id = 92
  3. WHERE id = 2;

结果为:

9.删除数据

删除表中的指定行

从数据表中删除数据内容需要使用 DELETE 语句,它需要 WHERE 语句来配合它来指定我们究竟应该删除哪些数据内容。

语法规则为: DELETE FROM 表名 WHERE 条件语句; 

我们可以指定删除某一行的数据内容,当然,我们还可以指定删除很多行的数据内容,区别就在于条件语句。那么在接下来的例子里,我们来看看很多行内容是怎么删除的。

举个例子 我们现在有一张表Mall_products2,内容如下图所示:

 现在我们想把包含 SpanItaly 的这两行数据内容同时删除,删除(DELETE) 语句为:

 DELETE FROM Mall_products2 
 WHERE id=2 OR id=3;

结果为:

删除表中的所有行

删除表中的所有行就更简单了。如果需要删除表中所有的行,只需要省略 WHERE 语句即可。

语法规则为: DELETE FROM 表名; 

举个例子 我们现在有一张表Mall_products2,内容如下图所示

 现在我们想把表Mall_products2的所有数据内容同时删除,删除(DELETE)语句为:

 DELETE FROM Mall_products2;

结果为:

 小提示: TRUNCATE TABLE 语句也可以用来删除表中的所有记录。但是与 DELETE 不同的是,TRUNCATE TABLE 语句直接删除的是表,而不是表中的内容,删除结束后还会重新创建一个表。所以它的执行速度会比 DELETE 语句快。 语法为:`TRUNCATE TABLE 表名;'

删除表

drop table 表名

10.使用select创建表

Create tabale as select的三种方式

示例如下: 创建一个表结构与 tabale2一模一样的表,只复制结构不复制数据;

create table table1 as select * from table2 where 1=2;

创建一个表结构与 table2一模一样的表,复制结构同时也复制数据;

create table table1 as select * from table2 ;

创建一个表结构与 table2一模一样的表,复制结构同时也复制数据;

create table table1(columns1,columns2) as
select columns1,columns2 from table2;
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到