MySQL-day2

中间发生了好多乱七八糟的事情,去参加了2次数学建模,看了黑马大模型的网课,结果搁置了这部分的学习,现在重新捡起来。

以下内容是看课笔记【全85集】MySQL数据分析零基础小白必看!MySQL数据库基础教程,SQL数据库快速入门!(全程干货)_哔哩哔哩_bilibili

创建表与删除表

创建表

使用DDL语句创建表

sql 复制代码
CREATE TABLE  表名(列名 类型,列名 类型...); 

示例:

创建一个employees表包含雇员ID,雇员名字,雇员薪水。

sql 复制代码
create table employees(employee_id int,employee_name varchar(10),salary float(8,2));
sql 复制代码
mysql> create table employees(employee_id int,employee_name varchar(10),salary float(8,2));
ERROR 1046 (3D000): No database selected
mysql> CREATE DATABASE company;
Query OK, 1 row affected (0.00 sec)

mysql> USE company;
Database changed
mysql> CREATE TABLE employees(
    ->     employee_id INT,
    ->     employee_name VARCHAR(10),
    ->     salary FLOAT(8,2)
    -> );
Query OK, 0 rows affected, 1 warning (0.05 sec)

删除表

使用DDL语句删除表

sql 复制代码
DROP TABLE 表名;

示例:

删除employee表

sql 复制代码
drop table employees;
sql 复制代码
mysql> drop table employees;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
Empty set (0.01 sec)

修改表

使用DDL语句修改表

sql 复制代码
ALTER TABLE 旧表名 RENAME 新表名;

示例:

sql 复制代码
mysql> create table employees(employee_id int,employee_name varchar(10),salary float(8,2));
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| employees         |
+-------------------+
1 row in set (0.00 sec)

mysql> alter table employees rename emp;  //改名
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| emp               |
+-------------------+
1 row in set (0.00 sec)

选中之后,按F2,编辑表名

修改列名

使用DDL语句修改列名

sql 复制代码
ALTER TABLE 表名 CHANGE COLUMN 旧列名 新列名 类型;
sql 复制代码
mysql> alter table emp change column employee_name name varchar(10);
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

修改后按ctrl+s保存

修改列类型

使用DDL语句修改列类型

sql 复制代码
ALTER TABLE 表名 MODIFY 列名 新类型;

示例:

sql 复制代码
mysql> alter table emp modify name varchar(40);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

navicat:直接改

添加新列

使用DDL语句添加新列

sql 复制代码
ALTER TABLE 表名 ADD COLUMN 新列名 类型;

示例:

在emp表中添加佣金列,列名为commission_pct.

sql 复制代码
mysql> alter table emp add column commision_pct float(4,2);
Query OK, 0 rows affected, 1 warning (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 1

删除指定列

使用DDL语句删除指定列

sql 复制代码
ALTER TABLE 表名 DROP COLUMN 列名;

示例:

删除emp表中的commission_pct(我才发现之前创建的时候commission_pct.少了一个s)

sql 复制代码
mysql> alter table emp drop column commision_pct;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

MYSQL中的约束

约束概述

数据库约束是对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性。

1. 主键约束 :唯一标识每一行数据,非空且不重复,一张表只能有一个。

2. 外键约束:关联两张表,保证当前表字段值,必须在另一张表主键中存在。

3. 唯一性约束 :字段值不能重复,允许为空。

4. 非空约束 :字段必须填值,不允许为空。

5. 检查约束:限定字段取值范围,不符合规则就无法插入/修改。

添加主键约束

单一主键:使用一个列作为主键列,当该列的值有重复时,则违反唯一约束。

联合主键:使用多个列作为主键列,当多个列的值都相同时,则违反唯一约束。

修改表添加主键约束

使用DDL语句添加主键约束

sql 复制代码
ALTER TABLE 表名 ADD PRIMARY KEY(列名);

示例:

将emp表中的employee_id修改为主键

sql 复制代码
mysql> alter table emp add primary key(employee_id);
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

主键自增长

MySQL中的自动增长类型要求:

1.一个表中只能有一个列为自动增长。

2.自动增长的列的类型必须是整数类型。

3.自动增长只能添加到具备主键约束与唯一性约束的列上。

4.删除主键约束或唯一性约束,如果该列拥有自动增长能力,则需要先去掉自动增长然后在删除约束。

sql 复制代码
alter table 表名 modify 主键 类型 auto_increment;

示例:

将emp表中的employee_id主键修改为自增

sql 复制代码
mysql> alter table emp modify employee_id int auto_increment;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0

有钥匙就是这个标记为主键

休息,目前进度17/85

相关推荐
CCIE-Yasuo17 分钟前
网络安全-学习数据库-Mysql-2
数据库·学习·mysql
这个DBA有点耶22 分钟前
内核级AI与多模融合:AI数据库在海外场景的落地要点
数据库·人工智能·架构
涛思数据(TDengine)27 分钟前
从工业本体到 AI 原生:TDengine 出席 2026 QCon 分享工业数据基础设施路径
大数据·数据库·人工智能·tdengine·工业
Jesse_EC34 分钟前
换乘次数最少的路径 SQL 查询详解与实战经验——从 WITH RECURSIVE 到 pgRouting
数据库·postgresql
工控丫丫39 分钟前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库
这个DBA有点耶2 小时前
云数据库半夜卡顿,CPU才30%?深挖云盘IOPS突发限制与内核挂起机制
数据库·mysql·云原生
无言听风雨丶3 小时前
Redis 运维实战与排错
运维·数据库·redis
小天源4 小时前
智叟云集系统 · 架构与职责分层
服务器·前端·数据库
herinspace5 小时前
管家婆实用贴-SQL 2008如何修改成混合模式
服务器·数据库·sql·管家婆软件·财务软件·合肥管家婆软件
打螺丝的小李5 小时前
制造企业质量管理系统的三类产品形态:分别解决什么问题
数据库·制造