MySQL入门——sql语言
4、sql语言
什么是sql语言?
SQL是一种结构化查询语言,全称是Structured Query Language,是一种用于存取数据以及查询、更新和管理关系数据库系统的计算机语言 。SQL语言是针对数据库而言的一门语言,它可以创建数据库、数据表,可以针对数据库进行增、删、改、查等操作,可以创建视图、存储过程,可以赋予用户权限等 。
具体如何使用呢?
SQL语言按其功能分为四个部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能 。其中,数据定义功能包括创建、修改和删除数据库、表等对象;数据控制功能包括授权和撤销用户对数据库的访问权限;数据查询功能包括查询、插入、更新和删除数据;数据操纵功能包括对数据的增、删、改、查等操作 。
4.1 数据定义功能
-
数据定义功能:用于定义、删除和修改数据库中的对象,如数据库、表等。常用的DDL命令有CREATE、ALTER和DROP等。CREATE(创建)、ALTER(修改)、 DROP(删除)
4.1.2 CREATE命令用于创建数据库、表等对象。常用的子命令有:
- DATABASE:创建数据库。
- TABLE:创建表。
- INDEX:创建索引。
- COLUMN:添加列。
- VIEW:创建视图。
例如,要创建一个名为“test”的数据库,可以使用以下命令:
CREATE DATABASE test;
以上命令将创建一个名为“test”的数据库。如果要在该数据库中创建一个名为“users”的表,可以使用以下命令:
USE test; CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50), age INT);
以上命令将在“test”数据库中创建一个名为“users”的表,该表包含三个列:id、name和age。其中,id列是主键,name列是长度为50的字符串,age列是整数类型。
4.1.3 ALTER命令用于修改数据库、表等对象的属性。常用的子命令有:
- ADD:添加列。
- ALTER COLUMN:修改列。
- DROP COLUMN:删除列。
- ADD INDEX:添加索引。
- ALTER INDEX:修改索引。
- DROP INDEX:删除索引。
例如,要给“test”表中的“age”列添加一个数据类型为INT的约束,可以使用以下命令
ALTER TABLE test ADD CONSTRAINT age_int CHECK (age >= 0 AND age <= 150);
以上命令将添加一个名为“age_int”的约束,该约束要求“age”列的值在0到150之间(包括0和150)。如果插入或更新的数据不符合该约束条件,则操作将被拒绝并显示错误信息。
4.1.4 DROP命令用于删除数据库、表等对象。常用的子命令有:
- DATABASE:删除数据库。
- TABLE:删除表。
- INDEX:删除索引。
例如,要删除名为“test”的数据库,可以使用以下命令:
DROP DATABASE test;
以上命令将删除名为“test”的数据库及其所有相关的表和索引。如果要删除名为“users”的表,可以使用以下命令:
USE test;
DROP TABLE users;
以上命令将在“test”数据库中删除名为“users”的表。注意,在执行DROP命令之前,必须确保没有正在使用该表或数据库的操作正在进行,否则操作将被拒绝并显示错误信息。
4.2 数据控制功能
-
数据控制功能:用于授权和撤销用户对数据库的访问权限。常用的DCL命令有GRANT和REVOKE等。
4.2.1 GRANT命令用于授权用户或用户组在数据库中执行特定操作的权限,如SELECT、INSERT、UPDATE、DELETE等。常用的子命令有:
- SELECT:授予用户查询数据的权限。
- INSERT:授予用户向表中插入数据的权限。
- UPDATE:授予用户更新表中数据的权限。
- DELETE:授予用户从表中删除数据的权限。
- ALL PRIVILEGES:授予用户所有权限。
例如,要授予名为“user1”的用户在“test”数据库中查询数据的权限,可以使用以下命令:
GRANT SELECT ON test TO user1;
以上命令将授予名为“user1”的用户在“test”数据库中查询数据的权限。如果要授予用户所有权限,可以使用以下命令:
GRANT ALL PRIVILEGES ON test TO user1;
以上命令将授予名为“user1”的用户在“test”数据库中所有权限。
4.2.2 REVOKE命令用于撤销用户或用户组在数据库中执行特定操作的权限,如SELECT、INSERT、UPDATE、DELETE等。常用的子命令有:
- SELECT:撤销用户查询数据的权限。
- INSERT:撤销用户向表中插入数据的权限。
- UPDATE:撤销用户更新表中数据的权限。
- DELETE:撤销用户从表中删除数据的权限。
例如,要撤销名为“user1”的用户在“test”数据库中查询数据的权限,可以使用以下命令:
REVOKE SELECT ON test FROM user1;
以上命令将撤销名为“user1”的用户在“test”数据库中查询数据的权限。如果要撤销用户所有权限,可以使用以下命令:
REVOKE ALL PRIVILEGES ON test FROM user1;
以上命令将撤销名为“user1”的用户在“test”数据库中所有权限。
4.3 数据查询功能
-
数据查询功能:用于查询、插入、更新和删除数据。常用的DQL命令有SELECT等。
SELECT命令用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。常用的子命令有:
-
查询列:如果我们想要对数据表中的某一列进行检索,在SELECT后面加上这个列的字段名即可。
-
起别名:在使用SELECT查询的时候,还有一些技巧可以使用,比如你可以给列名起别名。
-
查询常数:SELECT查询还可以对常数进行查询。
-
去除重复行:关于单个表的SELECT查询,还有一个非常实用的操作,就是从结果中去掉重复的行。
-
排序检索数据:当我们检索数据的时候,有时候需要按照某种顺序进行结果的返回,比如我们想要查询所有的英雄,按照最大生命从高到底的顺序进行排列,就需要使用ORDER BY子句。
-
约束返回结果的数量:另外在查询过程中,我们可以约束返回结果的数量,使用LIMIT关键字。
以下是SELECT命令的使用示例:
- 查询列:SELECT name, age FROM students;
- 起别名:SELECT name AS n, age AS y FROM students;
- 查询常数:SELECT 3+4;
- 去除重复行:SELECT DISTINCT name FROM students;
- 排序检索数据:SELECT * FROM students ORDER BY age DESC;注:默认是ASC(正序)、现在使用的DESC意为结果倒序展示
-
4.4 数据操纵功能
- 数据操纵功能:用于对数据的增、删、改、查等操作。常用的DML命令有INSERT、UPDATE、DELETE等。