创建数据库
CREAT DATABASE TP;

DROP命令删除数据库
DROP DATABASE TP;

选择数据库
mysql -u root - p
mysql> use TP;

创建数据表
CREATE TABLE IF NOT EXISTS ‘tp_001’(
‘tp_id’ INT UNSIGNED AUTO_INCREMENT,
‘tp_name’ VARCHAR(200) NOT NULL,
‘tp_author’ VARCHAR(50) NOT NULL,
‘submission_date’ DATE,
PRIMARITY KEY(‘tp_id’)
)ENGING=InnoDB DEFAULT CHARSET=utf8;

删除数据表
DROP TABLE tp_001;

插入数据
INSERT INTO tp_001(tp_id,tp_name)
VALUES
(‘001’,‘kate’);

查询数据
SELECT * FROM tp_001 WHERE LIMIT 1,2;

where子句
SELECT * FROM tp_001 WHERE tp_id=1;

UPDATE更新
UPDATE tp_001 SET tp_name=‘手机’ WHERE tp_id=2;

DELETE语句
DELETE FROM tp_001 WHERE tp_id=3;

LIKE语句(模糊搜索)
SELECT * FROM tp_001 WHERE tp_name LIKE ‘*菲’;

UNION操作符
SELECT tp_name FROM tp_001 UNION SELECT tp_name FROM tp_002 ORDER BY tp_name;

排序(ORDER BY)
SELECT * FROM tp_001 ORDER BY submission_date des;

多表连接
内连接:SELECT s.tp_id,m.ap_num FROM tp_001 s INNER JOIN mp_001 m ON s.tp_id=m.ap_num;
左连接:SELECT s.tp_id,m.ap_num FROM tp_001 s LEFT JOIN mp_001 m ON s.tp_id=m.ap_num;
右连接:SELECT s.tp_id,m.ap_num FROM tp_001 s RIGHT JOIN mp_001 m ON s.tp_id=m.ap_nim;

NULL值处理
SELECT * FROM tp_001 WHERE tp_name=NULL;
SELECT * FROM tp_001 WHERE tp_id IS NOT NULL;

正则表达式
查找name字段中以’st’为开头的所有数据:
SELECT name FROM tp_001 WHERE name REGEXP ‘^st’;

查找name字段中以’ok’为结尾的所有数据:
SELECT name FROM tp_001 WHERE name REGEXP ‘$ok’;

查找name字段中包含’mar’字符串的所有数据:
SELECT name FROM tp_001 WHERE name REGEXP ‘mar’;

查找name字段中以元音字符开头或以’ok’字符串结尾的所有数据:
SELECT name FROM tp_001 WHERE name REGEXP ‘1|ok$’;

MYSQL事务
BEGIN 开始一个事务
ROLLBACK 事务回滚
COMMIT 事务确认

SET AUTOCOMMIT=0 禁止自动提交
SET AUTOCOMMIT=1开启自动提交

ALTER命令
删除字段 ALTER tp_001 DROP i;
添加字段 ALTER tp_001 ADD i INT FIRST;
修改字段名称 ALTER TABLE tp_001 MODIFY;
修改字段默认值 ALTER TABLE tp_001 ALTER i SET DEFAULT 1000;
修改表名 ALTER TABLE tp_001 RENAME TO tp_1;

普通索引
创建索引
CREATE INDEX indexName ON tp_001(name(100));

添加索引
ALTER table tp_001 ADD INDEX indexName(columName);

创建表的时候直接指定
CREAE TABEL tp_001(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
INDEX [indexName] (username(length))
);

删除索引
DROP INDEX [indexName] ON tp_001;

唯一索引
创建索引
CREATE UNIQUE INDEX indexName ON tp_001(username(length));

修改表结构
ALTER table tp_001 ADD UNIQUE [indexName] (username(length));

创建表的时候直接指定
CREATE TABLE tp_001(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
UNIQUE [indexName] (username(length))
);

