page contents

SQL数据库怎么用?献上SQL数据库的基本操作

1.创建数据表 1.1创建表的语法形式 CREATE TABLE<表名> ( 字段名1, 数据类型{列级别约束条件}[默认值], 字段名2, 数据类型{列级别约束条件}[默认值], ...... [表级别约束条...

attachments-2021-04-5eFuHcHe6089059052a95.png

1.创建数据表

1.1创建表的语法形式

CREATE TABLE<表名>
(
字段名1, 数据类型{列级别约束条件}[默认值],
字段名2, 数据类型{列级别约束条件}[默认值],
......
[表级别约束条件]
);

表名可以是汉字

示例

CREATE TABLE 学生表(
id INT(11),
NAME VARCHAR(25),
deptld INT(11),
salary FLOAT
);
show tables;

1.2主键约束

一列或多列的组合

主键列数据唯一

不允许为空

唯一标识表中的一条记录

结合外键定义不同数据表之间的关系

如身份证和人的关系,一一对应

1.2.1 单字段主键

字段名 数据类型 PRIMARY KEY[默认值]

示例

CREATE TABLE 学生表(
id INT(11) PRIMARY KEY,
NAME VARCHAR(25),
deptld INT(11),
salary FLOAT
);
CREATE TABLE 学生表(
id INT(11),
NAME VARCHAR(25),
deptld INT(11),
salary FLOAT,
PRIMARY KEY(id)
);

1.2.2 多字段主键

PRIMARY KEY[字段1, 字段2, ..., 字段n]

示例

CREATE TABLE 学生表(
NAME VARCHAR(25),
deptld INT(11),
salary FLOAT,
PRIMARY KEY(deptld, salary)
);

1.3外键约束

一列或多列

用来在两个表之间数据建立连接

一个表有一个或多个外键。

外键可以为空,若不为空,每个外键值必须等于另一个表中主键某个值

可以不是本表的主键,但对应另一个表的主键

作用:保证数据引用的完整性。

定义外键后,不允许删除另一个表具有关联关系的行

主表(父表):主键所在的表

从表(子表):外键所在的表

[CONSTRAINT<外键名>] FOREING KEY 字段名1,[字段名2,...]
REFERENCES<主表名>主键列1[,主键列2,...]

示例

CREATE TABLE tb_dept1(
id INT(11) PRIMARY KEY,
NAME VARCHAR(22) NOT NULL,
location VARCHAR(50)
);
CREATE TABLE tb_employee5(
id INT(11) PRIMARY KEY,
NAME VARCHAR(25),
deptld INT(11),
salary FLOAT,
CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptld) REFERENCES tb_dept1(id)
);

外键约束:fk_emp_dept1

外键名称:deptld

依赖于:tb_dept1的主键id

1.4 非空约束

非空约束是指字段的值不能为空

如果添加数据没有指定值,报错

字段名 数据类型 NOT NULL

示例

CREATE TABLE tb_dept1(
id INT(11) PRIMARY KEY,
NAME VARCHAR(22) NOT NULL,
location VARCHAR(50)
);

1.5 唯一性约束

要求该列唯一,允许为空,但只能出现一个空值。

可以确保一列或者几列都不出现重复值

1.5.1 定义完列之后直接指定唯一约束

语法

字段名 数据类型 UNIQUE

示例

CREATE TABLE tb_dept2(
id INT(11) PRIMARY KEY,
NAME VARCHAR(25) UNIQUE,
location VARCHAR(50)
);

1.5.2 定义完所有列之后直接指定唯一约束

语法

[CONSTRAINT<约束名>] UNIQUE(<字段名>)

示例

CREATE TABLE tb_dept2(
id INT(11) PRIMARY KEY,
NAME VARCHAR(25),
location VARCHAR(50),
CONSTRAINT sth UNIQUE(NAME)
);

UNIQUE 和 PRIMARY KEY的区别

一个表中可以有多个字段声明UNIQUE,但只能有一个PRIMARY KEY声明;

声明PRIMARY KEY的列不允许有空值,但声明UNIQUE的字段允许空值存在;

1.6 默认约束

指定某列的默认值。

语法

字段名 数据类型 DEFAULT 默认值

示例

CREATE TABLE tb_dept2(
id INT(11) PRIMARY KEY,
NAME VARCHAR(25),
location VARCHAR(50),
age INT(11) DEFAULT 25
);

1.7 设置数据表的属性自动增加

插入新的记录,系统自动生成字段的主键值

默认AUTO_INCREMENT初始值为1,自增步长1;

一个表只能一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分;

该字段可以是任何的整数类型

语法

字段名 数据类型 AUTO_INCREMENT

示例

CREATE TABLE tb_dept2(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(25),
location VARCHAR(50),
);

2. 查看数据表结构

2.1 查看表基本结构

DESC 表名 或者 DESCRIBE 表名

DESC tb_dept1;

NULL: 表示该列是否可以存储NULL值;

KEY: 表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一部分;MUL表示在列中某个给定值允许出现多次;

DEFAULT: 表示该列是否有默认值,如果有的话值是多少;

EXTRA:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。

2.2 查看表详细结构

可以用来显示创建表时候的CREATE TABLE语句

可以查看存储引擎和字符编码

SHOW CREATE TABLE<表名\G>;

\G在命令行可以让结果更直观,可以省略

示例

SHOW CREATE TABLE tb_dept1

3. 修改数据表

修改表指的是修改数据表结构。

3.1 修改表名

语法

ALTER TABLE <旧表名> RENAME[TO] <新表名>;

示例

ALTER TABLE tb_dept1 RENAME tb_dept2;

修改表名不修改表结构

3.2 修改字段数据类型

语法

ALTER TABLE <表名> MODIFY <字段名> <数据类型>;

表名:需要修改字段所在表的表名

字段名:需要修改的字段

数据类型:修改后字段的数据类型

示例

ALTER TABLE tb_dept1 MODIFY name VARCHAR(30);

3.3修改字段名

语法

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;

表名:需要修改数据类型字段所在表的表名

旧字段名:修改前的字段名

新字段名:修改后的字段名

新数据类型:修改后字段的数据类型

示例

ALTER TABLE tb_dept1 CHANGE location loc VARCHAR(30);

3.4 添加字段

语法

ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件][FIRST/AFTER 已经存在的字段名];

