数据库和表的基本操作

数据库的基本操作

MySQL安装后,系统会自动创建几个必须的数据库,MySQL数据库的系统信息都存在数据库中。若删除这些系统数据库,MySQL就不能正常工作。

1、创建数据库

基本SQL语法格式为:

CREATE DATABASE 数据库名;

数据库命名注意:MySQL命令解释器对大小写不敏感,数据库名无论用户输入的是大写还是小写,MySQL命令解释器都是为小写,但是必须符合操作系统文件夹命名规则。

例如,创建一个名为Bookstore的数据库命令:

CREATE DATABASE Bookstore;

需要查看新建的数据库以及已经存在的数据库使用命令:

SHOW DATABASES;

2、打开数据库

命令:

USE 数据库名;

例如,若要对Bookstore数据库进行操作,可以执行命令:

USE Bookstore;

3、删除数据库

命令:

DROP DATABASE 数据库名;

注意:DROP DATABASE命令必须小心使用,因为它将永久删除指定的整个数据库信息,包括数据库中的所有表和表中的所有数据。

数据表的基本操作

数据表是由多列、多行组成的表格,数据表包括表结构部分和记录部分,是相关数据的集合。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性等)约束的过程。

1、创建数据库表

数据表属于数据库,在创建数据表之前,应该使用语句“USE 数据库名;”指定操作是在哪个数据库中进行,如果没有选择数据库,就会抛出“No database selected”的错误。

创建表使用CREATE TABLE命令。

语法格式:

CREATE TABLE 表名
(
列名 数据类型 [列级别约束条件] [默认值],
列名 数据类型 [列级别约束条件] [默认值],
......
)ENGINE = 存储引擎;

表名,要创建的表的表名。该表名必须符合标志符规则,如果有MySQL保留字则必须用单引号括起来。
列名,表中列的名宇。列名必须符合标志符规则,长度不能超过 64个字符,而且在表中要唯一。如果有MySQL 保留字则必须用单引号括起来。
数据类型,列的数据类型,有的数据类型需要指明长度n,并用括号括起。
ENGINE= 存储引擎,MySQL 支持数个存储引擎作为对不同表的类型的处理器,使用时要用具体的存储引擎代替存储引擎,如ENGINE=InnoDB。
MySQL 支持的存储引擎有 MyISAM,用来管理非事务表。它提供高速存储和检索以全文搜索能力。

例如,设已经创建了数据库 Bookstore,在该数据库中创建图书目录表 Book。

 USE Bookstore;
 CREATE TABLE Book
(
	ID 		char(20) 		NOT NULL PRIMARY KEY,
	type 	varchar(20) 	NOT NULL DEFAULT 'computer',
    name 	varchar(40) 	NOT NULL,
    author 	char(10) 		NOT NULL,
    price 	float(5)		NOT NULL,
    num		int(5)
)ENGINE = InnoDB;

PRIMARY KEY表示将“ID”字段定义为主键。“DEFAULT ‘computer’”表示“type”的默认值为’computer’。 ENGINE=InnoDB 表示采用的存储引擎是 InnoDB, InnoDB是MySQL 在Windows 平合默认的存储引擎,因此 ENGINE=InnoDB 可以省略。

2、修改表

ALTER TABLE用于更改原有表的结构。

向表中增加新列使用ADD[COLUMN]子句。例如,在表t1中增加新的一列a:

ALTER TABLE t1 ADD COLUMN a TINYINT NULL;
ALTER TABLE t1 ADD COLUMN a TINYINT FIRST;/*在表的第一列添加新列*/
ALTER TABLE t1 ADD COLUMN a TINYINT AFTER c;/*在表的指定列c之后添加新列*/

修改列的名称使用CHANGE[COLUMN]子句。重命名时,需给定旧的列名称和新的列名称及数据类型。例如,要把一个INTEGER列的名称从a变更到b:

ALTER TABLE t1 CHANGE a b INTEGER;

修改指定列的类型使用MODIFY[COLUMN]子句。例如,把一个列的数据类型改为bigint:

ALTER TABLE t1 MODIFY b bigint NOT NULL;

删除表中列或约束使用DROP子句。

ALTER TABLE t1 DROP COLUMN a;

修改该表名使用RENAME子句。例如,将表t1改名为t2:

ALTER TABLE t1 RENAME TO t2;

3、复制表

当需要建立的数据库表与已有的数据库表的结构相同时,可以采用复制表的方法复制现有数据库表的结构,也可以复制表的结构和数据。
语法格式:

CREATE TABLE 新表名
	[LIKE 参照表名]
	|[AS(SELECT语句)]

LIKE, 使用 LIKE 关键宇创建一个与参照表名相同结构的新表,列名、数据类型、空指定和索引也将复制,但是表的内容不会复制,因此创建的新表是一个空表。
AS,使用 AS 关键字可以复制表的内容,但索引和完整性约束是不会复制的。SELECT 语句表示一个表达式,例如,可以是一条 SELECT 语句
假设数据库 Bookstore 中有一个表 Book,创建与 Book 表结构相同的名为book_copy1的拷贝。

CREATE TABLE book _copy1 LIKE Book;

若在复制结构的同时还要复制其数据,需要使用 AS 关键字,使用 SELECT 语句对需要复制的数据进行选择。
创建表 Book 的一个名为book copy2 的副本,并且复制其内容。

CREATE TABLE book_copy2
AS
(SELECT * FROM Book);

4、删除表

需要删除一个表时可以使用 DROP TABLE 语句。
语法格式:

DROP TABLE 表名1[,表名2]

5、显示数据表信息

显示数据表文件名

SHOW TABLES 命令用于显示已经建立的数据表文件。
语法格式:

SHOW TABLE

例如,显示Bookstore 数据库建立的数据表文件。

USE Bookstore;
SHOW TABLES;

显示数据表结构
DESCRIBE 语句用于显示表中各列的信息,其运行结果等同于 SHOW COLUMNS FROM 语句。
语法格式:

{DESCRIBE | DESC} 表名[列名|通配符]

DESCRIBE | DESC, DESC 是DESCRIBE 的简写,二者用法相同。
列名|通配符,可以是一个列名称,或一个包含%和_的通配符的字符串,用于获得对于带有与字符串相匹配的名称的各列的输出。没有必要在引号中包含字符串,除非其中包含空格或其他特殊字符。
例如,用DESCRIBE 语句查看 Book 表的列的信息。

DESCRIBE Book;

查看 Book 表的ID列的信息。

DESCRIBE Book ID;
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