本文链接:

https://www.yuque.com/docs/share/9368acd4-df55-45aa-bfda-8aee584f76ee?# 《数据库命令》

目录

1.数据库的基本操作

1.1创建数据库

1.2查看数据库

1.2.1使用SHOW语句查看已经存在的数据库

1.2.2查看已经创建好的数据库的信息

1.3修改数据库编码

1.4删除数据库

2.数据表的基本操作

2.1创建数据表

2.2查看数据表

2.2.1查验数据表是否创建成功

2.2.2查看已经创建好的数据表的信息

2.3修改数据表

2.3.1修改表名

2.3.2修改字段名

2.3.3修改字段名的数据类型

2.4添加字段名

2.5删除字段名

2.6修改字段名的排列位置

2.7删除数据表

2.8表的约束

2.8.1主键约束

2.8.2非空约束

2.8.3唯一约束

2.8.4默认约束

2.8.5设置表的字段值自动增加

2.9索引

普通索引

唯一性索引

全文索引

单列索引

多列索引

空间索引

2.10创建索引

2.10.1创建表的时候创建索引

1.数据库的基本操作

1.1创建数据库

创建数据库就是在数据库系统中划分一块存蓄数据的空间。“数据库名称”是唯一的,不可重复出现。

CREATE DATABASE 数据库名称;

create database 数据库名称;

例:创建一个名为itcast的数据库 Create database itcast;

1.2查看数据库

1.2.1使用SHOW语句查看已经存在的数据库

SHOW DATABASES;

show databases;

1.2.2查看已经创建好的数据库的信息

SHOW CREATE DATABASE 数据库名称;

show create database 数据库名称;

例:查看创建好的数据库itcast Show create database itcast;

1.3修改数据库编码

ALTER DATABASE 数据库名称 DEFAULT CHARACTER SET 编码方式 COLLATE 编码方式_bin;

alter database 数据库名称

default character set 编码方式

collate 编码方式_bin;

编码方式是指修改后的数据库编码。

例:将数据库itcast的编码修改为gbk.

Alter database itcast default character set gbk collate gbk_bin;

1.4删除数据库

成功删除数据库后,数据库中的所有数据都将被清除,原来分配的空间也将被回收。

DROP DATABASE 数据库名称;

drop database 数据库名称;

例:删除数据库itcast Drop database itcast;

2.数据表的基本操作

2.1创建数据表

创建数据表指的是在已经存在的数据库中建立新表。

在操作数据表之前应该使用“USE 数据库名”指定在 哪个数据库中操作表,否则会抛出“No database selected”的错误。

USE 数据库名;

CREATE TABLE 表名

(

字段名1 数据类型 [完整性约束条件],

字段名2 数据类型 [完整性约束条件],

字段名n 数据类型 [完整性约束条件]

);

use 数据库名;

create table 表名

(

字段名1 数据类型[完整性约束条件],

字段名2 数据类型[完整性约束条件],

字段名n 数据类型[完整性约束条件]

);

例:创建学生表

Use itcast;

Create table student

(

Id int(10),

Name varchar(20),

Age int(3)

);

2.2查看数据表

2.2.1查验数据表是否创建成功

可以查看数据库中创建的数据表名称,在之前先输入use语句

SHOW TABLES

show tables;

2.2.2查看已经创建好的数据表的信息

SHOW CREATE TABLE 表名; /*句不仅可以查看 创建表时的定义语句,还可以查看表的字符编码*/同时表名之后加上参数\G使显示结果更加美观。

show create table 表名;

例:查看学生表信息

show create table student;

DESCRIBE 表名; /*可以查看表的字段信 息,其中包括字段名、字段类型等信息*/

describe 表名;

简写:DESC 表格;

desc 表名;

例:查看学生表信息

null:表示该列是否可以存储null值

key:表示该列是否已经编制索引

default:表示该列是否有默认值

extra:表示获取到的与给定列相关的附加信息。

2.3修改数据表

2.3.1修改表名

