MySQL语句相关内容

一、SQL语句的分类

SQL语句分为以下几类:

数据定义语言(Data Definition Language,DDL):用来创建或者删除数据库以及数据库对象(表、视图等)。常见的DDL语句包括CREATE、ALTER、DROP等。

数据操作语言(Data Manipulation Language,DML):用来添加、删除、修改和查询数据库记录。常见的DML语句包括SELECT、INSERT、UPDATE、DELETE等。

数据控制语言(Data Control Language,DCL):用来授予或者回收访问数据库的权限,以及对数据库进行认证。常见的DCL语句包括GRANT、REVOKE等。

事务控制语言(Transaction Control Language,TCL):用来管理数据库的事务处理。常见的TCL语句包括COMMIT、ROLLBACK、SAVEPOINT等。

二、数据定义语言(DDL)

1.CREATE
CREATE语句用来创建数据库对象,例如表、视图、函数等。其基本语法如下:

-- 创建数据库
CREATE DATABASE database_name;

-- 创建表
CREATE TABLE table_name (
    column_name1 datatype [optional_constraint],
    column_name2 datatype [optional_constraint],
    ...
    [optional_table_constraint]
);

-- 创建视图
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition;


在使用CREATE语句创建对象时,需要注意以下几点:

CREATE DATABASE语句只能由具有管理员权限的用户执行;
表中至少要包含一列,每列都需要指定数据类型;
CREATE TABLE语句中的optional_constraint指定各种约束条件,例如PRIMARY KEY、FOREIGN KEY、CHECK、NOT NULL等;
CREATE VIEW语句中必须指定view包含哪些列,并且这些列必须是从现有表中选择的。


2.ALTER
ALTER语句用来修改数据库对象,例如表、视图、列、索引等。其基本语法如下:

-- 修改表名
ALTER TABLE table_name RENAME TO new_table_name;

-- 新增列
ALTER TABLE table_name ADD COLUMN new_column_name datatype [optional_constraint];

-- 修改列
ALTER TABLE table_name ALTER COLUMN column_name datatype [optional_constraint];

-- 删除列
ALTER TABLE table_name DROP COLUMN column_name;


在使用ALTER语句修改对象时,需要注意以下几点:

ALTER语句应谨慎使用,因为它会修改已经存在的数据库对象,可能会对数据造成损失或影响性能;
ALTER COLUMN语句可以修改已有列的数据类型和约束条件;
DROP COLUMN语句会删除指定的列及其数据,因此应该提前备份数据。


3.DROP
DROP语句用来删除数据库对象,例如表、视图、函数等。其基本语法如下:

-- 删除数据库
DROP DATABASE database_name;

-- 删除表
DROP TABLE table_name;

-- 删除视图
DROP VIEW view_name;


在使用DROP语句删除对象时,需要注意以下几点:

DROP语句会永久删除已有的数据库对象,因此应该谨慎使用,并提前备份数据;
如果删除对象时还有其他对象依赖于它,会抛出异常并终止执行。
三、数据操作语言(DML)

1.SELECT
SELECT语句用来从数据库中查询数据,并返回查询结果集。其基本语法如下:

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name
HAVING condition
ORDER BY column_name [ASC|DESC];


在使用SELECT查询数据时,需要注意以下几点:

SELECT语句是SQL中最常用的语句之一,可以根据不同的需求对数据进行查询、汇总、统计等操作;
FROM关键字表示从哪张表中查询数据,可以同时查询多张表;
WHERE关键字用于筛选数据,只有符合条件的数据才会返回;
GROUP BY关键字用于对查询结果进行分组,可以进行聚合计算;
HAVING关键字用于在GROUP BY的基础上对分组后的结果进行筛选;
ORDER BY关键字用于根据指定列对查询结果进行排序,可以指定升序(ASC)或降序(DESC)。


2.INSERT
INSERT语句用来向数据库中插入新数据。其基本语法如下:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);


在使用INSERT插入数据时,需要注意以下几点:

