$ sudo service mysql start
#安装mysql服务端,核心程序
$ sudo apt-get install mysql-server
# 安装mysql客户端
$ sudo apt-get install mysql-client
$ sudo netstat -tp | grep mysql
$ sudo vim /etc/mysql/my.cnf
# 启动mysql
$ sudo service mysql start
# 登录
$ mysql -uroot -pxxxx
> show databases;
> use 数据库名称;
> show tables;
> quit;
# 或者
> exit;
> CREATE DATABASE mysql_shiyan
CREATE TABLE 表的名字
(
列名a 数据类型(数据长度),
列名b 数据类型(数据长度),
列名c 数据类型(数据长度)
);
数据类型 | 大小(字节) | 用途 | 格式 |
---|---|---|---|
INT | 4 | 整数 | |
FLOAT | 4 | 单精度浮点数 | |
DOUBLE | 8 | 双精度浮点数 | |
ENUM | -- | 单选,比如性别 | ENUM('a','b','c') |
SET | -- | 多选 | SET('1','2','3') |
DATE | 3 | 日期 | YYYY-MM-DD |
TIME | 3 | 时间点或持续时间 | HH:MM:SS |
YEAR | 1 | 年份值 | YYYY |
CHAR | 0~255 | 定长字符串 | |
VARCHAR | 0~255 | 变长字符串 | |
TEXT | 0~65535 | 长文本数据 |
INSERT INTO 表的名字(列名a,列名b,列名c) VALUES(值1,值2,值3);
约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。
在MySQL中,通常有这几种约束:
约束类型: | 主键 | 默认值 | 唯一 | 外键 | 非空 |
---|---|---|---|---|---|
关键字: | PRIMARY KEY | DEFAULT | UNIQUE | FOREIGN KEY | NOT NULL |
PRIMARY KEY
)是用于约束表中的一行,作为这一行的唯一标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要,主键不能有重复记录且不能为空。还有一种特殊的主键——复合主键。主键不仅可以是表中的一列,也可以由表中的两列或多列来共同标识,比如:
DEFAULT
) 规定,当有 DEFAULT
约束的列,插入数据为空时,将使用默认值。UNIQUE
) 比较简单,它规定一张表中指定的一列的值必须不能有重复值,即这一列每个值都是唯一的。FOREIGN KEY
) 既能确保数据完整性,也能表现表之间的关系。
InserNOT NULL
),听名字就能理解,被非空约束的列,在插入值时必须非空。SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;
SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;
函数名: | COUNT | SUM | AVG | MAX | MIN |
---|---|---|---|---|---|
作用: | 计数 | 求和 | 求平均值 | 最大值 | 最小值 |
DROP DATABASE 数据库名称
重命名一张表的语句有多种形式,以下 3 种格式效果是一样的:
RENAME TABLE 原名 TO 新名字;
ALTER TABLE 原名 RENAME 新名;
ALTER TABLE 原名 RENAME TO 新名;
DROP TABLE 表名字
在表中增加一列的语句格式为:
ALTER TABLE 表名字 ADD COLUMN 列名字 数据类型 约束;
或:
ALTER TABLE 表名字 ADD 列名字 数据类型 约束;
ALTER TABLE 表名字 DROP COLUMN 列名字;
或:
ALTER TABLE 表名字 DROP 列名字;
这条语句其实不只可用于重命名一列,准确地说,它是对一个列做修改(CHANGE
) :
ALTER TABLE 表名字 CHANGE 原列名 新列名 数据类型 约束;
注意:这条重命名语句后面的 “数据类型” 不能省略,否则重命名失败。
当原列名和新列名相同的时候,指定新的数据类型或约束,就可以用于修改数据类型或约束。需要注意的是,修改数据类型可能会导致数据丢失,所以要慎重使用。
要修改一列的数据类型,除了使用刚才的 CHANGE
语句外,还可以用这样的 MODIFY
语句:
ALTER TABLE 表名字 MODIFY 列名字 新数据类型;
再次提醒,修改数据类型必须小心,因为这可能会导致数据丢失。在尝试修改数据类型之前,请慎重考虑。
大多数时候我们需要做修改的不会是整个数据库或整张表,而是表中的某一个或几个数据,这就需要我们用下面这条命令达到精确的修改:
UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 条件;
注意:一定要有 WHERE 条件,否则会出现你不想看到的后果
删除表中的一行数据,也必须加上 WHERE 条件,否则整列的数据都会被删除。删除语句:
DELETE FROM 表名字 WHERE 条件;
索引是一种与表有关的结构,它的作用相当于书的目录,可以根据目录中的页码快速找到所需的内容。
当表中有大量记录时,若要对表进行查询,没有索引的情况是全表搜索:将所有记录一一取出,和查询条件进行对比,然后返回满足条件的记录。这样做会执行大量磁盘 I/O 操作,并花费大量数据库系统时间。
而如果在表中已建立索引,在索引中找到符合查询条件的索引值,通过索引值就可以快速找到表中的数据,可以大大加快查询速度。
对一张表中的某个列建立索引,有以下两种语句格式:
ALTER TABLE 表名字 ADD INDEX 索引名 (列名);
CREATE INDEX 索引名 ON 表名字 (列名);
视图是从一个或多个表中导出来的表,是一种虚拟存在的表。它就像一个窗口,通过这个窗口可以看到系统专门提供的数据,这样,用户可以不用看到整个数据库中的数据,而只关心对自己有用的数据。
注意理解视图是虚拟的表:
创建视图的语句格式为:
CREATE VIEW 视图名(列a,列b,列c) AS SELECT 列1,列2,列3 FROM 表名字;
数据库中的数据十分重要,出于安全性考虑,在数据库的使用中,应该注意使用备份功能。
备份与导出的区别:导出的文件只是保存数据库中的数据;而备份,则是把数据库的结构,包括数据、约束、索引、视图等全部另存为一个文件。
mysqldump 是 MySQL 用于备份数据库的实用程序。它主要产生一个 SQL 脚本文件,其中包含从头重新创建数据库所必需的命令 CREATE TABLE INSERT 等。
使用 mysqldump 备份的语句:
mysqldump -u root 数据库名>备份文件名; #备份整个数据库
mysqldump -u root 数据库名 表名字>备份文件名; #备份整个表