ALTER TABLE <旧表名> RENAME [TO] <新表名>; 关键字TO是可选的,是否出现不会影响语句执行

alter table 旧表名 rename t0 新表名;

例 将数据库itcast中的student表改为tb_stu表, SQL语句 如下:

Alter table student rename tb_stu;

2.3.2修改字段名

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;

如果不需要修改数据类型,可以将新数据类型设置成与原来一样。

alter table 表名 change 旧字段名 新字段名 新数据类型;

例 将数据表tb_stu中的name字段改为sname,数据类型保持 不变,SQL语句如下

Alter table tb_stu change name sname varchar(20);

2.3.3修改字段名的数据类型

ALTER TABLE <表名> MODIFY <字段名> <数据类型>;

alter table 表名 modify 字段名 数据类型;

例 将数据表tb_stu中的id字段的数据类型修改为INT(15), SQL语句如下:

Alter table tb_stu modify id int(15);

2.4添加字段名

ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST|AFTER 已存在的字段名];

FIRST 为可选参数,其作用 是将新添加的字段设置为表的第一个字段;AFTER 为可选参数,其作 用是将新添加的字段添加到指定的已存在的字段名的后面。

alter table 表名 add 新字段名 数据类型 约束条件 first/after 已存在的字段名;

first为可选,用于将新添加的字段设置为表第一个字段

after为可选,用于将新添加的字段放在已存在的字段名后

例 在数据表tb_stu中添加一个没有约束条件的grade字段 ,数据类型为FLOAT, 放在sname后面。

Alter table tb_stu add grade float after sname;

2.5删除字段名

ALTER TABLE <表名> DROP <字段名>;

Alter table 表名 drop 字段名;

例 删除tb_stu表中的grade字段, SQL语句如下:

Alter table tb_stu drop grade;

2.6修改字段名的排列位置

ALTER TABLE 表名 MODIFY 字段名1 数据类型 FIRST/AFTER 字段名2;

“FIRST”为可选参数,指的是将字段1修改为表的第一个字 段,“AFTER 字段名2”是将字段1插入到字段2的后面。

alter table 表名 modify 字段名1 数据类型 first/after 字段名2;

例 将数据表tb_stu的sname字段修改为表的第一个字段, SQL语句如下:

Alter table tb_stu modify sname varchar(20) first;

2.7删除数据表

DROP TABLE 表明;

drop table 表明;

例:删除tb_stu表

2.8表的约束

2.8.1主键约束

可以唯一标识表中的记录,每个数据表最多只能有一个主键约束,定义为主键的字段不能有重复值且不能为null值

2.8.1.1单字段主键

在定义列的同时指定主键,语法规则如下:

字段名 数据类型 PRIMARY KEY

字段名 数据类型 primary key

例:创建一个数据表example01,并设置id为主键

Create table example01

(

Id int(10) primary key,

Name varchar(20),

Age int(3)

);

2.8.1.2多字段主键

主键由多个字段联合组成,语法规则如下:

PRIMARY KEY [字段1,字段2,…,字段n]

例:创建一个数据表example02,并设置id和name共同作为主键

Create table example02

(

Id int(10) ,

Name varchar(20),

Age int(3),

primary key (id,Name)

);

2.8.2非空约束

非空约束(NOT NULL)在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空。

具体的语法规则如下:

字段名 数据类型 NOT NULL;

字段名 数据类型 not null;

例:创建一个数据表example03,并设置name为非空约束

Create table example03

(

Id int(10),

Name varchar(20) not null,

Age int(3),

);

2.8.3唯一约束

唯一约束(Unique Key)要求该列唯一,允许为空,但只能出现一个空值。

语法规则如下:

字段名 数据类型 UNIQUE;

字段名 数据类型 unique;

例:创建一个数据表example04,并设置id为唯一约束

Create table example04

(

Id int(10) unique,

Name varchar(20) not null,

Age int(3),

);

2.8.4默认约束

