文章目录

  • 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等。
  • 数据表中每个列(字段)的名称和数据类型,如果创建多个列,要用逗号隔开。

列名的命名规范:

  1. 采用26字母和0-9的自然数加上下互相 ‘_’ 组成,命名简洁明确,多个单词用下划线 ‘_’ 隔开。
  2. 全部小写命名,尽量避免出现大写。
  3. 字段必须填写描述信息。
  4. 禁止使用数据库关键字。
  5. 字段名称一般采用名词或动宾短语。
  6. 采用字段的名字必须是易于理解,一般不超过三个英文单词。
  7. 在命名表的列时,不要重复表的名称(如:在 user 表中,出现 user_name 字段)。
  8. 字段命名使用完整名称。

表的创建实例:
创建一个用户信息表,用来存储用户的如下信息:姓名,手机号码,家庭地址,个人简介,性别,年龄,身份证号。数据库表名可定义为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;
  • MySQL挑选语句 mysql选中表_数据库


查看表的详细信息:

  • 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 字段删除匹配的所有记录