$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))
);
需要注意的是,在多列索引中,只有查询条件中使用了这些字段中的第一个字段时,多列索引才会被使用。