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

相关推荐
Demons_kirit2 小时前
新项目如何连接上自己本地的数据库
数据库
洪晓露3 小时前
将 rke2 集群证书延长至 10 年
运维·服务器·数据库
程序猿乐锅3 小时前
【MySQL | 第八篇】MySQL 视图
数据库·mysql
jieyucx4 小时前
SQL 查询终极高阶通鉴:从零基础拆解到工业级多表联查、窗口函数与索引优化
数据库·sql
ai_coder_ai5 小时前
论 NoSQL 数据库技术及其应用
数据库·nosql
AOwhisky6 小时前
Redis 学习笔记(第一期):概述、安装配置与核心理论
运维·数据库·redis·笔记·学习·云计算
ytttr8736 小时前
C# 定时数据库备份工具
开发语言·数据库·c#
睡不醒男孩0308236 小时前
自建 Prometheus+Grafana 与 CLUP 深度监控 PG 集群有什么区别?
数据库·oracle
就叫_这个吧6 小时前
IDEA Mybatis xml文件,实现sql语句联想,自动填入补充
xml·mysql·intellij-idea·mybatis