常见SQL语句的介绍与示例
SQL是一种用于操作关系数据库的结构化查询语言,它可以用来创建、查询、更新、删除和管理数据库中的数据。SQL语句是SQL的基本单位,它可以执行不同的任务,如定义数据结构、操作数据、控制数据访问等。本文将介绍一些常见的SQL语句,包括它们的语法、用法和示例。
本文主要介绍了以下几类常见的SQL语句:
数据定义语言(DDL):用于创建、修改或删除数据库对象,如表、索引、视图等。
数据操纵语言(DML):用于对数据库中的数据进行增加、删除、修改或查询等操作。
数据控制语言(DCL):用于控制数据库的访问权限和事务管理等。
数据查询语言(DQL):用于从数据库中检索数据,是SQL语句中最常用的一类。
每一类SQL语句都包含了一些具体的命令,本文将通过实例来说明这些命令的功能和用法。本文使用MySQL数据库作为演示平台,但大部分SQL语句都是通用的,可以在其他关系数据库中使用。
一、数据定义语言(DDL)
数据定义语言(DDL)是用于定义或更改数据库结构的SQL语句,它包括以下几个命令:
1.1 CREATE DATABASE
CREATE DATABASE命令用于创建一个新的数据库,语法如下:
CREATE DATABASE<;数据库名>;
例如,创建一个名为university的数据库,可以使用以下命令:
CREATE DATABASE university;
1.2 DROP DATABASE
DROP DATABASE命令用于删除一个已存在的数据库,语法如下:
DROP DATABASE<;数据库名>;
例如,删除名为university的数据库,可以使用以下命令:
DROP DATABASE university;
1.3 USE
USE命令用于选择要操作的数据库,语法如下:
USE<;数据库名>;
例如,选择名为university的数据库,可以使用以下命令:
USE university;
1.4 CREATE TABLE
CREATE TABLE命令用于创建一个新的表,语法如下:
CREATE TABLE<;表名> (
<;列名1><;列类型1> [列约束1],
<;列名2><;列类型2> [列约束2],
...
[表约束]
);
其中,列类型指定了该列可以存储的数据类型,如CHAR、VARCHAR、INT、DECIMAL等。列约束指定了该列的限制条件,如NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY等。表约束指定了整个表的限制条件,如PRIMARY KEY、FOREIGN KEY等。
例如,创建一个名为instructor的表,存储教师的信息,可以使用以下命令:
CREATE TABLE instructor (
ID CHAR(5) NOT NULL,
name VARCHAR(20) NOT NULL,
dept_name VARCHAR(20),
salary DECIMAL(8,2),
PRIMARY KEY (ID),
FOREIGN KEY (dept_name) REFERENCES department (dept_name)
);
其中,ID是教师的编号,name是教师的姓名,dept_name是教师所属的部门名称,salary是教师的薪水。ID和name都不能为NULL,ID还要求唯一,并且作为主键。dept_name作为外键,引用department表中的dept_name 列。
1.5 DROP TABLE
DROP TABLE命令用于删除一个已存在的表,语法如下:
DROP TABLE<;表名>;
例如,删除名为instructor的表,可以使用以下命令:
DROP TABLE instructor;
1.6 ALTER TABLE
ALTER TABLE命令用于修改一个已存在的表的结构,如添加或删除列、修改列类型或约束、添加或删
除索引等。ALTER TABLE命令有多种变体,常见的有以下几种:
添加列:语法如下:
ALTER TABLE<;表名>ADD<;列名><;列类型> [列约束];
例如,给instructor表添加一个email列,类型为VARCHAR(50),可以使用以下命令:
ALTER TABLE instructor ADD email VARCHAR(50);
删除列:语法如下:
ALTER TABLE<;表名>DROP<;列名>;
例如,给instructor表删除email列,可以使用以下命令:
ALTER TABLE instructor DROP email;
修改列类型或约束:语法如下:
ALTER TABLE<;表名>MODIFY<;列名><;新列类型> [新列约束];
例如,给instructor表修改salary列的类型为DECIMAL(10,2),可以使用以下命令:
ALTER TABLE instructor MODIFY salary DECIMAL(10,2);
添加主键约束:语法如下:
ALTER TABLE<;表名>ADD PRIMARY KEY (<;列名>);
例如,给instructor表添加主键约束,以ID作为主键,可以使用以下命令:
ALTER TABLE instructor ADD PRIMARY KEY (ID);
删除主键约束:语法如下:
ALTER TABLE<;表名>DROP PRIMARY KEY;
例如,给instructor表删除主键约束,可以使用以下命令:
ALTER TABLE instructor DROP PRIMARY KEY;
添加外键约束:语法如下:
ALTER TABLE<;表名>ADD FOREIGN KEY (<;列名>) REFERENCES<;另一张表名> (<;另一张表的列名>);
例如,给instructor表添加外键约束,以dept_name作为外键,引用department表中的dept_name列,可以使用以下命令:
ALTER TABLE instructor ADD FOREIGN KEY (dept_name) REFERENCES department (dept_name);
删除外键约束:语法如下:
ALTER TABLE<;表名>DROP FOREIGN KEY<;外键名称>;
其中,外键名称是在创建外键时自动生成的,一般是<;表名>ibfk<;序号>的形式。可以通过SHOW CREATE TABLE命令查看外键名称。
例如,给instructor表删除外键约束,假设外键名称为instructor_ibfk_1,可以使用以下命令:
ALTER TABLE instructor DROP FOREIGN KEY instructor_ibfk_1;
1.7 CREATE INDEX
CREATE INDEX命令用于为一张表中的一列或多列创建索引,以提高查询效率。语法如下:
CREATE INDEX<;索引名>ON<;表名> (<;列名1>,<;列名2>,...);
例如,为instructor表中的name列创建一个索引,可以使用以下命令:
CREATE INDEX name_index ON instructor (name);
1.8 DROP INDEX
DROP INDEX命令用于删除一个已存在的索引,语法如下:
DROP INDEX<;索引名>ON<;表名>;
例如,删除instructor表中的name_index索引,可以使用以下命令:
DROP INDEX name_index ON instructor;
二、数据操纵语言(DML)
常用的sql查询语句有哪些数据操纵语言(DML)是用于对数据库中的数据进行操作的SQL语句,它包括以下几个命令:
2.1 INSERT INTO
INSERT INTO命令用于向一张表中插入一条或多条记录(行),有两种语法形式:
指定要插入的列和值:语法如下:
INSERT INTO<;表名> (<;列名1>,<;列名2>,...) VALUES (<;值1>,<;值2>,...);
例如,在instructor表中插入一条记录,指定ID、name、dept_name和salary的值,可以使用以下命令:INSERT INTO instructor (ID,name,dept_name,salary) VALUES ('001','Alice','Comp. Sci.',8000.00);
不指定要插入的列,默认按照所有列的顺序插入值:语法如下:
INSERT INTO<;表名>VALUES (<;值1>,<;值2>,......);
例如,在instructor表中插入一条记录,按照ID、name、dept_name和salary的顺序插入值,可以使用以下命令:
INSERT INTO instructor VALUES ('002','Bob','Math',7000.00);
如果要一次插入多条记录,可以使用以下语法:
INSERT INTO<;表名> (<;列名1>,<;列名2>,...) VALUES
(<;值1>,<;值2>,...),
(<;值1>,<;值2>,...),
...
;
例如,在instructor表中一次插入两条记录,可以使用以下命令:
INSERT INTO instructor (ID,name,dept_name,salary) VALUES
('003','Charlie','Physics',6000.00),
('004','David','Biology',5000.00);
2.2 DELETE FROM
DELETE FROM命令用于从一张表中删除一条或多条记录(行),语法如下:
DELETE FROM<;表名> [WHERE<;条件>];
其中,WHERE子句用于指定要删除的记录的条件,如果省略,则删除表中的所有记录。
例如,在instructor表中删除ID为'004'的记录,可以使用以下命令:
DELETE FROM instructor WHERE ID='004';
在instructor表中删除所有记录,可以使用以下命令:
DELETE FROM instructor;
2.3 UPDATE
UPDATE命令用于修改一张表中的一条或多条记录(行),语法如下:
UPDATE<;表名>SET<;列名1>=<;值1>,<;列名2>=<;值2>,... [WHERE<;条件>];
其中,SET子句用于指定要修改的列和值,WHERE子句用于指定要修改的记录的条件,如果省略,则修改表中的所有记录。
例如,在instructor表中将ID为'003'的记录的salary修改为6500.00,可以使用以下命令:
UPDATE instructor SET salary=6500.00WHERE ID='003';
在instructor表中将所有记录的salary增加10%,可以使用以下命令:
UPDATE instructor SET salary=salary *1.1;
三、数据控制语言(DCL)
数据控制语言(DCL)是用于控制数据库的访问权限和事务管理的SQL语句,它包括以下几个命令:
3.1 GRANT
GRANT命令用于给用户或角授予数据库对象的访问权限,语法如下:
GRANT<;权限列表>ON<;对象列表>TO<;用户列表> [WITH GRANT OPTION];
其中,权限列表是指要授予的权限,如SELECT、INSERT、UPDATE、DELETE等。对象列表是指要授予权限的数据库对象,如TABLE、VIEW、PROCEDURE等。用户列表是指要授予权限的用户或角。WITH GRANT OPTION表示被授权者可以将自己拥有的权限再授予给其他用户或角。
例如,给用户Alice授予instructor表的SELECT和UPDATE权限,可以使用以下命令:
GRANT SELECT, UPDATE ON instructor TO Alice;
给用户Bob授予所有数据库对象的所有权限,并允许他将这些权限再授予给其他用户或角,可以使用以下命令:
GRANT ALL ON* . *TO Bob WITH GRANT OPTION;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。