表名:需要修改表的表名

新字段名:需要添加的字段名称

FIRST: 可选参数,将新添加的字段设置为表的第一个字段

AFTER:将新添加的字段添加到指定的“已存在字段名”的后面

如果没有最后的参数,默认将新添加字段放在数据表的最后列

3.4.1 添加无完整性约束条件的字段

示例

ALTER TABLE tb_dept1 ADD managerld INT(10);

3.4.2 添加有完整性约束条件的字段

示例

ALTER TABLE tb_dept1 ADD managerld INT(10) NOT NULL;

3.4.3 在表的第一列添加一个字段

示例

ALTER TABLE tb_dept1 ADD managerld INT(10) NOT NULL FIRST;

3.4.4 在表的指定列之后添加一个字段

示例

ALTER TABLE tb_dept1 ADD managerld INT(10) NOT NULL AFTER NAME;

3.5 删除字段

语法

ALTER TABLE <表名> DROP <字段名>;

表名:需要修改表的表名

字段名:需要从表中删除的字段的名称

示例

ALTER TABLE tb_dept1 DROP name;

3.6 修改字段排序

语法

ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST / AFTER <字段2>;

表名:需要修改表的表名

字段1:需要修改位置的字段

数据类型:指“字段1”的数据类型

FIRST: 可选参数,将字段1设置为表的第一个字段

AFTER<字段2>:将“字段1”插入到“字段2”后面

3.6.1 修改字段为表的第一个字段

示例

ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) FIRST;

3.6.2 修改字段到表的指定列之后

示例

ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) AFTER location;

3.7 更改表的存储引擎

存储引擎是MySQL中的数据存储在文件或内存中时采用的不同技术实现

根据需要,选择不同的引擎,甚至可以每张表选择不同的存储引擎

MySQL主要存储引擎:MyISAM, InnoDB, MEMORY(HEAP), BDB, FEDERATED;

查看使用的引擎:SHOW ENGINES;

语法

ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;

示例

ALTER TABLE tb_date1 ENGINE=MyISAM;

3.8 删除表的外键约束

语法

ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;

“外键约束名”:定义表时CONSTRAINT关键字后面的参数

示例

ALTER TABLE tb_date1 DROP FOREIGN KEY fk_emp_dept1;

4 .删除数据表

删除数据表:将已存在的表的定义以及所有数据全部删除

删除前最好进行备份

4.1 删除没有关联的表

语法

DROP TABLE [IF EXISTS] 表1 表2 ... 表n;

示例

DROP TABLE IF EXISTS tb_date1;

4.2 删除有关联的表

存在外键,直接删除父表,会删除失败。因为破坏表的参照完整性。

解决方法1:先删除子表,再删除父表,后果是同时删除两个表的数据。

解决方法2:删除外键约束,再删除父表。

语法

ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;

示例

ALTER TABLE tb_emp DROP FOREIGN KEY fk_emp_dept;


相关文章:

SQL建立数据库:创建和使用数据库

SQL语句的21个好习惯,建议收藏

MySQL高级性能优化实战!看这篇就够了

干货篇:SQL基础快速入门,新手必读!

更多技术资讯,请继续关注六星教育社区-程序员编程技术分享交流学习高端论坛

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-a7VjzNAE62abef5cc926a.jpeg

  • 发表于 2021-04-28 14:50
  • 阅读 ( 861 )
  • 分类:数据库

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1478 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章