SQL之数据定义、数据操纵

mac2026-09-01  8

  根据SQL的功能(数据定义、数据操纵、数据查询、数据控制)给大家依次例举了一些SQL的常用语法格式以及实例,希望能对各位初识SQL的伙伴一些帮助。由于篇幅原因,本文只介绍数据定义与数据操纵部分。

数据定义:

用于定义数据库、基本表等机构,基本命令包括:create、drop、alter。

先讲一下命令的用法:

命令功能create database 库名创建数据库create table 表名 (列名1 类型1 [约束列1], 列名2 类型2 [约束列2],…)创建数据表drop table 表名删除表alter table 表名 修改内容修改表结构(alter后面可以接的命令直接在实例里举出)

实例1:

创建数据库与基本表

建立“Practice”数据库,建立“student”数据表(结构如下):

idnameagesexint(5)char(5)int(3)char(2)主键非空 create database practice; -- 创建数据库 use practice; -- 选择要操作的数据库 create table student (id int(5) primary key, name char(5) not null, age char(3),sex char(2)); -- 创建表 desc student; -- 查看数据表结构 /***注意每条SQL语句的结尾要加分号,在SQL里面分号是一条语句结束的标志***/

逐条运行的结果是这样的:

mysql> create database practice; -- 创建数据库 Query OK, 1 row affected (0.01 sec) mysql> use practice; -- 选择要操作的数据库 Database changed mysql> create table student (id int(5) primary key, -> name char(5) not null, -> age char(3),sex char(2)); -- 创建表 Query OK, 0 rows affected (0.34 sec) mysql> desc student; -- 查看数据表结构 +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | id | int(5) | NO | PRI | NULL | | | name | char(5) | NO | | NULL | | | age | char(3) | YES | | NULL | | | sex | char(2) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 4 rows in set (0.01 sec)

  drop table 删除表,直接用就可以了,没有那么多弯弯绕绕的,简单易懂,所以就略过了。但是值得注意的是drop与delete的区别,drop是删除表,delete是删除表中的记录。其语法格式在之后的数据操纵中再向大家讲明。

  alter table 用于对表的结构进行修改,可以添加、删除字段: 添加字段:

alter table student add address char(50); -- 添加地址字段 alter table student drop sex; -- 删除性别字段

结果是这样的:

mysql> desc student; +---------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+----------+------+-----+---------+-------+ | id | int(5) | NO | PRI | NULL | | | name | char(5) | NO | | NULL | | | age | char(3) | YES | | NULL | | | address | char(50) | YES | | NULL | | +---------+----------+------+-----+---------+-------+

当然alter还可以对字段的数据类型等进行设置,感兴趣的朋友可以自己再去了解一下。

数据操纵:

数据操纵可以分为数据查询和数据跟新两类,数据更新又分为插入、删除和修改,基本命令如下:

命令功能insert into 表名(字段1,字段2, …) values (值1,值2,…)插入记录update 表名 set 列名 = 新值 where 列名 = 某值跟新符合条件的记录delete from 表名 where 列名 = 值删除符合条件的记录

  insert 用于向表中插入记录,可以直接插入,也可以插入到指定列,两者的写法稍有不同,会在实例中给出。还有值得注意的是delete与drop的区别,上文中也有提到,delete的操作对象是表中的记录,而drop的操作对象是表结构。

实例2:

插入、跟新、删除表中的记录

向“student”表中插入一条、多条记录,跟新记录属性,删除记录

INSERT INTO student(id,NAME,age,address) VALUES(1,'李涵','15',''); -- 插入单条记录 INSERT INTO student(id,NAME,age,address) VALUES(2,'张涵','20',''),(3,'王珂','21','上海'),(4,'彭军','20','北京'); -- 插入多条记录 UPDATE student SET age='25' WHERE NAME='彭军'; -- 跟新记录(将彭军的年龄改为25) DELETE FROM student WHERE NAME='王珂'; -- 删除记录

结果如下:

mysql> insert into student(id,name,age,address) values(1,'李涵','15',''); Query OK, 1 row affected (0.14 sec) mysql> insert into student(id,name,age,address) values(2,'张涵','20',''),(3,'王珂','21','上海'),(4,'彭军','20','北京'); Query OK, 3 rows affected (0.08 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> UPDATE student SET age='25' WHERE NAME='彭军'; Query OK, 1 row affected (0.10 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> UPDATE student SET age='25' WHERE NAME='彭军'; -- 跟新记录(将彭军的年龄改为25) Query OK, 0 rows affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0 mysql> DELETE FROM student WHERE NAME='王珂'; -- 删除记录 Query OK, 1 row affected (0.11 sec) mysql> select * from student; +----+--------+------+---------+ | id | name | age | address | +----+--------+------+---------+ | 1 | 李涵 | 15 | | | 2 | 张涵 | 20 | | | 4 | 彭军 | 25 | 北京 | +----+--------+------+---------+ 3 rows in set (0.00 sec)
最新回复(0)