MySQL学习

612 查看

$PATH":/usr/local/mysql/bin

创建数据库:

CREATE DATABASE 数据库名称 

创建一个名称为itcast的数据库

mysql> CREATE DATABASE itcast;
Query OK, 1 row affected (0.00 sec)

查看数据库:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| itcast             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

查看已创建数据库:

mysql> SHOW CREATE DATABASE itcast;
+----------+-------------------------------------------------------------------+
| Database | Create Database                                                   |
+----------+-------------------------------------------------------------------+
| itcast   | CREATE DATABASE `itcast` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)

修改数据库

ALTER DATABASE itcast DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

删除数据库

DROP DATABASE 数据库名称;

如果删除的数据库不存在,则删除会失败。

2.2 数据类型

YEAR类型

2.3 数据表的基本操作

mysql> use itcast;
Database changed
mysql> CREATE TABLE tb_grade
    -> (
    -> id INT(11),
    -> name VARCHAR(20),
    -> grade FLOAT
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> SHOW TABLES;
+------------------+
| Tables_in_itcast |
+------------------+
| tb_grade         |
+------------------+
1 row in set (0.00 sec)

2.4.1 主键约束

在MySQL中,为了快速查找表中的某条信息,可以通过设置主键来实现。主键约束是通过PRIMARY KEY定义的,它可以唯一标识表中的记录,这就好比身份证可以用来标识人的身份一样。

在MySQL中,主键约束分为两种,具体如下:

1.单字段主键

单字段主键指的是由一个字段构成的主键,其基本的语法格式如下所示:

字段名 数据类型 PRIMARY KEY

2.多字段主键

多字段主键指的是多个字段组合而成的主键,其基本的语法格式如下所示:

PRIMARY KEY (字段名1,字段名2,…,字段名n)

在上述格式中,“字段名1,字段名2,…,字段名n”指的是构成主键的多个字段的名称。

创建一个数据表example02,在表中将stu_id和course_id两个字段共同作为主键,SQL语句如下:

CREATE TABLE exmaple02(stu_id INT,
                       course_id INT,
                       grade FLOAT,
                       PRIMARY
KEY(stu_id,course_id)
                      );

上述SQL语句执行后,example02表中包含stu_id、course_id和grade三个字段,其中,stu_id和course_id两个字段组合可以唯一确定一条记录。

注意:每个数据表中最多只能有一个主键约束,定义为PRIMARY KEY的字段不能有重复值且不能为NULL值。

2.4.2 非空约束

非空约束指的是字段的值不能为NULL,在MySQL中,非空约束是通过NOT NULL定义的,其基本的语法格式如下所示:

字段名 数据类型 NOT NULL;

需要注意的是,在同一个数据表中可以定义多个非空字段。

2.4.3 唯一约束

唯一约束用于保证数据表中字段的唯一性,即表中字段的值不能重复出现。唯一约束是通过UNIQUE定义的,其基本的语法格式如下所示:

字段名 数据类型 UNIQUE;

2.4.4 默认约束

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

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

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

在数据表中,若想为表中插入的新记录自动生成唯一的ID,可以使用AUTO_INCREMENT约束来实现。AUTO_INCREMENT约束的字段可以是任何整数类型。默认情况下,该字段的值是从1开始自增的。使用AUTO_INCREMENT设置表字段值自动增加的基本语法格式如下所示:

字段名 数据类型 AUTO_INCREMENT;

2.6 索引

MySQL允许建立索引来加快数据表的查询和排序。

2.6.1 索引的概念

索引是对数据库表中一列或多列的值进行排序后的一种结构,其作用就是提高表中数据的查询速度。MySQL中的索引分为很多种,具体如下。

普通索引

普通索引是由KEY或INDEX定义的索引,它是MySQL中的基本索引类型,可以创建在任何数据类型中,其值是否唯一和非空由字段本身的约束条件所决定。

唯一性索引

唯一性索引是由UNIQUE定义的索引,该索引所在字段的值必须是唯一的。例如,在grade表的id字段上建立唯一性索引,那么,id字段的值就必须是唯一的。

全文索引

全文索引是由FULLTEXT定义的索引,它只能创建在CHAR、VARCHAR或TEXT类型的字段上,而且,现在只有MyISAM存储引擎支持全文索引。

单列索引

单列索引指的是在表中单个字段上创建索引,它可以是普通索引、唯一索引或者全文索引,只要保证该索引只对应表中一个字段即可。

多列索引

空间索引

2.6.2 创建索引

创建表的时候创建索引

1.创建普通索引
2.创建唯一性索引
CREATE TABLE t2(id INT NOT NULL,
                name varchar(20) NOT NULL,
                score FLOAT,
                UNIQUE INDEX unque_id(id ASC)
);
3.创建全文索引
CREATE TABLE t3(id INT NOT NULL,                 
                name varchar(20) NOT NULL,                 
                score FLOAT,                 
                FULLTEXT INDEX fulltext_name(name))
                ENGINE=MyISAM;
4.创建单列索引
CREATE TABLE t4(id INT NOT NULL,
name VARCHAR(20) NOT NULL,
score FLOAT,
INDEX single_name(name(20))
);
5.创建多列索引
CREATE TABLE t5(id INT NOT NULL,
                name VARCHAR(20) NOT NULL,
                score FLOAT,
                INDEX multi(id,name(20))
);

需要注意的是,在多列索引中,只有查询条件中使用了这些字段中的第一个字段时,多列索引才会被使用。

6.创建空间索引