数据库命令语句及存储过程

1.数据库相关命令语句
1.truncate与delete

TRUNCATE TABLE:删除内容、不删除定义、释放空间。
DELETE TABLE:删除内容、不删除定义,释放空间。
DROPTABLE:删除内容和定义,释放空间。

1.truncate table 表名,只能删除表中全部数据。 delete from 表名 where ….,可以删除表中全部数据,也可以删除部分数据。

2.delete from 记录是一条条删的,所删除的每行记录都会进日志, 而 truncate 一次性删掉整个页,因此日志里面只记录页释放.

3.Truncate 删除后,不能回滚。Delete 可以回滚

4.Truncate 的执行速度比 Delete 快。

5.Delete 执行后,删除的数据占用的存储空间还在,还可以恢复数据。Truncate 删除的数据占用的存储空间不在,不可以恢复数据

2.增删改查

插入一行数据:
insert into stu(stuName,stuAge,stuSex) values(‘张三’,’20’,’男’)

增加列: 1. alter table tableName add (column)columnName varchar(30) (一定 要有数据类型!!!)

删除列: 1. alter table tableName drop (column) columnName

3.count()

count(*) 跟 count(1) 的结果一样,返回记录的总行数,都包括 对 NULL 的统计,而 count(column) 是不包括 NULL 的统计。

4.limit 用法

一.如果给定两个参数, 第一个参数指定第一个返回记录行的偏移量, 第二个参数指定返回记录行的最大数目。 初始记录行的偏移量是 0(而不是 1)

SELECT * FROM table LIMIT 5,10; //检索记录行 6-15
//为了检索从某一个偏移量到记录集的结束所有的记录行, 可以指定第二个参数为 -1:

二.如果只给定一个参数, 它表示返回最大的记录行数目。

SELECT * FROM table LIMIT 5; //检索前 5 个记录行; LIMIT n 等价于 LIMIT 0,n。
5.group by

有一个学生表, 有三个字段: name 、 course 、 score ,
每一个学生都有三门课程, 比如数学、 语文、 英语, 写 sql 语
句, 查找出三门课程的成绩都大于 80 的学生。

SELECT S.name
FROM Student S
GROUP BY S.name
Having MIN(S.score)>=80
select distinct A.name form Student A 
where A.name  not in(
select distinct S.name form Student S where S.score<80)
6. Exist

EXISTS 关键字表示存在。 使用 EXISTS 关键字时, 内层查询语句不返回查询的记录,而是返回一个真假值
如果内层查询语句查询到符合条件的记录, 就返回一个真值(true) , 否则, 将返回一个假值(false) :

  1. 当返回的值为 true 时, 外层查询语句将进行查询。
  2. 当返回的值为 false 时, 外层查询语句将不进行查询或者查询不出任何记录。

如果 department 表中存在 d_id 取值为 1003 的记录, 则查询 employee 表中 age 大于24 岁的记录。

SELECT * FROM employee
WHERE age>24 AND EXISTS
(SELECT d_name FROM department WHERE d_id=1003);
2.数据库连接
1.内连接(inner join):只显示符合连接条件的记录。

