02.数据库和表的基本操作

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

猜你喜欢

转载自blog.csdn.net/weixin_42217819/article/details/80498902