默认约束用于给数据表的字段指定默认值,即当在表中插入一条记录时,如果没有给这个字段赋值,那么数据库系统会自动为这个字段插入默认值。默认值是通过DEFAULT关键字定义的。

语法规则如下:

字段名 数据类型 DEFAULT 默认值;

字段名 数据类型 default 默认值;

例:创建一个数据表example05,并设置name字段的默认值为0

Create table example05

(

Id int(10),

Name varchar(20) default 0,

Age int(3),

);

2.8.5设置表的字段值自动增加

在数据表中,若想为表中插入的新记录自动生成唯一的身份证,可以使用自动增量约束来实现。自动增量约束的字段可以是任何整数类型,默认情况下,该字段的值是从1开始自增的.

-语法格式如下所示:

字段名 数据类型 AUTO_INCREMENT;

字段名 数据类型 auto_increment;

例:创建一个数据表example06,并设置id字段为自动增加且唯一

Create table example06

(

Id int(10) primary auto_increment,

Name varchar(20),

Age int(3),

);

2.9索引

索引是对数据库中一列或多列的值进行排序后的一种结构,其作用就是提高表中的查询数据

普通索引

由KEY或INDEX定义的索引

唯一性索引

由UNIQUE定义的索引,该索引所在的字段的值必须唯一的

全文索引

由FULLTEXT定义的索引,只能创建再CHAR,VARCHAR,TEXT类型的字段上。只有MyISAM存储引擎支持全文索引。

单列索引

在单个字段上创建索引

多列索引

在表中多个字段创建多个索引,只有在查询条件中使用了这些字段中的第一个字段时,该索引才会被使用。

空间索引

由SPATIAL定义的索引,只能创建在空间数据类型的字段上。空间类型的字段有四种,分别是GEOMETRY,POINT,LINESTEING,POLYGON。创建空间索引的字段,必须将其声明为NOT NULL,只有MyISAM存储引擎支持空间索引。

2.10创建索引

2.10.1创建表的时候创建索引

create table 表名(字段名 数据类型[完整性约束条件],

字段名 数据类型[完整性约束条件],

……

字段名 数据类型

[unique | fulltext | spatial] index | key

[别名] (字段名1 [(长度)] [asc | desc])

);

index | key:用来表示字段的索引,二者选一即可。

别名:可选参数,表示创建的索引的名称。

字段名1:指定索引对应字段的名称。

长度:可选参数,用于表示索引的长度

asc | desc:可选参数,asc表示升序排列,desc表示降序排列

1.创建普通索引

例:在t1表中id字段上建立索引

create table t1 (id int,

name varchar(20),

sore float,

index (id)

);

查看表结构,在id字段上已经创建了一个名称为id的索引

查看索引是否被使用

explain select from 表名 where (条件表达式;

2.创建唯一性索引

例:创建一个表名为t2的表,在表中的id字段上建立索引为unique_id的唯一性索引,并且按照升序排列。

create table t2

(id int not null,

name varchar(20) not null,

sore float,

unique index unique_id(id asc)

);

查看表结构已显示创建成功

3.创建全文索引

例:创建一个表名为t3的表,在表中的name字段上建立索引名为fulltext_name的全文索引

create table t3

(id int not null,

name varchar(20) not null,

sore float,

fulltext index fulltext_name(name)

)engine=myusam;

4.创建单列索引

例:创建一个表名为t4的表,在表中的name字段上建立索引名为single_name的单列索引,索引长度为20.

create table t4

(id int not null,

name varchar(20) not null,

sore float,

index single_name(name(20))

);

5.创建多列索引

例:创建一个表名为t5的表,在表中的id和name字段上建立索引名为multi的多列索引,name字段索引长度为20.

create table t5

(id int not null,

name varchar(20) not null,

sore float,

index multi(id,name(20))

);

6.创建空间索引

例:创建一个表名为t6的表,在空间类型为GEOMETRY的字段上创建空间索引

create table t6

(id int,

space geometry sp

) engine=yisam;

查看原文