在同一个数据库中,不能有重名的表。(使用navicat,无需考虑区分大小写,)
创建数据表
创建数据表可使用 CREATE TABLE 命令。语法参考如下。
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name
[([column_definition],……| [index_definition])]
[table_option] [select_statement];
语法说明
"[ ]" 代表是可选的
TEMPORARY:使用该关键字表示创建临时表。
IF NOT EXISTS:如果数据库中已经存在某个表,再来创建一个同名的表,则会产生报错信息,未避免产生,则使用该判断。
table_name:要创建的表名。
column_definition:字段的定义。包括指定字段名、数据类型、是否为空值,指定默认值、主键约束、唯一性约束、注释字段名、是否为外键以及字段类型的属性等。
col_name type [NOT NULL | NULL] [DEFAULT defaule_value]
[AUTO_INCREMENT] [UNIQUE[KEY] | [PRIMARY] KEY]
[COMMENT 'String'] [reference_definition]
其中:
col_name: 字段名。
type:声明字段的数据类型。
NOT NULL 或者NULL:表示字段是否可以为空值。
DEFAULT:指定字段的默认值。
AUTO_INCREMENT:自增(整数类型)
PRIMARY KEY:主键约束
UNIQUE KEY:唯一性约束
COMMENT:为字段名加注释
reference_definition:外键约束
index_definition:为表的相关字段指定索引。
create table demo1.sc( //在stu库下创建sc表
sno varchar(12) not null, //sno字段名, varchar数据类型,12数据长度, not null 非空
cno varchar(8) not null,
grade FLOAT(8) not null,
PRIMARY key(sno,cno), //创建两个主键,sno以及cno
//FOREIGN key(sno) REFERENCES stu.student(sno), //创建sno的外键,并关联到stu.student表中的sno字段
//FOREIGN key(cno) REFERENCES stu.course(cno)
)ENGINE = INNODB DEFAULT CHARSET = utf8mb4; //数据库引擎为innodb,默认字符集为utf8mb4(此处可不指定)
查看数据表
查看数据表结构
1.使用数据库,并显示该库当中所有表的名称
use database_name;
show tables;
2.显示表的结构
desc table_name;
describe table_name;
mysql> desc stu.sc;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| sno | varchar(12) | NO | PRI | NULL | |
| cno | varchar(8) | NO | PRI | NULL | |
| grade | float | NO | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.05 sec)
3.查看建表的语句
show create table table_name;
mysql> show create table demo1.sc;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| sc | CREATE TABLE `sc` (
`sno` varchar(12) NOT NULL,
`cno` varchar(8) NOT NULL,
`grade` float NOT NULL,
PRIMARY KEY (`sno`,`cno`),
KEY `cno` (`cno`),
CONSTRAINT `sc_ibfk_1` FOREIGN KEY (`sno`) REFERENCES `student` (`sno`),
CONSTRAINT `sc_ibfk_2` FOREIGN KEY (`cno`) REFERENCES `course` (`cno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.05 sec)
修改数据表
修改数据表名