MYSQL常用语句

x33g5p2x  于2021-11-13 转载在 Mysql  
字(4.8k)|赞(0)|评价(0)|浏览(455)

1、mysql服务的启动和停止

  1. net stop mysql    --启动
  2. net start mysql --停止

2、登录mysql

  1. mysql -h localhost -u root -P 3306 -p

password: *******

-h mysql连接地址

-u mysql登录用户名

-P mysql连接端口(默认为 3306)

-p mysql登录密码(不建议直接在后面写密码[明文])

3、密码直接登录mysql

  1. mysql -h localhost -u root -p 123456

4、查看数据库

  1. SHOW DATABASES;

5、创建和删除数据库

  1. CREATE { DATABASE | SCHEMA } [ IF NOT EXISTS ] db_name [DEFAULT] CHARACTER SET [ = ] charset_name; #--创建
  2. DROP DATABASE db_name;  #--删除

6、查看数据库存储引擎、使用数据库、查看当前使用的数据库

  1. SHOW ENGINES; #--查看存储引擎
  2. USE db_name; # --使用数据库
  3. SELECT DATABASE(); #--查看当前使用的数据库

7、使用SHOW 语句查询mysql支持的存储引擎

  1. SHOW VARIABLES LIKE 'have%'; # --查询支持have开头的存储引擎

8、显示库中的数据表

  1. USE db_name;   #--使用数据库
  2. SHOW TABLES;  # --显示数据表

9、创建和删除数据表

  1. CREATE TABLE [IF NOT EXISTS] table_name(column_name column_type...)#创建
  2. DROP TABLE table_name; #删除

实例:

  1. CREATE TABLE `fa_card_bill` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `card_list_id` int(11) NOT NULL COMMENT '手机号id',
  4. `phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '导入电话',
  5. `name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '费用名称',
  6. `money` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '费用金额',
  7. `createtime` int(11) NULL DEFAULT NULL COMMENT '添加时间',
  8. `add_time` int(11) NULL DEFAULT NULL COMMENT '月份账单',
  9. PRIMARY KEY (`id`) USING BTREE
  10. ) ENGINE = MyISAM AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;

10、查看数据表的结构

  1. DESC table_name;
  2. DESCRIBE table_name;
  3. EXPLAIN table_name;
  4. SHOW COLUMNS FROM table_name;

11、插入数据

  1. INSERT INTO card_bill VALUES (61, '17311112222', 'ddd', '20.33', 1636528616, 1636473600);
  2. #或者
  3. INSERT INTO card_bill(card_list_id,phone,name,money,createtime,add_time) VALUES (61, '17311112222', 'ddd', '20.33', 1636528616, 1636473600);

12、查询数据

  1. SELECT * FROM tb1 WHERE name='李四';

13、UPDATE 查询

将字段中的特定字符串批量修改为其他字符串时,可已使用以下操作:

  1. UPDATE table_name SET field = REPLACE(field, 'old-value', 'new-value') [WHERE Clause] ;
  2. UPDATE tb1 SET name = REPLACE (name,'a','aaa') WHERE id = 1;

14、基本的使用形式为

  1. UPDATE table_name SET column_name = new-value [WHERE Clause] ;
  2. UPDATE tb1 SET status = DEFAULT WHERE id = 4 ;

15、DELETE 语句

  1. DELETE FROM table_name [WHERE Clause];
  2. DELETE FROM tb1 WHERE id= '7777';

16、LIKE

注意:没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的

  1. SELECT * FROM table1 WHERE name LIKE 'aaa%';
  2. SELECT * FROM table1 WHERE name LIKE '%aaa' AND id = '1%';

17、UNION

NION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

  1. SELECT expression1, expression2, ... FROM table_name [WHERE conditions]
  2.    >UNION [ ALL | DISTINCT ]
  3. >SELECT expression1, expression2, ... FROM table_name [WHERE conditions];
  4. #expression1, expression2, ... : 要检索的列。
  5. #tables: 要检索的数据表。
  6. #WHERE conditions: 可选, 检索条件。
  7. #DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
  8. #ALL: 可选,返回所有结果集,包含重复数据。

实例:

(1)数据表 tb1数据

(2) 数据表 tb2数据

  1. SELECT status FROM tb1
  2.    >UNION
  3.    >SELECT dept_status FROM tb2
  4.    >ORDER BY status ;

