13.5 常用sql语句
时间:2022-04-27
本文章向大家介绍13.5 常用sql语句,主要内容包括常用sql语句目录概要、常用sql语句、插入语句、update操作、delete操作、truncate清空一个表、总结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
常用sql语句目录概要
- select count(*) from mysql.user;
- select * from mysql.db;
- select db from mysql.db;
- select db,user from mysql.db;
- select * from mysql.db where host like '192.168.%';
- insert into db1.t1 values (1, 'abc');
- update db1.t1 set name='aaa' where id=1;
- truncate table db1.t1;
- drop table db1.t1;
- drop database db1;
常用sql语句
- 增删改查,就是mysql和其他关系型数据库常用的select语句操作命令
查询语句
- 首先登录root下的mysql
[root@hf-01 ~]# mysql -uroot -p'hanfeng'
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 18
Server version: 5.6.35 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql>
- 使用db1库
mysql> use db1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql>
- 查看当前库的所有表show tables;
mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| t1 |
+---------------+
1 row in set (0.00 sec)
mysql>
- 查看表的行数 select count(*) from mysql.user;
- 库和表中间有个分割符,就是用点 . 分割
mysql> select count(*) from mysql.user;
+----------+
| count(*) |
+----------+
| 12 |
+----------+
1 row in set (0.01 sec)
mysql>
- 就是说user表有12行内容
- 查看所有的内容 select * from mysql.db;(这样看起来会很乱) ——>可以在后面加上G,如select * from mysql.dbG;
- 这里的 * 表示查看所有内容
mysql> select * from mysql.db/G;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/G' at line 1
mysql> select * from mysql.dbG;
*************************** 1. row ***************************
Host: %
Db: test
User:
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Grant_priv: N
References_priv: Y
Index_priv: Y
Alter_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: N
Execute_priv: N
Event_priv: Y
Trigger_priv: Y
*************************** 2. row ***************************
等等等,只截取了一部分
- 查看db库的所有内容 select db from mysql.db; 第一个db是字段
mysql> select db from mysql.db;
+---------+
| db |
+---------+
| test |
| test_% |
| db1 |
| db1 |
+---------+
4 rows in set (0.01 sec)
mysql>
- 查db字段和user字段 select db,user from mysql.db;
mysql> select db,user from mysql.db;
+---------+-------+
| db | user |
+---------+-------+
| test | |
| test_% | |
| db1 | user2 |
| db1 | user2 |
+---------+-------+
4 rows in set (0.00 sec)
mysql>
- 模糊查询 select * from mysql.db where host like '192.168.%';
- like 就是模糊匹配
mysql> select * from mysql.db where host like '192.168.%'G;
*************************** 1. row ***************************
Host: 192.168.133.1
Db: db1
User: user2
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: N
Create_priv: N
Drop_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Execute_priv: N
Event_priv: N
Trigger_priv: N
*************************** 2. row ***************************
Host: 192.168.133.2
Db: db1
User: user2
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: N
Create_priv: N
Drop_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Execute_priv: N
Event_priv: N
Trigger_priv: N
2 rows in set (0.00 sec)
ERROR:
No query specified
mysql>
插入语句
- 查看创建的表
mysql> desc db1.t1;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id | int(4) | YES | | NULL | |
| name | char(40) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.01 sec)
mysql>
- 查看db1.t1表的内容,会发现为空
mysql> select * from db1.t1;
Empty set (0.00 sec)
mysql>
- 插入数据到 insert into db1.t1 values (1, 'abc');
- 插入1, 'abc'到db1.t1表
mysql> insert into db1.t1 values (1, 'abc');
Query OK, 1 row affected (0.02 sec)
mysql>
- 再来查询db1.t1
mysql> select * from db1.t1;
+------+------+
| id | name |
+------+------+
| 1 | abc |
+------+------+
1 row in set (0.00 sec)
mysql>
- 这样就成功了插入了一条数据,在插入的时候 name 这个字段应该是是一个字符串,字符串需要加上一个单引号 ' ' ,数字可以不加单引号
mysql> insert into db1.t1 values (1, 234);
Query OK, 1 row affected (0.01 sec)
mysql> select * from db1.t1;
+------+------+
| id | name |
+------+------+
| 1 | abc |
| 1 | 234 |
+------+------+
2 rows in set (0.00 sec)
mysql>
5.这里没有做限制,这里id和name都可以是相同的,同一个字段里有相同的数字,相同的值 6. 也可以做一些限制,在插入相同的id的时候,就会冲突
update操作
- 更改db1.t1表 的字符串为name 的数据 和 字符串为id 的数据
- update db1.t1 set name='aaa' where id=1;
mysql> update db1.t1 set name='aaa' where id=1;
Query OK, 2 rows affected (0.01 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> select * from db1.t1;
+------+------+
| id | name |
+------+------+
| 1 | aaa |
| 1 | aaa |
+------+------+
2 rows in set (0.00 sec)
mysql>
delete操作
- 删除db1.t1表 的数据 和 字符串为id 的数据
- delete from db1.t1 where id=1;
mysql> delete from db1.t1 where id=1;
Query OK, 2 rows affected (0.01 sec)
mysql> select * from db1.t1;
Empty set (0.00 sec)
mysql>
truncate清空一个表
- 清空表数据 truncate table db1.t1;
- 即使表的数据清空了,但表的字段依旧存在的
mysql> insert into db1.t1 values (1, 234);
Query OK, 1 row affected (0.00 sec)
mysql> select * from db1.t1;
+------+------+
| id | name |
+------+------+
| 1 | 234 |
+------+------+
1 row in set (0.00 sec)
mysql> truncate table db1.t1;
Query OK, 0 rows affected (0.02 sec)
mysql> select * from db1.t1;
Empty set (0.00 sec)
mysql> desc db1.t1;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id | int(4) | YES | | NULL | |
| name | char(40) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql>
- truncate 只是清空的内容,而drop 会清空表的数据并清除表的框架
- drop 会把表的框架也丢掉 drop table db1.t1;
mysql> drop table db1.t1;
Query OK, 0 rows affected (0.01 sec)
mysql> select * from db1.t1; //因为表的架构已经不存在了
ERROR 1146 (42S02): Table 'db1.t1' doesn't exist
mysql>
- 丢掉表 drop database db1;
总结
- 在使用mysql的时候,少用 * 这样的操作,因为若是一个表里面的内容很多,select count(*)这样操作就会很耗时,浪费资源
- 数据库中常用引擎是myisam和innodb,默认mysql库里面都是使用的myisam引擎
- 特点:myisam引擎,能自动去统计有多少行
- 在select count(*)查看表的时候会很快
- use mysql;
- show create table userG;
- 特点:innodb引擎,不会自动统计行数,每次去查询,每次去统计行数,就会很耗时
- use db1
- show create table t1;
- 所以select count(*)这种操作尽量减少,会耗费太多资源
- 特点:myisam引擎,能自动去统计有多少行
- CSS几个竖直与水平居中盒子模型
- ZooKeeper 笔记(6) 分布式锁
- Hadoop(十五)MapReduce程序实例
- dubbox 的各种管理和监管
- bash魔法堂:History用法详解
- 大众点评cat系统的搭建笔记
- 我们只能在安全和隐私之间寻求平衡吗?
- Docker Compose 1.18.0 之服务编排详解
- 让IE7/8使用CSS中first-child和last-child样式属性
- dubbo/dubbox 增加原生thrift及avro支持
- Hadoop(十四)MapReduce原理分析
- dubbox 增加google-gprc/protobuf支持
- 统计02:怎样描绘数据
- ActiveMQ笔记(1):编译、安装、示例代码
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 深入Mybatis源码——配置解析
- 深入Mybatis源码——执行流程
- Mybatis插件扩展以及与Spring整合原理
- 你所不知道的Spring的@Autowired实现细节
- modbus-RTU-crc16——c语言
- KEIL 生成 Binaxf 文件
- Istio可观测性
- 大点干!早点散----------使用Haproxy搭建web群集
- 嵌入式系统FreeRTOS — 互斥信号量
- 面试题系列第6篇:JVM字符串常量池及String的intern方法详解?
- 机器学习(一)——K-近邻(KNN)算法
- 机器学习(二)——K-均值聚类(K-means)算法
- windows下matplotlib的安装
- Python中常见的数据类型总结
- stm32中阻塞模式和非阻塞模式 in blocking mode 与 in non-blocking mode区别