ALTER 命令添加和删除索引
ALTER TABLE tp_001 ADD PRIMARY KEY(column_list)
ALTER TABLE tp_001 ADD UNIQUE index_name(column_list)
ALTER TABLE tp_001 ADD INDEX index_name(column_list)
ALTER TABLE tp_001 ADD FULLTEXT index_name(column_list)

ALTER TABLE tp_001 ADD INDEX ©;
ALTER TABLE tp_001 DROP INDEX ©;

ALTER 命令添加和删除主键
ALTER TABLE tp_001 MODIFY i INT NOT NULL;
ALTER TABLE tp_001 ADD PRIMARY KEY (i);
ALTER TABLE tp_001 DROP PRIMARY KEY;

显示索引
SHOW INDEX FROM tp_001;

临时表
CREATE TEMPORARY TABLE SaleSummary (
produce_name VARCHAR(50) NULL,
total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00,
avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00,
total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);
INSERT INTO SalesSummary
(product_name,totle_sales,avg_unit_price,total_units_sold)
VALUES
(‘cucumber’,100.25,90,2);
DROP TABLE SalesSummary;

复制表
CREATE TABLE ‘nowcoder_tbl’ (
‘nowcoder_id’ int(11) NOT NULL AUTO_INCREMENT,
‘nowcoder_title’ varchar(100) NOT NULL,
‘nowcoder_author’ varchar(40) NOT NULL,
‘submission_date’ date DEFAULT NULL,
PRIMARY KEY (‘nowcoder_id’)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

create table clone_tbl (
nowcoder_id int(11) not null auto_increment,
nowcoder_title varchar(100) not null default ‘’,
nowcoder_author varchar(40) not null defautl ‘’,
submission_date date default null,
primary key (nowcoder_id)
) engine=innodb;

insert into clone_tbl
(nowcoder_id,nowcoder_title,nowcoder_author,submission_date)
select
nowcoder_id,nowcoder_title,nowcoder_author,submission_date
from nowcoder_tbl;

序列使用

使用AUTO_INCREMENT
CREATE TABLE insect
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
name VARCHAR(30) NOT NULL,
date DATE NOT NULL,
origin VARCHAR(30) NOT NULL
);
INSERT INTO insect (id,name,date,origin) VALUES
(NULL,‘housefly’,‘2001-09-10’,‘kitchen’),
(NULL,‘millipede’,‘2001-09-10’,‘driveway’),
(NULL,‘grasshopper’,‘2001-09-10’,‘front yard’);

充值序列
ALTER TABLE insect DROP id;
ALTER TABLE insect
ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (id);

设置序列的开始值
CREATE TABLE insect
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
name VARCHAR(30) NOT NULL,
date DATE NOT NULL,
origin VARCHAR(30) NOT NULL
)engine=innobd auto_increment=100 charset=utf8;

创建表后设置序列的开始值
ALTER TABLE t AUTO_INCREMENT = 100;

处理重复数据
设置数据唯一性
(INSERT IGNORE INTO 与 INSERT INTO 的区别就是 INSERT IGNORE 会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。)
CREATE TABLE person_tbl
(
first_name CHAR(20) NOT NULL,
last_name CHAR(20) NOT NULL,
sex CHAR(10),
PRIMARY KEY (last_name,first_name)
)

INSERT IGNORE INTO person_tbl (last_name,first)
VALUES(‘Jay’,‘Thomas’);

添加UNIQUE索引设置唯一性
CREATE TABLE person_tbl
(
first_name CHAR(20) NOT NULL,
last_name CHAR(20) NOT NULL,
sex CHAR(10),
UNIQUE (last_name,first_name)
);

统计重复数据
SELECT COUNT(*) as repetitions,last_name,first_name
FROM person_tbl
GROUP BY last_name,first_name
HAVING repetitons > 1;

过滤重复数据
SELECT DISTINCT last_name,first_name
FROM person_tbl;

