mysql基本命令总结
1.在Ubuntu上安装MYSQL
sudo apt-get install mysql-server
sudo apt-get install mysql-client
2.安装结束后,用命令验证是否安装并启动成功
sudo netstat -tap | grep mysql
通过上述命令检查之后,如果看到有mysql 的socket处于 listen 状态则表示安装成功。
3.安装完成后,在/etc/mysql/debian.cnf目录下可以查看里面的用户名和密码
4.打开MYSQL服务
sudo service mysql start
5.使用某个用户登录数据库
mysql -u 用户名 -p 密码
6.新建数据库
CREATE DATABASE 数据库名;
7.查看当前的数据库
SHOW DATABASES;
8.选择连接其中一个数据库
USE 数据库名;
9.查看表
SHOW TABLES;
10.新建数据表
CREATE TABLE 表的名字
(
列名a 数据类型(数据长度),
列名b 数据类型(数据长度),
列名c 数据类型(数据长度)
);
11.查看当前的数据表
show tables;
12.查看表中的内容
SELECT * FROM 表名;
13.向表中插入数据
INSERT INTO 表的名字(列名a,列名b,列名c) VALUES(值1,值2,值3);
注意:数据类型为CHAR,VARCHAR,TEXT,DATE,TIME,ENUM等类型的数据需要单引号修饰,而INT,FLOAT,DOUBLE等则不需要。
14.删除数据库
DROP DATABASE 数据库名
15.若存储学生信息,有两人姓名,身高,年龄都相同,无法区分,则需用到主键作为唯一的标识符,准确定位到一行,因此主键不能有重复记录且不能为空。
定义主键的方法如下
CREATE TABLE employee
(
id INT(10) PRIMARY KEY,
name CHAR(20)
)
16.默认值约束,当DEFAULT 约束的列,插入数据为空时,将使用默认值。
people_num INT(10) DEFAULT'10'
17.唯一约束,规定一张表中指定的一列的值必须不能有重复值。
UNIQUE(列名)
18.非空约束
列名 数据类型(数据长度)NOT NULL
19.外键约束
一个表可以有多个外键,每个外键必须 REFERENCES (参考) 另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。
FOREIGN KEY (外键列名)REFERENCES 表名(列名)
20.SELECT 语句格式:
SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;
WHERE限制条件可以有数学符号(=,<,>,<=,>=),也可以有逻辑关系(OR,AND),关键字IN,NOT IN.
关键字 LIKE 可用于实现模糊查询,常见于搜索功能中。和 LIKE 联用的通常还有通配符,SQL中的通配符是 _ 和 % 。其中 _ 代表一个未指定字符,% 代表不定个未指定字符
21.对结果排序
ORDER BY 排序的关键字 ASC(生序)或者DESC(降序)
13.重命名一张表
RENAME TABLE 原名 TO 新名字;
ALTER TABLE 原名 RENAME 新名;
ALTER TABLE 原名 RENAME TO 新名字;
14.删除一张表
DROP TABLE 表的名字;
15.增加一列(默认增加到最后面)
ALTER TABLE 表名字 ADD COLUMN 列名字 数据类型 约束;
ALTER TABLE 表名字 ADD 列名字 数据类型 约束;
把新增加的列插入在指定表名后面的位置
ALTER TABLE 表名字 ADD 列名字 数据类型 约束 AFTER 指定表名;
把新增加的列放在第一列的位置
ALTER TABLE 表名字 ADD 列名字 数据类型 约束 FIRST;
16.删除一列
ALTER TABLE 表名 DROP COLUMN 列名字;
ALTER TABLE 表名 DROP 列名字;
17.重命名一列
ALTER TABLE 表名 CHANGE 原列名 新列名 数据类型 约束;
该指令也可用来修改数据类型
18.改变数据类型
ALTER TABLE 表名 MODIFY 列名字 新数据类型;
19.修改表中某个值
UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 条件;
20.删除一行记录
DELETE FROM 表名字 WHERE 条件;
21.索引
当表中有大量记录时,若要对表进行查询,没有索引的情况是全表搜索:将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录。这样做会消耗大量数据库系统时间,并造成大量磁盘 I/O 操作。
而如果在表中已建立索引,在索引中找到符合查询条件的索引值,通过索引值就可以快速找到表中的数据,可以大大加快查询速度。
一些字段不适合创建索引,比如性别,这个字段存在大量的重复记录无法享受索引带来的速度加成,甚至会拖累数据库,导致数据冗余和额外的 CPU 开销。
建立索引:
ALTER TABLE 表名字 ADD INDEX 索引名(列名);
CREATE INDEX 索引名 ON 表名字(列名);
22.视图
视图是一个虚拟的表,依赖于原来表中的数据,一旦原来表中的数据发生改变,显示在视图中的数据也会改变,使用时可以把它当做一张表。
创建视图的语句:
CREATE VIEW 视图名(列a,列b,列c) AS SELECT 列1,列2,列3 FROM 表名字;
23.导入纯数据文件
LOAD DATA INFILE ’文件路径和文件名‘ INTO TABLE 表名字;
【注意】若出现ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement。可以在infile 前面加上 Local 即可解决。
SQL语句的导入方式
source *.sql
24.导出
SELECT 列1,列2 INTO OUTFILE '文件路径和文件名' FROM 表名字;
25.备份
备份与导出的区别:导出的文件只是保存数据库中的数据;而备份,则是把数据库的结构,包括数据、约束、索引、视图等全部另存为一个文件。
使用mysqldump 备份的语句(在终端中执行)
mysqldump -u root 数据库名>备份文件名;
mysqldump -u root 数据库名 表名字> 备份文件名;
26.恢复
首先先建数据库
CREATE DATABASE 数据库名;
然后在终端输入 mysql -u root 数据库名<备份文件名