//操作数据表之前,先使用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;