实例解析:从tb1和tb2表中选取不同的status (只有不同的值)

实例2实例 UNION ALL:

  1. SELECT status FROM tb1
  2. >UNION ALL
  3. >SELECT dept_status FROM tb2
  4. >ORDER BY status ;

实例解析:从tb1和tb2表中选取所有的status (也有重复的值)

实例3带有 WHERE 的 SQL UNION ALL:

  1. SELECT id, name,status FROM tb1
  2. >WHERE status = 0
  3. >UNION ALL
  4. >SELECT dept_id, dept_name ,dept_status FROM tb2
  5. >WHERE dept_status = 0
  6. >ORDER BY id;

18、排序

使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列

  1. SELECT * FROM tb1 ORDER BY id DESC;

19、分组

GROUP BY 语句根据一个或多个列对结果集进行分组。

在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。

  1. SELECT column_name, function(column_name)
  2. >FROM table_name
  3. >WHERE column_name operator value
  4. >GROUP BY column_name;

实例:

  1. SELECT name, COUNT(*) FROM tb1 GROUP BY name;

实例解析:使用 GROUP BY 语句 将数据表按名字进行分组,并统计每个人有多少条记录

实例:使用 WITH ROLLUP

WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)

  1. SELECT name, SUM(singin) as singin_count FROM tb1 GROUP BY name WITH ROLLUP;

实例解析:以上的数据表按名字进行分组,再统计每个人登录的次数

20、防止表中出现重复数据

20.1、可以在mysql数据表中设置指定的字段为PRIMART KEY (主键)或者UNIQUE(唯一)索引来保证数据的唯一性

20.2、统计重复数据

  1. SELECT COUNT(*) as repetitions, last_name, first_name
  2. -> FROM person_tbl
  3. -> GROUP BY last_name, first_name
  4. -> HAVING repetitions > 1;

20.3、过滤重复数据

如果你需要读取不重复的数据可以在 SELECT 语句中使用 DISTINCT 关键字来过滤重复数据。

  1. SELECT DISTINCT last_name, first_name
  2. -> FROM person_tbl;
  3. #也可以使用 GROUP BY 来读取数据表中不重复的数据:
  4. SELECT last_name, first_name
  5. -> FROM person_tbl
  6. -> GROUP BY (last_name, first_name);

20.4、4删除重复数据
如果你想删除数据表中的重复数据,你可以使用以下的SQL语句:

  1. CREATE TABLE tmp SELECT last_name, first_name, sex FROM person_tbl GROUP BY (last_name, first_name, sex);
  2. DROP TABLE person_tbl;
  3. ALTER TABLE tmp RENAME TO person_tbl;
  4. #也可以在数据表中添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录。方法如下:
  5. ALTER IGNORE TABLE person_tbl
  6. -> ADD PRIMARY KEY (last_name, first_name);

21、导出数据

21.1、使用 SELECT … INTO OUTFILE 语句导出数据

SELECT * FROM tb1
-> INTO OUTFILE ‘/a/aaa.txt’;

21.2、导出SQL格式的数据

  1. mysqldump -u root -p RUNOOB runoob_tbl > dump.txt
  1. #导出整个数据库的数据,可以使用以下命令:
  2. mysqldump -u root -p RUNOOB > database_dump.txt
  1. #如果需要备份所有数据库,可以使用以下命令:
  2. mysqldump -u root -p --all-databases > database_dump.txt

21.3、将数据表及数据库拷贝至其他主机

如果你需要将数据拷贝至其他的 MySQL 服务器上, 你可以在 mysqldump 命令中指定数据库名及数据表。

在源主机上执行以下命令,将数据备份至 dump.txt 文件中:

  1. mysqldump -u root -p database_name table_name > dump.txt

如果完整备份数据库,则无需使用特定的表名称。

如果你需要将备份的数据库导入到MySQL服务器中,可以使用以下命令,使用以下命令你需要确认数据库已经创建:

  1. mysql -u root -p database_name < dump.txt

也可以使用以下命令将导出的数据直接导入到远程的服务器上,但请确保两台服务器是相通的,是可以相互访问的:

  1. mysqldump -h other-host.com -P port -u root -p database_name > dump.txt

相关文章

最新文章

更多