mysql基础概念
四种基本语言
- DQL(Data Query Language):数据查询语言
select - DML(Data Manipulate Language):数据操作语言
insert 、update、delete - DDL(Data Define Languge):数据定义语言
create、drop、alter - TCL(Transaction Control Language):事务控制语言
commit、rollback
MySQL的语法规范
1. 不区分大小写,但建议关键字大写,表名、列名小写
2. 每条命令最好用分号结尾
3. 每条命令根据需要,可以进行缩进 或换行
4. 注释
单行注释:#注释文字
单行注释:-- 注释文字
多行注释:/* 注释文字 */
mysql常用命令
#登录:
mysql 【-h主机名 -P端口号 】-u用户名 -p密码
#退出:
exit或ctrl+C
show databases;
use 库名
show tables;
show tables from 库名;
desc 表名;
#方式一:登录到mysql服务端
select version();
#方式二:没有登录到mysql服务端
mysql --version
#或
mysql --V
# 复制表结构
CREATE TABLE targetTable LIKE sourceTable;
# 复制数据(表结构需要和查询一致)
INSERT INTO targetTable SELECT * FROM sourceTable;
# 复制表结构➕数据(可以进行条件筛选)
CREATE TABLE newadmin AS SELECT * FROM sourceTable;
/**
* SELECT ... INTO OUTFILE 语句
* LOAD DATA INFILE是SELECT ... INTO OUTFILE的逆操作,SELECT句法。为了将一个数据库的数据写入一个文件,使用SELECT ... INTO OUTFILE,为了将文件读回数据库,使用LOAD DATA INFILE
* SELECT...INTO OUTFILE 'file_name'形式的SELECT可以把被选择的行写入一个文件中。该文件被创建到服务器主机上,因此您必须拥有FILE权限,才能使用此语法
* 输出不能是一个已存在的文件。防止文件数据被篡改
* 你需要有一个登陆服务器的账号来检索文件。否则 SELECT ... INTO OUTFILE 不会起任何作用
* 在UNIX中,该文件被创建后是可读的,权限由MySQL服务器所拥有。这意味着,虽然你就可以读取该文件,但可能无法将其删除
* 需要给数据库指定写出文件的路径或者写出的路径,show variables like '%secure%'; 查看数据库的存储路径
* 在下面的例子中,生成一个文件,各值用逗号隔开 换行 " 修饰值
*/
SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
# 在源主机上执行以下命令,将数据备份至 dump.txt 文件中
mysqldump -u root -p database_name table_name > dump.txt
# 如果完整备份数据库,则无需使用特定的表名称
mysql -u root -p database_name < dump.txt
# 以下命令将导出的数据直接导入到远程的服务器上,但请确保两台服务器是相通的,是可以相互访问的
mysqldump -u root -p database_name | mysql -h other-host.com database_name
# mysql 命令导入
mysql -u用户名 -p密码 < 要导入的数据库数据(runoob.sql)
# source 命令导入
source /home/abc/abc.sql
# 使用 LOAD DATA 导入数据
LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'
# 使用 mysqlimport 导入数据
mysqlimport -u root -p --local FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' mytbl dump.txt