文章目录
- 1 表的创建
- 2 表的查询
- 3 表记录的插入
- 3.1 插入完整数据记录
- 3.2 插入部分数据记录
- 3.3 插入多条数据记录
- 4 表记录的更新
- 4.1 更新特定数据记录
- 4.2 更新所有数据记录
- 5 表记录的删除
- 5.1 删除特定数据记录
- 5.2 删除所有数据记录
在MySQL数据库中,表是一种很重要的数据库对象,是组成数据库的基本元素,由若干个字段组成,主要用来实现存储数据记录。表的操作包含创建表、查询表、修改表和删除表,这些操作是数据库对象的表管理中最基本也是最重要的操作。
1 表的创建
基本语法:
CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];
其中,[表定义选项]的格式为:
<列名1> <类型1> [,…] <列名n> <类型n>
CREATE TABLE 命令语法比较多,其主要是由表创建定义(create-definition)、表选项(table-options)和分区选项(partition-options)所组成的。这里主要介绍表定义选项。
use school; #选择数据库school
create table class1(class_id int, class_name varchar(128), class_teacher varchar(64)); #创建表class
CREATE TABLE 语句的主要语法及使用说明如下:
- CREATE TABLE:用于创建给定名称的表,必须拥有表CREATE的权限。
- <表名>:指定要创建表的名称,表名称可以被指定为 db_name.tbl_name,以便在特定的数据库中创建表。无论是否有当前数据库,都可以通过这种方式创建。在当前数据库中创建表时,可以省略 db-name。有些数据库可以使用加引号的识别名,例如,‘mydb’.‘mytbl’ 是合法的,但 mysql 是不合法。
create table school.class2(class_id int, class_name varchar(128), class_teacher varchar(64)); #创建表class2
create table ‘school’.’class3’(class_id int, class_name varchar(128), class_teacher varchar(64)); #Error! 会创建失败
- <表定义选项>:表创建定义,由列名(col_name)、列的定义(column_definition, 或者叫类型定义)以及可能的空值说明、完整性约束或表索引组成。
use school; #选择数据库school
create table class4(class_id int PRIMARY KEY, class_name varchar(128) NOT NULL, class_teacher varchar(64) UNIQUE); #创建表class3
注意:
- 默认的情况是,表被创建到当前的数据库中。若表已存在、没有当前数据库或者数据库不存在,则会出现错误。
- 提示:使用 CREATE TABLE 创建表时,必须注意以下信息:
- 要创建的表的名称不区分大小写,不能使用SQL语言中的关键字,如DROP、ALTER、INSERT等。
- 数据表中每个列(字段)的名称和数据类型,如果创建多个列,要用逗号隔开。
列名的命名规范:
- 采用26字母和0-9的自然数加上下互相 ‘_’ 组成,命名简洁明确,多个单词用下划线 ‘_’ 隔开。
- 全部小写命名,尽量避免出现大写。
- 字段必须填写描述信息。
- 禁止使用数据库关键字。
- 字段名称一般采用名词或动宾短语。
- 采用字段的名字必须是易于理解,一般不超过三个英文单词。
- 在命名表的列时,不要重复表的名称(如:在 user 表中,出现 user_name 字段)。
- 字段命名使用完整名称。
表的创建实例:
创建一个用户信息表,用来存储用户的如下信息:姓名,手机号码,家庭地址,个人简介,性别,年龄,身份证号。数据库表名可定义为userinfo, 同时增加一个列id 用来作为每一条记录的唯一标识,并设为主键,自加!
mysql> use test; #选择数据库test
mysql> create table userinfo (
id int(11) unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT ‘主键’,
name varchar(64) DEFAULT NULL COMMENT ‘姓名’,
mobile char(11) DEFAULT NULL COMMENT ‘手机号码’,
address varchar(128) DEFAULT NULL COMMENT ‘居住地址’,
description text DEFAULT NULL COMMENT ‘个人简介-不知道具体的范围,不常更新用text’,
sex char(1) DEFAULT NULL COMMENT ‘性别 - 男或女’,
age tinyint unsigned DEFAULT 0 COMMENT ‘年龄’,
idno char(18) DEFAULT NULL COMENT ‘身份证号码’
);
2 表的查询
查看所有的表:
show tables;
查看表创建的详细信息:
show create table class;
查看表的详细信息:
desc class
;
3 表记录的插入
插入数据记录是常见的数据操作,可以显式向表中增加的新的数据记录。在MySQL中可以通过“INSERT INTO”语句来实现插入数据记录,该SQL语句可以通过如下4种方式使用:插入完整数据记录、插入部分数据记录、插入多条数据记录和插入JSON结构的数据记录。
3.1 插入完整数据记录
在MySQL中插入完整的数据记录可通过SQL语句INSERT来实现,其语法形式如下:
INSERT INTO tablename(field1, field2, field3, ..., fieldn) VALUES(value1, value2, value3, ..., valuen);
可以缩写为:
INSERT INTO tablename VALUES(value1, value2, value3, ..., valuen);
参数:tablename表示所要插入完整记录的表名,参数fieldn表示表中的字段名字,参数valuen表示所 要插入的数值,并且参数fieldn与参数valuen一一对应。
mysql> create database school; #创建数据库school
mysql> use school; #选择数据库school
mysql> create table class(id int, name varchar(128) UNIQUE, teacher varchar(64)); #创建表class, 并建立包含id,teacher字段的多列索引
mysql> show create table class; #查看表定义
mysql> insert into class(id, name, teacher) values(1, '一班', 'Martin'); # 插入完整记录
mysql> insert into class values(2, '二班', 'Rock'); # 方式二,完整插入可缩写
3.2 插入部分数据记录
语法形式:
INSERT INTO tablename(field1, field2, field3, ..., fieldn) VALUES(value1, value2, value3, ..., valuen);
注意: 如果域没有设定默认值,也没有设定为自增长,则插入记录时必须插入值。
mysql> create database school; #创建数据库school
mysql> use school; #选择数据库school
mysql> create table class(id int UNIQUE AUTO_INCREMENT, name varchar(128) UNIQUE, teacher varchar(64)); #创建表class,指定id 字段自增长
mysql> show create table class; #查看表定义
mysql> insert into class(id, name, teacher) values(1, '一班', 'Martin'); # 插入完整记录
mysql> insert into class (name, teacher)values('二班', 'Rock'); # 插入部分记录
3.3 插入多条数据记录
语法形式:
INSERT INTO tablename(field1, field2, field3, ..., fieldn)
VALUES(value11, value12, value13, ..., value1n),
(value21, value22, value23, ..., value2n),
... ....
(valuen1, valuen2, valuen3, ..., valuenn);
举例:
mysql> create database school; #创建数据库school
mysql> use school; #选择数据库school
mysql> create table class(id int UNIQUE AUTO_INCREMENT, name varchar(128) UNIQUE, teacher varchar(64)); #创建表class,指定id 字段自增长
mysql> show create table class; #查看表定义
mysql> insert into class(id, name, teacher) values(1, '一班', 'Martin'),(2,'二班', 'Rock'),(3, '三班', 'Janny'); # 插入多条记录
4 表记录的更新
更新数据记录是数据操作中常见的操作,可以更新表中已经存在数据记录中的值。在MySQL中可以通过UPDATE语句来实现更新数据记录,该SQL语句可以通过如下几种方式使用:更新特定数据记录、更新所有数据记录、更新JSON结构的数据记录。
4.1 更新特定数据记录
在MySQL中更新特定数据记录可通过SQL语句UPDATE来实现,其语法形式如下:
UPDATE tablename SET field1 = value1, field2 = value2, field3 = value3, ..., fieldn = valuen)
WHERE CONDITION; # 或
UPDATE tablename SET field1 = value1, field2 = value2, field3 = value3, ..., fieldn = valuen) ;
在上述语句中,参数tablename表示所要更新数据记录的表名,参数field表示表中所要更新数值的字段名字,参数valuen表示更新后的数值,参数CONDITION表示满足表tablename中的所有数据记录,或不使用关键字WHERE语句。
举例:
mysql> create database school; #创建数据库school
mysql> use school; #选择数据库school
mysql> create table class(id int UNIQUE AUTO_INCREMENT, name varchar(128) UNIQUE, teacher varchar(64)); #创建表class,指定id 字段自增长
mysql> insert into class(id, name, teacher) values(1, '一班', 'Martin'),(2,'二班', 'Rock'),(3, '三班', 'Janny'); # 插入多条记录
mysql> update class set teacher = '如花老师' ; #把所有记录的teacher列改成如花老师
#或
mysql> update class set teacher = '如花老师' where 1=1;
4.2 更新所有数据记录
在MySQL中更新特定数据记录可通过SQL语句UPDATE来实现,其语法形式如下:
UPDATE tablename SET field1 = value1, field2 = value2, field3 = value3, ..., fieldn = valuen)
WHERE CONDITION; # 或
UPDATE tablename SET field1 = value1, field2 = value2, field3 = value3, ..., fieldn = valuen) ;
在上述语句中,参数tablename表示所要更新数据记录的表名,参数field表示表中所要更新数值的字段名字,参数valuen表示更新后的数值,参数CONDITION表示满足表tablename中的所有数据记录,或不使用关键字WHERE语句。
mysql> create database school; #创建数据库school
mysql> use school; #选择数据库school
mysql> create table class(id int UNIQUE AUTO_INCREMENT, name varchar(128) UNIQUE, teacher varchar(64)); #创建表class,指定id 字段自增长
mysql> insert into class(id, name, teacher) values(1, '一班', 'Martin'),(2,'二班', 'Rock'),(3, '三班', 'Janny'); # 插入多条记录
mysql> update class set teacher = '如花老师' ; #把所有记录的teacher列改成如花老师
或
mysql> update class set teacher = '如花老师' where 1=1;
5 表记录的删除
删除数据记录是数据操作中常见的操作,可以删除表中已经存在的数据记录。在MySQL中可以通过DELETE语句来删除数据记录,该SQL语句可以通过以下几种方式使用:删除特定数据记录、删除所有数据记录。
5.1 删除特定数据记录
在MySQL中删除特定数据记录可通过SQL语句DELETE来实现,其语法形式如下:
DELETE FROM tablename WHERE CONDITION;
在上述语句中,参数tablename表示所要删除数据记录的表名,参数CONDITION指定删除满足条件的特定数据记录。
mysql> create database school; #创建数据库school
mysql> use school; #选择数据库school
mysql> create table class(id int UNIQUE AUTO_INCREMENT, name varchar(128) UNIQUE, teacher varchar(64)); #创建表class,指定id 字段自增长
mysql> insert into class(id, name, teacher) values(1, '一班', 'Martin'),(2,'二班', 'Rock'),(3, '三班', 'Janny'); # 插入多条记录
mysql> delete from class where teacher = 'Martin'; #通过teacher字段删除记录 或
mysql> delete from class where id = 1; #通过id 字段删除匹配的记录
5.2 删除所有数据记录
在MySQL中删除所有数据记录同样可通过SQL语句DELETE来实现,其语法形式如下:
DELETE FROM tablename WHERE CONDITION; # 或
DELETE FROM tablename;
在上述语句中,为了删除所有的数据记录,参数CONDITION需要满足表tablename中所有数据记录,如id>0; 或者无关键字WHERE语句。
mysql> create database school; #创建数据库school
mysql> use school; #选择数据库school
mysql> create table class(id int UNIQUE AUTO_INCREMENT, name varchar(128) UNIQUE, teacher varchar(64)); #创建表class,指定id 字段自增长
mysql> insert into class(id, name, teacher) values(1, '一班', 'Martin'),(2,'二班', 'Rock'),(3, '三班', 'Janny'); # 插入多条记录
mysql> delete from class ; #直接删除所有记录 或
mysql> delete from class where id > 0; #通过id 字段删除匹配的所有记录