中间发生了好多乱七八糟的事情,去参加了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