SQL句子中语法格式提示:
1.中括号([])中的内容为可选项;
2.[,...]表示,前面的内容可重复;
3.大括号({})和竖线(|)表示选择项,在选择项中仅需选择其中一项;
(1)创建数据表:
在MySQL中创建数据表的基本语法格式如下:
CREATE TABLE table_name ( column1 datatype constraints, column2 datatype constraints, ... PRIMARY KEY (one_or_more_columns) ) ENGINE = engine_type;
其中,
CREATE TABLE
是用于创建数据表的关键字。table_name
是您要创建的数据表的名称。column1
、column2
等是表中的列名,datatype
是要存储在列中的数据类型,constraints
是用于设置列级别约束条件的子句。在这个语法中,
PRIMARY KEY
用于定义主键。在SQL中,主键是唯一标识表的每一行的一列或多列的组合。这些列中的值必须是唯一的且不能为空,以便正确地区分表中的每一行。最后,
ENGINE = engine_type
指定MySQL使用的存储引擎类型,例如InnoDB或MyISAM等。存储引擎是数据库用于存储和管理数据的核心组件,不同的引擎提供了不同的特性和性能优势。注意:如果使用非图形化工具操作数据表,操作之前应该先使用“USE数据库名”命令指定操作是在哪个数据库中进行,否则会抛出“No database selected”错误。
eg: 在数据库ems中创建一个部门数据表tb_dept,部门数据表中包含部门编号deptno,部门名称dname,位置loc
(2) 查看数据表:
数据表创建成功后,可以通过SQL语句查看数据表,以确保数据表是否创建成功和数据表的定义是否正确,以下三种SQL语句可以查看数据表:
2.1:使用SHOW TABLES语句查看数据表:
SHOW TABLES [LIKE 'pattern' | WHERE expr];
2.2:使用SHOW CREATE TABLE查看数据表创建语句:
SHOW CREATE TABLE tbl_name;
2.3:使用DESCRIBE语句查看数据表结构信息:
DESCRIBE 数据表名;
(3)修改数据表:
如果想对已经创建好的数据表做一些结构上的修改,比如:数据表名,字段类型,字段名,字段的排列位置,增加或删除字段,修改或删除表的约束等,可以选择删除原有的数据表,创建新的数据表,但如果原有的数据表已经存在大量的数据,此时选择删除重创会造成巨大影响。在MySQL中,可以通过以下SQL语法进行修改:
ALTER TABLE tbl_name [alter_option [, alter_option] ...] [partition_options];
eg01:将数据库ems中的数据表tb_dept的名称改为dept
eg02:修改数据表dept的字符集为gbk
修改字段名:ALTER TABLE语句对修改字段名提供了两种方式,分别是RENAME COLUMN和CHANGE。这两种方式主要区别于:RENAME COLUMN仅可以修改字段名,CHANGE子句不仅可以修改字段名称,还可以重新定义字段的数据类型,约束,排序位置。
eg:将部门表dept中的字段名loc改为local_name(使用RENAME COLUMN修改)
修改字段的数据类型:可通过ALTER TABLE语句中的MODIFY和CHANGE完成,其中MODIFY仅可以对字段的数据类型和排列位置重新定义,而CHANGE不仅可以对字段的数据类型和排列位置重新定义,还可以修改字段名称。两种修改效果一样,但是MODIFY的语法相对简洁。
eg:将部门表dept中字段dname的数据类型由VARCHAR(14)修改为CHAR(16)(使用MODIFY语法)
修改字段的排列位置:字段在数据表中的排列位置可以在创建数据表时进行指定,数据表创建之后如果想修改字段排列位置,ALTER TABLE语句也提供了MODIFY和CHANGE两种方式。
eg01:将部门表dept中字段local_name的位置修改为数据表的第一个字段,数据类型改为CHAR(20)(使用CHANGE修改字段的排列位置)
eg02:将部门表dept中字段deptno修改到字段dname后面(使用MODIFY方式修改字段的排列位置)
添加字段:
eg:在数据表dept的第一列添加一个INT类型的字段id
删除字段:
eg:删除部门表dept的id字段
(4)删除数据表:
删除数据表是指删除数据库中已存在的表。在删除数据表的同时,数据表中存储的数据也将被删除,以下是删除数据表的SQL语句:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE];
eg:删除部门表dept