SELECT last_name,first_name
FROM person_tbl
GROUP BY (last_name,first_name);

删除重复数据
CREATE TABLE tmp SELECT last_time,first_name,sex FROM person_tbl GROUP BY (last_name,first_name,sex);
DROP TABLE person_tbl;
ALTER TABLE tmp RENAME TO person_tbl;
或在数据表中添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录
ALTER IGNORE TABLE person_tbl
ADD PRIMARY KEY (last_name,first_name);

导出数据
将数据表 nowcoder_tbl 数据导出到 /tmp/nowcoder.txt 文件中:
SELECT * FROM nowcoder_tbl
INTO OUTFILE ‘/tmp/nowcoder.txt’;

通过命令选项来设置数据输出的指定格式,以下实例为导出 CSV 格式:
SELECT * FROM passwd INTO OUTFILE ‘/tmp/nowcoder.txt’
FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘"’
LINES TERMINATED BY ‘\r\n’;

各值用逗号隔开
SELECT a,b,a+b INTO OUTFILE ‘/tmp/result.text’
FIELD TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘"’
LINES TERMINATED BY ‘\n’
FROM test_table;

导出表作为原始数据
mysqldump -u root -p

导出SQL格式的数据
mysqldump -u root -p NOWCODER nowcoder_tbl > dump.txt

CREATE TABLE nowcoder_tbl (
nowcoder_id int(11) NOT NULL auto_increment,
nowcoder_title varchar(100) NOT NULL DEFAULT ‘’,
nowcoder_author varchar(40) NOT NULL DEFAULT ‘’,
submission_date date default NULL,
PRIMART KEY (nowcoder_id)
);

INSERT INTO nowcoder_tbl
VALUES (1,‘Learn PHP’,‘John Poul’,‘2007-05-24’);
INSERT INTO nowcoder_tbl
VALUES (2,‘Learn MySQL’,‘Abdul S’,‘2007-05-24’);
INSERT INTO nowcoder_tbl
VALUES (3,‘JAVA Tutorial’,‘Sanjay’,‘2007-05-06’);

导出整个数据库的数据,可以使用以下命令:
mysqldump -u root -p NOWCODER > database_dump.txt

备份所有数据库,可以使用以下命令:
mysqldump -u root -p

将数据拷贝至其他的 MySQL 服务器上:
mysqldump -u root -p database_name table_name > dump.txt

将备份的数据库导入到MySQL服务器中:
mysql -u root -p database_name < dump.txt

将导出的数据直接导入到远程的服务器上:
mysqldump -u root -p database_name
|mysql -h other-host.com database_name

导入数据
mysql命令导入:mysql -uroot -p123456 < nowcoder.sql

source命令导入:
create database abc;
use abc;
set names utf8;
source /home/abc/abc.sql

LOAD DATA导入:
LOAD DATA LOCAL INFILE ‘dump.txt’ INTO TABLE mytbl;
FIELDS TERMINATED BY ‘:’
LINES TERMINATED BY ‘\r\n’;

在数据文件中的列顺序是 a,b,c,但在插入表的列顺序为b,c,a,则数据导入语法如下:
LOAD DATA LOCAL INFILE ‘dump.txt’
INTO TABLE mytbl (b,c,a);


  1. aeiou ↩︎

