对数据表与其字段的修改

//操作数据表之前,先使用use指定操作在那个数据库
mysql> USE itcast;
Database changed
//创建数据表
mysql> CREATE TABLE student_tb
-> (
-> id INT(20),
-> name VARCHAR(20),
-> grade FLOAT
-> );
Query OK, 0 rows affected
//验证表是否成功,查看
mysql> SHOW TABLES;
±-----------------+
| Tables_in_itcast |
±-----------------+
| student_tb |
±-----------------+
1 row in set
//查看数据表方法1
mysql> SHOW CREATE TABLE student_tb;
±-----------±---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
±-----------±---------------------------------------------------------------------------------------------------------------------------------------------------------+
| student_tb | CREATE TABLE student_tb (
id int(20) DEFAULT NULL,
name varchar(20) DEFAULT NULL,
grade float DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=gbk |
±-----------±---------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set
//查看数据表方法2
mysql> DESC student_tb;
±------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±------------±-----±----±--------±------+
| id | int(20) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| grade | float | YES | | NULL | |
±------±------------±-----±----±--------±------+
3 rows in set
//修改表名前,先查看数据库中的所有表
mysql> SHOW TABLES;
±-----------------+
| Tables_in_itcast |
±-----------------+
| student_tb |
±-----------------+
1 row in set
//修改表名
mysql> ALTER TABLE student_tb RENAME TO grade;
Query OK, 0 rows affected

mysql> SHOW TABLES;
±-----------------+
| Tables_in_itcast |
±-----------------+
| grade |
±-----------------+
1 row in set
//在表中添加字段tel
mysql> ALTER TABLE grade ADD tel INT(20);
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

mysql> DESC grade;
±------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±------------±-----±----±--------±------+
| id | int(20) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| grade | float | YES | | NULL | |
| tel | int(20) | YES | | NULL | |
±------±------------±-----±----±--------±------+
4 rows in set
//修改字段的排列位置 用FIRST
mysql> ALTER TABLE grade MODIFY tel INT(20) FIRST;
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

mysql> DESC grade;
±------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±------------±-----±----±--------±------+
| tel | int(20) | YES | | NULL | |
| id | int(20) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| grade | float | YES | | NULL | |
±------±------------±-----±----±--------±------+
4 rows in set
//修改字段的排列位置,用AFTER
mysql> ALTER TABLE grade MODIFY tel INT(20) AFTER id;
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

mysql> DESC grade;
±------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±------------±-----±----±--------±------+
| id | int(20) | YES | | NULL | |
| tel | int(20) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| grade | float | YES | | NULL | |
±------±------------±-----±----±--------±------+
4 rows in set
//修改字段名
mysql> ALTER TABLE grade CHANGE tel hah INT(52);
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

mysql> DESC grade;
±------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±------------±-----±----±--------±------+
| id | int(20) | YES | | NULL | |
| hah | int(52) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| grade | float | YES | | NULL | |
±------±------------±-----±----±--------±------+
4 rows in set

mysql> DESC grade;
±------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±------------±-----±----±--------±------+
| id | int(20) | YES | | NULL | |
| hah | int(52) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| grade | float | YES | | NULL | |
±------±------------±-----±----±--------±------+
4 rows in set
//创建叫ha的数据表,单字段主键
mysql> CREATE TABLE ha
-> (
-> id INT(20) PRIMARY KEY,//id主键约束,id作为主键
-> name VARCHAR(20)
-> )
-> ;
Query OK, 0 rows affected

mysql> SHOW TABLES;
±-----------------+
| Tables_in_itcast |
±-----------------+
| grade |
| ha |
±-----------------+
2 rows in set

mysql> DESC ha;
±------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±------±------------±-----±----±--------±------+
| id | int(20) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
±------±------------±-----±----±--------±------+
2 rows in set
//多字段主键
mysql> CREATE TABLE sutdent_if
-> (
-> id INT(18),
-> student_id INT(11),
-> name CHAR(20),
-> PRIMARY KEY(id,student_id)
//id与student_id 两个字段组合,确定一条记录
//注意:每个数据表中最多只能有一个主键约束,
定义为PRIMARY KEY的字段不能有重复值且不能为NULL值。
-> );
Query OK, 0 rows affected
| 约束条件 | 说明 |
|PRIMARY|主键约束,用于唯一标识对应的记录|
| FOREIGN KEY | 外键约束|
|NOT NULL| 非空约束 |
|-UNIQUE-|唯一性约束-|
|DEFAULT | 默认性约束,用于设置字段的默认值 |

//唯一约束
mysql> CREATE TABLE ha2
-> (
-> id INT PRIMARY KEY,
-> stu_id INT UNIQUE,
-> name VARCHAR(20) NOT NULL
-> )
-> ;
Query OK, 0 rows affected
mysql> DESC ha2;
±-------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±-------±------------±-----±----±--------±------+
| id | int(11) | NO | PRI | NULL | |
| stu_id | int(11) | YES | UNI | NULL | |
| name | varchar(20) | NO | | NULL | |
±-------±------------±-----±----±--------±------+
3 rows in set
//默认约束
mysql> CREATE TABLE ha5
-> (
-> id INT PRIMARY KEY AUTO_INCREMENT,
-> stu_id INT UNIQUE,
-> grade FLOAT DEFAULT 0
-> )
-> ;
Query OK, 0 rows affected

mysql> DESC ha5;
±-------±--------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±-------±--------±-----±----±--------±---------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| stu_id | int(11) | YES | UNI | NULL | |
| grade | float | YES | | 0 | |
±-------±--------±-----±----±--------±---------------+
3 rows in set
//表字段的自动增加
mysql> CREATE TABLE ha6
-> (
-> id INT PRIMARY KEY AUTO_INCREMENT,
-> stu_id INT UNIQUE,
-> grade FLOAT
-> )
-> ;
Query OK, 0 rows affected

mysql> DESC ha6;
±-------±--------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±-------±--------±-----±----±--------±---------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| stu_id | int(11) | YES | UNI | NULL | |
| grade | float | YES | | NULL | |
±-------±--------±-----±----±--------±---------------+
3 rows in set

//删除数据表中的字段
mysql> ALTER TABLE ha6 DROP id;
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

mysql> DESC ha6;
±-------±--------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±-------±--------±-----±----±--------±------+
| stu_id | int(11) | YES | UNI | NULL | |
| grade | float | YES | | NULL | |
±-------±--------±-----±----±--------±------+
2 rows in set
//删除数据表
mysql> DROP TABLE ha6;
Query OK, 0 rows affected
//查数据表
mysql> SHOW TABLES;
±-----------------+
| Tables_in_itcast |
±-----------------+
| grade |
| h6 |
| ha |
| ha2 |
| ha3 |
| ha5 |
| student_id2 |
| sutdent_if |
±-----------------+
8 rows in set
//查看数据表是否删除的方法2
mysql> DESC ha6;
1146 - Table ‘itcast.ha6’ doesn’t exist;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您想要为生成的字段添加字段名和数据类型,您可以使用 `csv` 模块的 `DictWriter` 类来实现。以下是一个示例代码: ```python import csv from faker import Faker def generate_fake_data(num_fields, num_rows): fake = Faker() fieldnames = [f"Field {i}" for i in range(1, num_fields + 1)] datatypes = [fake.random_element(["string", "integer", "float"]) for _ in range(num_fields)] with open('fake_data.csv', 'w', newline='') as csvfile: writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() for _ in range(num_rows): row = {} for fieldname, datatype in zip(fieldnames, datatypes): if datatype == "string": value = fake.word() elif datatype == "integer": value = fake.random_int() else: value = fake.random_number(digits=5) / 100 row[fieldname] = value writer.writerow(row) generate_fake_data(100, 100) ``` 在这段代码中,我们定义了一个名为 `datatypes` 的列表,用于存储每个字段的数据类型。在这个示例中,我们随机选择了三种数据类型:字符串、整数和浮点数。 然后,在每次迭代中,我们根据字段的数据类型生成相应的随机数据,并将其添加到 `row` 字典中。 最后,我们使用 `writer.writerow()` 方法将每一行的数据写入到 CSV 文件中。 请注意,这只是一个示例代码,您可以根据需要修改字段名、数据类型和生成规则等。确保 `datatypes` 列表的长度与字段数相同,并且每个字段的数据类型与其在 `datatypes` 列表中的位置相对应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值