数据表的基本操作

2020-03-15  本文已影响0人  超音速6

创建数据库

CREATE DATABASE ningxing;

选择数据库

USE ningxing;

创建数据表

CREATE TABLE tb_grade
(
id INT(11),
name VARCHAR(20),
grade FLOAT
);

查看所有数据表

SHOW TABLES;

查看数据表

# 使用 SHOW CREATE TABLE 查看数据表
SHOW CREATE TABLE tb_grade;
SHOW CREATE TABLE tb_grade\G
# 使用 DESC 语句查看数据表
DESC tb_grade;

修改表名

ALTER TABLE tb_grade RENAME TO grade;

修改字段名

ALTER TABLE grade CHANGE name username VARCHAR(20);

修改字段的数据类型

ALTER TABLE grade MODIFY id INT(20);

添加字段

ALTER TABLE grade ADD age INT(10);

删除字段

ALTER TABLE grade DROP age;

修改字段的排列位置

# 将数据表grade的username字段修改为表的第一个字段
ALTER TABLE grade MODIFY username VARCHAR(20) FIRST;
# 将数据表grade的id字段插入到grade字段后面
ALTER TABLE grade MODIFY id INT(20) AFTER grade;

删除数据表

DROP TABLE grade;


主键约束

# 单字段约束
CREATE TABLE example01(
id INT PRIMARY KEY,
name VARCHAR(20),
grade FLOAT
);
# 多字段约束
CREATE TABLE example02(
stu_id INT,
course_id INT,
grade FLOAT,
PRIMARY KEY(stu_id,course_id)
);

非空约束

CREATE TABLE example04(
id INT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
grade FLOAT
);

唯一约束

CREATE TABLE example05(
id INT PRIMARY KEY,
stu_id INT UNIQUE,
name VARCHAR(20) NOT NULL
);

默认约束

CREATE TABLE example06(
id INT PRIMARY KEY AUTO_INCREMENT,
stu_id INT UNIQUE,
grade FLOAT DEFAULT 0
);

设置表的字段值自动增加

CREATE TABLE example07(
id INT PRIMARY KEY AUTO_INCREMENT,
stu_id INT UNIQUE,
grade FLOAT
);

创建表的时候创建索引

# 创建普通索引
CREATE TABLE t1(
id INT,
name VARCHAR(20),
score FLOAT,
INDEX(id)
);
# 创建唯一性索引
CREATE TABLE t2(
id INT NOT NULL,
name VARCHAR(20) NOT NULL, 
score FLOAT,
UNIQUE INDEX unique_id(id ASC)
);
# 创建全文索引
CREATE TABLE t3(
id INT NOT NULL,
name VARCHAR(20) NOT NULL,
score FLOAT,
FULLTEXT INDEX fulltext_name(name)
)ENGINE=MyISAM;
# 创建单列索引
CREATE TABLE t4(
id INT NOT NULL,
name VARCHAR(20) NOT NULL,
score FLOAT,
INDEX single_name(name(20))
);
# 创建多列索引
CREATE TABLE t5(
id INT NOT NULL,
name VARCHAR(20) NOT NULL,
score FLOAT,
INDEX multi(id,name(20))
);
# 创建空间索引
CREATE TABLE t6(
id INT,
space GEOMETRY NOT NULL,
SPATIAL INDEX sp(space)
)ENGINE=MyISAM;

使用 CREATE INDEX 语句在已经存在的表上创建索引

# 创建 book 表
CREATE TABLE book(
bookid INT NOT NULL,
bookname VARCHAR(255) NOT NULL,
authors VARCHAR(255) NOT NULL,
info VARCHAR(255) NULL,
comment VARCHAR(255) NULL,
publicyear YEAR not null
);
# 创建普通索引
CREATE INDEX index_id ON book(bookid);
# 创建唯一性索引
CREATE UNIQUE INDEX uniqueidx ON book(bookid);
# 创建单列索引
CREATE INDEX singleidx ON book(comment);
# 创建多列索引
CREATE INDEX mulitidx ON book(authors(20),info(20));
# 删除 book 表
DROP TABLE book;
# 重新创建 book 表
CREATE TABLE book(
bookid INT NOT NULL,
bookname VARCHAR(255) NOT NULL,
authors VARCHAR(255) NOT NULL,
info VARCHAR(255) NOT NULL,
comment VARCHAR(255) NULL,
publicyear YEAR NOT NULL
)ENGINE=MyISAM;
# 创建全文索引
CREATE FULLTEXT INDEX fulltextidx ON book(info);
# 创建表t7
CREATE TABLE t7(
g GEOMETRY NOT NULL
)ENGINE=MyISAM;
# 创建空间索引
CREATE SPATIAL INDEX spatidx ON t7(g);

使用 ALTER TABLE 语句在已经存在的表上创建索引

# 删除 book 表
DROP TABLE book;
# 重新创建 book 表
CREATE TABLE book(
bookid INT NOT NULL,
bookname VARCHAR(255) NOT NULL,
authors VARCHAR(255) NOT NULL,
info VARCHAR(255) NULL,
comment VARCHAR(255) NULL,
publicyear YEAR not null
);
# 创建普通索引
ALTER TABLE book ADD INDEX index_id(bookid);
# 创建唯一索引
ALTER TABLE book ADD UNIQUE uniqueidx(bookid);
# 创建单列索引
ALTER TABLE book ADD INDEX singleidx (comment(50));
# 创建多列索引
ALTER TABLE book ADD INDEX multidx(authors(20),info(50));
# 删除 book 表
DROP TABLE book;
# 重新创建 book 表
CREATE TABLE book(
bookid INT NOT NULL,
bookname VARCHAR(255) NOT NULL,
authors VARCHAR(255) NOT NULL,
info VARCHAR(255) NOT NULL,
comment VARCHAR(255) NULL,
publicyear YEAR NOT NULL
)ENGINE=MyISAM;
# 创建全文索引
ALTER TABLE book ADD FULLTEXT INDEX fulltextidx(info);
# 创建表t8
CREATE TABLE t8(
space GEOMETRY NOT NULL
)ENGINE=MyISAM;
# 创建空间索引
ALTER TABLE t8 ADD SPATIAL INDEX spatidex(space);

使用 ALTER TABLE 删除索引

ALTER TABLE book DROP INDEX fulltextidx;

使用 DROP INDEX 删除索引

DROP INDEX spatidex ON t8;

上一篇 下一篇

猜你喜欢

热点阅读