[TEST1@orcl#16-12 月-11] SQL>select * from t1;

IDNAME
1aaa
2bbb

[TEST1@orcl#16-12 月-11] SQL>select * from t2;

IDAGE
120
330

[TEST1@orcl#16-12 月-11] SQL>select * from t1 inner join t2 on t1.id=t2.id;

IDNAMEIDAGE
1aaa120
2.外连接分左外连接、右外连接、全外连接三种。

1)左外连接(LEFT JOIN 或 LEFT OUTER JOIN )
即以左表为基准,到右表找匹配的数据,找不到匹配的用NULL补齐。
显示左表的全部记录及右表符合连接条件的记录。
[TEST1@orcl#16-12 月-11] SQL>select * from t1 leftjoin t2 on t1.id=t2.id;
ID NAME ID AGE


1 aaa 1 20
2 bbb NULL NULL

2)右外连接(RIGHT JOIN 或 RIGHT OUTER JOIN )
[TEST1@orcl#16-12 月-11] SQL>select * from t1 right join t2 on t1.id=t2.id;
ID NAME ID AGE


1 aaa 1 20
NULL NULL 3 30
即以右表为基准,到左表找匹配的数据,找不到匹配的用NULL补齐。
显示右表的全部记录及左表符合连接条件的记录

3)全外连接(FULL JOIN 或 FULLOUTER JOIN)
除了显示符合连接条件的记录外,在2个表中的其他记录也显示出来。

3.存储过程的概念以及优缺点

存储过程:就是一些编译好了的 sql 语句,这些 SQL 语句代码
像一个方法一样实现一些功能(对单表或多表的增删改查),然后
再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。

优点

1.存储过程因为 SQL 语句已经预编译过了,因此运行的速度比较快。
2.存储过程在服务器端运行,减少客户端的压力。
3.允许模块化程序设计,就是说只需要创建一次过程,以后在程
序中就可以调用该过程任意次,类似方法的复用。
4.减少网络流量,客户端调用存储过程只需要传存储过程名和相 关参数即可,与传输 SQL 语句相比自然数据量少了很多。
5. 增强了使用的安全性,充分利用系统管理员可以对执行的某一个存储过程进行权限限制,从而能够实现对某些数据访问的限制,避免非授权用户对数据的访问,保证数据的安全。程序员直接调用存储过程,根本不知道表结构是什么,有什么字段,没有直接暴露表名以及字段名给程序员。

缺点:

调试麻烦(至少没有像开发程序那样容易),可移植性不灵活(因
为存储过程是依赖于具体的数据库)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是MySQL数据库查询所有语句命令: 1. SELECT:用于从数据库检索数据。 2. FROM:用于指定要检索数据的表。 3. WHERE:用于筛选数据。 4. GROUP BY:用于将数据分组。 5. HAVING:用于筛选分组后的数据。 6. ORDER BY:用于按指定条件对数据进行排序。 7. JOIN:用于将两个或多个表的行合并。 8. UNION:用于将两个或多个 SELECT 语句的结果集合并到单个结果集。 9. LIMIT:用于限制结果集的数量。 10. IN:用于指定一组可能的值。 11. LIKE:用于搜索与指定模式匹配的值。 12. NOT:用于否定条件。 13. EXISTS:用于检查子查询是否有结果。 14. BETWEEN:用于指定一个范围。 15. NULL:用于检查值是否为空。 16. AS:用于为列或表指定别名。 17. AVG:用于计算列的平均值。 18. COUNT:用于计算列的行数。 19. MAX:用于查找列的最大值。 20. MIN:用于查找列的最小值。 21. SUM:用于计算列的总和。 ### 回答2: MySQL数据库查询所有语句命令主要包括以下几个常用的命令: 1. SELECT:用于从数据库检索数据。可以根据指定的条件和要求来选择需要的列和行。 2. INSERT INTO:用于将新的数据插入到数据库的表。 3. UPDATE:用于更新数据库的已有数据。 4. DELETE:用于从数据库删除数据。 5. CREATE TABLE:用于创建一个新的数据库表。 6. ALTER TABLE:用于修改已有的数据库表的结构,例如添加、删除或修改列。 7. DROP TABLE:用于删除数据库表。 8. TRUNCATE TABLE:用于删除数据库的所有数据,但保留表的结构。 9. USE:用于选择要操作的数据库。 10. SHOW DATABASES:用于查看当前MySQL服务器上的所有数据库。 11. SHOW TABLES:用于查看当前数据库的所有表。 12. DESC(或DESCRIBE):用于查看表的结构和字段的详细信息。 13. SHOW INDEX:用于显示表的索引信息。 14. SHOW PROCEDURE STATUS:用于显示当前数据库存储过程的状态。 15. SHOW VARIABLES:用于查看和修改MySQL服务器的变量。 这些是MySQL数据库查询常用的命令,不同的命令可以用于不同的查询和操作需求。可以根据具体的业务需求选择合适的命令进行操作。 ### 回答3: MySQL数据库查询所有语句命令包括SELECT、SHOW、DESCRIBE和EXPLAIN等。它们是用来检索和展示数据库存储的数据和表结构的。 1. SELECT:用于从一个或多个表检索数据。可以指定要检索的列、过滤条件和排序方式等。 2. SHOW:用于查看数据库或表的信息。有多种SHOW命令,如SHOW DATABASES用于查看数据库列表,SHOW TABLES用于查看某个数据库的表列表,SHOW COLUMNS FROM table_name用于查看表的列信息等。 3. DESCRIBE:用于查看表结构的详细信息。可以通过DESCRIBE或EXPLAIN加上表名来查看表各个列的属性、类型、索引等信息。 4. EXPLAIN:用于查看查询语句的执行计划,并分析查询性能。可以通过EXPLAIN加上SELECT语句来查看该查询语句的执行过程,包括如何访问表、连接方式、索引使用情况等。 除了以上常用的查询命令,MySQL还提供了许多其他的查询语句命令和子句,如INSERT INTO、UPDATE、DELETE、GROUP BY、HAVING、ORDER BY等,用于实现更复杂的查询操作。 总之,MySQL数据库查询语句命令是用于检索和展示数据库存储的数据和表结构的,通过这些命令可以灵活地操作和管理数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值