INSERT语句可以一次性插入多行数据,其VALUES子句需要跟随多组值;
如果插入数据时没有明确指定列名,则需要保证插入的值的顺序和表中列的定义顺序一致;
如果插入数据时涉及到外键约束,需要先插入主表的记录,再插入从表的记录。


3.UPDATE
UPDATE语句用来修改数据库中已有的数据。其基本语法如下:

UPDATE table_name 
SET column1 = value1, column2 = value2, ...
WHERE condition;


在使用UPDATE修改数据时,需要注意以下几点:

UPDATE语句可以修改一行或多行数据;
WHERE子句用来筛选需要修改的目标记录,如果没有WHERE子句,则会修改整张表的所有数据;
如果更新数据时涉及到外键约束,需要先更新主表的记录,再更新从表的记录。


4.DELETE
DELETE语句用来删除数据库中已有的数据。其基本语法如下:

DELETE FROM table_name 
WHERE condition;


在使用DELETE删除数据时,需要注意以下几点:

DELETE语句可以删除一行或多行数据;
WHERE子句用来筛选需要删除的目标记录,如果没有WHERE子句,则会删除整张表的所有数据;
如果删除数据时涉及到外键约束,需要先删除从表的记录,再删除主表的记录。
四、数据控制语言(DCL)

1.GRANT
GRANT语句用来授予访问数据库的权限。其基本语法如下:

GRANT privilege_type ON object_name TO user_name;

在使用GRANT语句授权时,需要注意以下几点:

privilege_type指定授权级别,例如SELECT、INSERT、UPDATE、DELETE等;
object_name指定授权对象,例如某个表、视图等;
user_name指定被授予权限的用户,可以是具体的用户名或者角色名称。


2.REVOKE
REVOKE语句用来回收其他用户对数据库的访问权限。其基本语法如下:

REVOKE privilege_type ON object_name FROM user_name;


在使用REVOKE语句回收权限时,需要注意以下几点:

privilege_type和object_name的含义与GRANT语句相同;
user_name指定需要被回收权限的用户。
五、事务控制语言(TCL)

1.COMMIT
COMMIT语句用来提交当前事务。其基本语法如下:

COMMIT;


在使用COMMIT提交事务时,需要注意以下几点:

当前事务必须是一个已经开启的事务;
一旦提交事务,则会永久性地将所有已经执行的SQL语句影响到数据库中的数据;
COMMIT语句一般和START TRANSACTION语句一起使用。


2.ROLLBACK
ROLLBACK语句用来回滚当前事务。其基本语法如下:

ROLLBACK;


在使用ROLLBACK回滚事务时,需要注意以下几点:

当前事务必须是一个已经开启的事务;
一旦回滚事务,则会取消所有已经执行的SQL语句对数据库中数据的影响;
ROLLBACK语句一般和START TRANSACTION语句一起使用。


3.SAVEPOINT
SAVEPOINT语句用来设置一个保存点,以便在后续需要回滚部分事务时可以更好地控制回滚范围。其基本语法如下:

SAVEPOINT savepoint_name;


在使用SAVEPOINT设置保存点时,需要注意以下几点:

savepoint_name指定保存点的名称,可以自定义;
保存点设置之后,可以在后续的操作中进行回滚。
六、SQL语句的应用实战

1.创建新表

 

CREATE TABLE student (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    gender VARCHAR(10),
    age INT
);


2.向表中插入数据

 

INSERT INTO student (id, name, gender, age)
VALUES (1, 'Tom', 'Male', 18);


3.查询表中所有数据
 

SELECT * FROM student;


4.根据条件查询数据

 

SELECT * FROM student
WHERE age > 20 AND gender = 'Female';


5.修改数据

 

UPDATE student
SET age = 19
WHERE name = 'Tom';


6.删除数据

 

DELETE FROM student
WHERE age < 18;

7.
创建新视图

 

CREATE VIEW count_by_gender AS
SELECT gender, COUNT(*) AS count
FROM student
GROUP BY gender;


以上是SQL语句的一些基本应用示例,它们可以用于构建各种不同类型的数据库系统。在实际应用中,需要根据具体的需求和场景选择不同的SQL语句进行组合,并注意语句使用的规范和注意事项。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值