1.创建一个数据库
CREATE DATABASE itcast;
2.查看数据库
SHOW DATABASES;
3.查看创建的数据库
SHOW CREATE DATABASE itcast;
4.将数据库的编码修改为gbk_bin
ALTER DATABASE itcast DEFAULT CHARACTER SET gbk COLLATE gbk_bin;
5.删除数据库
DROP DATABASE
6.创建一个存储学生成绩的表tb_grade
#首先建库:
CREATE DATABASE itcast;
#然后建表:
CREATE TABLE tb_grade
(
id INT(11),
name VARCHAR(20),
grade FLOAT
);
7.查看tb_grade表是否存在
SHOW CREATE TABLE tb_grade;
8.查看tb_grade表
DESCRIBE tb_grade;
9.改表名
ALTER TABLE tb_grade RENAME TO grade;
10.将表中的name字段改为username,数据类型保持不变
ALTER TABLE grade CHANGE name username VARCHAR(20);
11.将数据表中的id字段的数据类型int(11)改为int(20)
ALTER TABLE grade MODIFY id INT(20);
12.在数据表中添加一个没有约束条件的INT类型的字段age
ALTER TABLE grade ADD age INT(10);
13.删除表中的age字段
ALTER TABLE grade DROP age;
14.将数据表的username字段修改为表的第一个字段
ALTER TABLE grade MODIFY username VARCHAR(20) FIRST;
15.将数据表中的id字段插入到grade的后面
ALTER TABLE grade MODIFY id INT(20) AFTER grade;
16.删除数据表
DROP TABLE grade;
17.创建一个数据表,设置id作为主键
CREATE TABLE example01( id INT PRIMARY KEY,
name VARCHAR(20),
grade FLOAT);
18.创建一个数据表,将stu_id和course_id共同作为主键
CREATE TABLE example02( stu_id INT,
course_id INT,
grade FLOAT,
PRIMARY KEY(stu_id,course_id)
);
19.创建一个数据表,将表中name字段设置为非空约束
CREATE TABLE example04( id INT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
grade FLOAT);
20.创建一个数据表,将stu_id设置为唯一约束
CREATE TABLE example05( id INT PRIMARY KEY,
stu_id INT UNIQUE,
name VARCHAR(20) NOT NULL
);
21.创建一个数据表,将grade字段的默认值设置为0
CREATE TABLE example06( id INT PRIMARY KEY AUTO_INCREMENT,
stu_id INT UNIQUE,
grade FLOAT DEFAULT 0
);
22.创建一个数据表,将id字段设置为自动增加
CREATE TABLE example05( id INT PRIMARY KEY AUTO_INCREMENT,
stu_id INT UNIQUE,
grade FLOAT
);
23.在t1表中id字段上设置索引
CREATE TABLE t1(id INT,
name VARCHAR(20),
score FLOAT,
INDEX (id)
);
#查看表的结构:
SHOW CREATE TABLE t1\G
#使用EXPLAIN语句进行查看:
EXPLAIN SELECT * FROM t1 WHERE id=1 \G
24.创建一个表,在表中的id字段上建立索引名为unique_id的唯一性索引,并且按照升序排列
CREATE TABLE t2(id INT NOT NULL,
name VARCHAR(20) NOT NULL,
score FLOAT,
UNIQUE INDEX unique_id(id ASC)
);
#查看表的结构:
SHOW CREATE TABLE t2\G
25.创建一个表,在表中的name字段上建立索引名为fulltext_name的全文索引
CREATE TABLE t3(id INT NOT NULL,
name VARCHAR(20) NOT NULL,
score FLOAT,
FULLTEXT INDEX fulltext_name(name)
)ENGINE=MyISAM;
#查看表的结构:
SHOW CREATE TABLE t3\G
26.创建一个表,在表中的name字段上建立索引名为single_name的单列索引
CREATE TABLE t4(id INT NOT NULL,
name VARCHAR(20) NOT NULL,
score FLOAT,
INDEX single_name(name(20))
);
#查看表的结构:
SHOW CREATE TABLE t4\G
27.创建一个表,在表中的id和name字段上建立索引名为mulit的多列索引
CREATE TABLE t5(id INT NOT NULL,
name VARCHAR(20) NOT NULL,
score FLOAT,
INDEX multi(id,name(20))
);
#查看表的结构:
SHOW CREATE TABLE t5\G
28.创建一个表,在空间类型为GEOMETRY的字段上创建空间索引
CREATE TABLE t6(id INT,
space GEOMETRY NOT NULL,
SPATIAL INDEX sp(space)
)ENGINE=MyISAM;
#查看表的结构:
SHOW CREATE TABLE t6\G
29.在book表中的bookid字段上建立一个名称为index_id的普通索引
CREATE INDEX index_id ON book(bookid);
#查看表的结构:
SHOW CREATE TABLE book \G
30.在book表中的bookid字段上建立一个名称为uniqueidex的卫衣索引
CREATE UNIQUE INDEX uniqueidx ON book(bookid);
#查看表结构:
SHOW CREATE TABLE book \G
31.表中一个字段的单列索引
CREATE INDEX singleidx ON book(comment);
#查看表结构:
SHOW CREATE TABLE book \G
32.表中两个字段的多列索引
CREATE INDEX mulitidx ON book(authors(20),info(20));
查看表结构:
SHOW CREATE TABLE book \G
33.在表中的info字段上创建全文索引
#首先删除表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
)ENGINE=MyISAM;
#在book表的info字段上创建名称为fulltextidx的全文索引:
CREATE FULLTEXT INDEX fulltextidx ON book(info);
#查看表结构:
SHOW CREATE TABLE book \G
34.在表中的g字段创建空间索引
#首先创建数据表t7,SQL语句如下:
CREATE TABLE t7(
g GEOMETRY NOT NULL
)ENGINE=MyISAM;
#使用CREATE INDEX语句在t7表的g字段上创建名称为spatidx的空间索引:
CREATE SPATIAL INDEX spatidx ON t7(g);
#查看表结构:
SHOW CREATE TABLE t7 \G
35.创建普通索引
ALTER TABLE book ADD INDEX index_id(bookid);
#查看表的结构:
SHOW CREATE TABLE book \G
36.创建唯一性索引
ALTER TABLE book ADD UNIQUE uniqueidx(bookid);
#查看表的结构:
SHOW CREATE TABLE book \G
37.创建单列索引
ALTER TABLE book ADD INDEX singleidx (comment(50));
#查看表的结构:
SHOW CREATE TABLE book \G
38.创建多列索引
ALTER TABLE book ADD INDEX multidx(authors(20),info(50));
#查看表的结构:
SHOW CREATE TABLE book \G
39.创建全文索引
#首先删除表book,SQL语句如下:
DROP TABLE book;
#然后重新创建表book,SQL语句如下:
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
)ENGINE=MyISAM;
#使用ALTER TABLE语句在book表的info字段上创建名称为fulltextidx的全文索引:
ALTER TABLE book ADD FULLTEXT INDEX fulltextidx(info);
#查看表的结构:
SHOW CREATE TABLE book \G
40.创建空间索引
#首先得创建数据表t8:
CREATE TABLE t8(
space GEOMETRY NOT NULL
)ENGINE=MyISAM;
#使用ALTER TABLE语句在book表的space字段上创建名称为spatidx的空间索引:
ALTER TABLE t8 ADD SPATIAL INDEX spatidx(space);
#查看表的结构:
SHOW CREATE TABLE book \G
41.删除全文索引
ALTER TABLE book DROP INDEX fulltextidx;
#查看表的结构:
SHOW CREATE TABLE book \G
42.删除空间索引
DROP INDEX spatidx ON t8;
#查看表的结构:
SHOW CREATE TABLE t8 \G
CREATE DATABASE itcast;
2.查看数据库
SHOW DATABASES;
3.查看创建的数据库
SHOW CREATE DATABASE itcast;
4.将数据库的编码修改为gbk_bin
ALTER DATABASE itcast DEFAULT CHARACTER SET gbk COLLATE gbk_bin;
5.删除数据库
DROP DATABASE
6.创建一个存储学生成绩的表tb_grade
#首先建库:
CREATE DATABASE itcast;
#然后建表:
CREATE TABLE tb_grade
(
id INT(11),
name VARCHAR(20),
grade FLOAT
);
7.查看tb_grade表是否存在
SHOW CREATE TABLE tb_grade;
8.查看tb_grade表
DESCRIBE tb_grade;
9.改表名
ALTER TABLE tb_grade RENAME TO grade;
10.将表中的name字段改为username,数据类型保持不变
ALTER TABLE grade CHANGE name username VARCHAR(20);
11.将数据表中的id字段的数据类型int(11)改为int(20)
ALTER TABLE grade MODIFY id INT(20);
12.在数据表中添加一个没有约束条件的INT类型的字段age
ALTER TABLE grade ADD age INT(10);
13.删除表中的age字段
ALTER TABLE grade DROP age;
14.将数据表的username字段修改为表的第一个字段
ALTER TABLE grade MODIFY username VARCHAR(20) FIRST;
15.将数据表中的id字段插入到grade的后面
ALTER TABLE grade MODIFY id INT(20) AFTER grade;
16.删除数据表
DROP TABLE grade;
17.创建一个数据表,设置id作为主键
CREATE TABLE example01( id INT PRIMARY KEY,
name VARCHAR(20),
grade FLOAT);
18.创建一个数据表,将stu_id和course_id共同作为主键
CREATE TABLE example02( stu_id INT,
course_id INT,
grade FLOAT,
PRIMARY KEY(stu_id,course_id)
);
19.创建一个数据表,将表中name字段设置为非空约束
CREATE TABLE example04( id INT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
grade FLOAT);
20.创建一个数据表,将stu_id设置为唯一约束
CREATE TABLE example05( id INT PRIMARY KEY,
stu_id INT UNIQUE,
name VARCHAR(20) NOT NULL
);
21.创建一个数据表,将grade字段的默认值设置为0
CREATE TABLE example06( id INT PRIMARY KEY AUTO_INCREMENT,
stu_id INT UNIQUE,
grade FLOAT DEFAULT 0
);
22.创建一个数据表,将id字段设置为自动增加
CREATE TABLE example05( id INT PRIMARY KEY AUTO_INCREMENT,
stu_id INT UNIQUE,
grade FLOAT
);
23.在t1表中id字段上设置索引
CREATE TABLE t1(id INT,
name VARCHAR(20),
score FLOAT,
INDEX (id)
);
#查看表的结构:
SHOW CREATE TABLE t1\G
#使用EXPLAIN语句进行查看:
EXPLAIN SELECT * FROM t1 WHERE id=1 \G
24.创建一个表,在表中的id字段上建立索引名为unique_id的唯一性索引,并且按照升序排列
CREATE TABLE t2(id INT NOT NULL,
name VARCHAR(20) NOT NULL,
score FLOAT,
UNIQUE INDEX unique_id(id ASC)
);
#查看表的结构:
SHOW CREATE TABLE t2\G
25.创建一个表,在表中的name字段上建立索引名为fulltext_name的全文索引
CREATE TABLE t3(id INT NOT NULL,
name VARCHAR(20) NOT NULL,
score FLOAT,
FULLTEXT INDEX fulltext_name(name)
)ENGINE=MyISAM;
#查看表的结构:
SHOW CREATE TABLE t3\G
26.创建一个表,在表中的name字段上建立索引名为single_name的单列索引
CREATE TABLE t4(id INT NOT NULL,
name VARCHAR(20) NOT NULL,
score FLOAT,
INDEX single_name(name(20))
);
#查看表的结构:
SHOW CREATE TABLE t4\G
27.创建一个表,在表中的id和name字段上建立索引名为mulit的多列索引
CREATE TABLE t5(id INT NOT NULL,
name VARCHAR(20) NOT NULL,
score FLOAT,
INDEX multi(id,name(20))
);
#查看表的结构:
SHOW CREATE TABLE t5\G
28.创建一个表,在空间类型为GEOMETRY的字段上创建空间索引
CREATE TABLE t6(id INT,
space GEOMETRY NOT NULL,
SPATIAL INDEX sp(space)
)ENGINE=MyISAM;
#查看表的结构:
SHOW CREATE TABLE t6\G
29.在book表中的bookid字段上建立一个名称为index_id的普通索引
CREATE INDEX index_id ON book(bookid);
#查看表的结构:
SHOW CREATE TABLE book \G
30.在book表中的bookid字段上建立一个名称为uniqueidex的卫衣索引
CREATE UNIQUE INDEX uniqueidx ON book(bookid);
#查看表结构:
SHOW CREATE TABLE book \G
31.表中一个字段的单列索引
CREATE INDEX singleidx ON book(comment);
#查看表结构:
SHOW CREATE TABLE book \G
32.表中两个字段的多列索引
CREATE INDEX mulitidx ON book(authors(20),info(20));
查看表结构:
SHOW CREATE TABLE book \G
33.在表中的info字段上创建全文索引
#首先删除表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
)ENGINE=MyISAM;
#在book表的info字段上创建名称为fulltextidx的全文索引:
CREATE FULLTEXT INDEX fulltextidx ON book(info);
#查看表结构:
SHOW CREATE TABLE book \G
34.在表中的g字段创建空间索引
#首先创建数据表t7,SQL语句如下:
CREATE TABLE t7(
g GEOMETRY NOT NULL
)ENGINE=MyISAM;
#使用CREATE INDEX语句在t7表的g字段上创建名称为spatidx的空间索引:
CREATE SPATIAL INDEX spatidx ON t7(g);
#查看表结构:
SHOW CREATE TABLE t7 \G
35.创建普通索引
ALTER TABLE book ADD INDEX index_id(bookid);
#查看表的结构:
SHOW CREATE TABLE book \G
36.创建唯一性索引
ALTER TABLE book ADD UNIQUE uniqueidx(bookid);
#查看表的结构:
SHOW CREATE TABLE book \G
37.创建单列索引
ALTER TABLE book ADD INDEX singleidx (comment(50));
#查看表的结构:
SHOW CREATE TABLE book \G
38.创建多列索引
ALTER TABLE book ADD INDEX multidx(authors(20),info(50));
#查看表的结构:
SHOW CREATE TABLE book \G
39.创建全文索引
#首先删除表book,SQL语句如下:
DROP TABLE book;
#然后重新创建表book,SQL语句如下:
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
)ENGINE=MyISAM;
#使用ALTER TABLE语句在book表的info字段上创建名称为fulltextidx的全文索引:
ALTER TABLE book ADD FULLTEXT INDEX fulltextidx(info);
#查看表的结构:
SHOW CREATE TABLE book \G
40.创建空间索引
#首先得创建数据表t8:
CREATE TABLE t8(
space GEOMETRY NOT NULL
)ENGINE=MyISAM;
#使用ALTER TABLE语句在book表的space字段上创建名称为spatidx的空间索引:
ALTER TABLE t8 ADD SPATIAL INDEX spatidx(space);
#查看表的结构:
SHOW CREATE TABLE book \G
41.删除全文索引
ALTER TABLE book DROP INDEX fulltextidx;
#查看表的结构:
SHOW CREATE TABLE book \G
42.删除空间索引
DROP INDEX spatidx ON t8;
#查看表的结构:
SHOW CREATE TABLE t8 \G