MySQL基础命令(自练)相关推荐

  1. linux mysql运维_Linux运维常用的 MySQL基础命令

    # MySQL基础命令 ------------- ### 创建MySQL库,授权. >create database mysqldb character set utf8; >grant ...

  2. Mysql 基础命令

    MySQL基础命令 创建用户 1 -- 查看系统用户2 select Host,User,Password from mysql.user;3 4 -- 创建一个远程用户 5 create user ...

  3. MySQL基础命令-学习的时候记录一下

    MySQL基础命令 DDL-操作数据库命令 R(Retrieve):查询功能 ① 查询所有数据库 SHOW DATEBASES; ② 查询数据库的创建语句 SHOW CREATE DATABASE d ...

  4. mysql 基础命令进阶

    文章目录 基础命令回顾 数据类型 常用SELECT命令 导入数据库 导出数据库 扩展知识 SQL查询语句进阶 连接查询: 破解mysql数据库密码 基础命令回顾 添加字段: alter table 表 ...

  5. mysql基础命令大全

    http://xy5300.blog.51cto.com/951650/672075 备份数据库: mysqldump  -uroot(用户) -pP2s3D7rVfeTS209sksp8(密码)  ...

  6. 04 : mysql 基础命令操作,字符集

     insert 插入讲解 : 1:创建一个表: create table test( id int(4) not null auto_increment, name char(20) not null ...

  7. Linux环境下MySQL基础命令(3)----增、删、改、查语句

    MySQL中的增.删.改.查命令是最基础的语句,通常应用在对表内数据的维护工作中.本文是对mysql数据库name库中的users表进行实例演示.name库以及users表均为本人建立,并非自带. 1 ...

  8. mysql基础命令学习笔记

    这里不会涉及一些mysql数据库安装之类的知识,但是会将自己学习以及使用mysql一些最常用的mysql语句总结到本篇文章,作为自己的学习记录和笔记.基本的环境为CentOS 6.5 数据库为mysq ...

  9. mysql基础命令学习(尚硅谷李玉婷老师教学)

    文章目录 一.基础查询方法 案例 二.条件查询 三.排序查询 四.常见函数 单行函数 练习题 五.分组函数 练习题 六.分组查询 练习解析: 七.连接查询 练习解析: 八.sql99语法 一.内连接 ...

最新文章

  1. 为 protocol 中属性添加默认值
  2. c语言中#39;xd#39;代表什么,关于C语言宏定义的技巧:#39;##39;和#39;###39;
  3. Oracle中case when用法
  4. c java c时间格式处理_c:foreach 对时间类型进行格式化
  5. 网络爬虫--11.XPath和lxml
  6. 2021 使用IDEA创建并编写你的第一个Maven项目【图文详解】
  7. 【日语笔记】日常日语
  8. java ftp遍历所有子文件_Java 遍历指定文件夹及子文件夹下的文件
  9. 数据结构---树,堆排序
  10. (转) Hibernate注解开发
  11. 你觉得iPhone吸引你的是什么?
  12. 基于Colaboratory平台使用VGGNet网络进行图片分类
  13. 拓端tecdat|R语言时间序列:ARIMA / GARCH模型的交易策略在外汇市场预测应用
  14. 迅雷7界面引擎XLUI_Bolt_SDK的调用例子
  15. Ubuntu无盘工作站安装详细步骤
  16. 3个酷到没同学的冷门专业,开始逆袭了?
  17. html点击鼠标页面出现爱心,js实现鼠标点击飘爱心效果
  18. 泊松分酒 泊松是法国数学家、物理学家和力学家。他一生致力科学事业,成果颇多。
  19. 桌面图标黑色解决方案
  20. 服务器错误信息泄露,Cisco WebEx Meeting Center冗长服务器错误响应远程信息泄露漏洞...

热门文章

  1. vuecli3中src的文件_解决vuecli3中img src 的引入问题
  2. Rsync 定时同步Windows上的数据
  3. 绝地求生-未来之役今日上线!附Android&iOS下载教程
  4. AMASLAB-EPIC-KBS工控机Ubuntu基础环境配置
  5. 实施(运维)工程师 笔试问答题
  6. Pytorch中Dataloader踩坑:RuntimeError: DataLoader worker (pid(s) 6700, 10620) exited unexpectedly
  7. 闲暇时间筛选一些网易云歌曲(Python)
  8. ICCV 2019 | 旷视研究院推出基于深度强化学习的绘画智能体
  9. 电子技术经典资料汇总:PCB设计篇
  10. 第五章 STM32+LD3320语音识别控制淘宝USB宿舍书桌灯