[Mysql] 创建和操纵数据表
1.创建表
创建表的作用在于指定表字段的类型+属性(约束)
创建表使用CREATE TABLE关键字进行操作
语法结构
CREATE TABLE 表名(
字段名 数据类型 属性/约束,
...
字段名 数据类型 属性/约束,
[PRIMARY KEY(字段名)]
);
注意
1.表名和字段名需唯一
2.属性/约束中,默认允许设置NULL
理解NULL
NULL不等于空串,空串是有效值
不要把NULL值与空串相混淆。NULL值是没有值,它不是空串。如果指定''(两个单引号,其间没有字符),这在NOT NULL列中是允许的。空串是一个有效的值,它不是无值。NULL值用关键字NULL而不是空串指定
3.属性/约束中,默认值DEFAULT设置必须是常数,不允许使用函数作为默认值
4.属性/约束AUTO_INCREMENT
每个表只允许一个AUTO_INCREMENT列
CREATE TABLE customers
(
cust_id int NOT NULL AUTO_INCREMENT,
cust_name char(50) NOT NULL,
cust_address char(50) NULL,
cust_city char(50) NULL,
.....
PRIMARY KEY(cust_id)
);
AUTO_INCREMENT告诉Mysql,本列每当增加一行记录时进行自动增量。每次执行一个INSERT操作,Mysql自动对该列增量,给该列赋予下一个可用的值。这样给每个行分配一个唯一的cust_id,从而可以用作主键值
例:在test数据库中创建pet表
CREATE TABLE pet
( id int NOT NULL AUTO_INCREMENT,name VARCHAR(225) NOT NULL,owner VARCHAR(225) DEFAULT 'Odin',species VARCHAR(225),sex CHAR(1),birth DATE,death DATE,PRIMARY KEY(id)
);
结果展示:
在创建新表时,指定的表名必须不存在,否则将出错。如果要防止意外覆盖已有的表,SQL要求首先手动删除该表,然后再重建它,而不是简单地用创建表语句覆盖它。如果仅想在一个表不存在时创建它,应该在表名后给出IF NOT EXISTS,它不检查已有表的模式是否与你打算创建的表模式相匹配。它只是查看表名是否存在,并且仅在表名不存在时创建它
扩展练习案例
问题:创建一个actor表,包含如下列信息
列表 | 类型 | 是否为NULL | 含义 |
actor_id | smallint(5) | NOT NULL | 主键id |
first_name | varchar(45) | NOT NULL | 名字 |
last_name | varchar(45) | NOT NULL | 姓氏 |
last_update | date | NOT NULL | 日期 |
DROP TABLE IF EXISTS actor;
CREATE TABLE actor(actor_id smallint(5) NOT NULL COMMENT'主键id',first_name varchar(45) NOT NULL COMMENT'名字',last_name varchar(45) NOT NULL COMMENT'姓氏',last_update date NOT NULL COMMENT'日期',PRIMARY KEY(actor_id)
);
2.删除表
删除表使用DROP TABLE关键字进行操作,删除的是整个表而不是其内容
语法结构
DROP TABLE 表名;
例:删除test数据库中的pet表
DROP TABLE pet;
结果展示:
删除表没有确认,也不能撤销,执行这条DROP TABLE语句将永久删除指定数据表,因此删除数据表的操作应该谨慎使用,一旦删除了数据表,那么表中的数据将会全部清除,没有备份则无法恢复
在删除数据表的过程中,如果删除一个不存在的表将会产生错误,这时我们可以在删除语句中加入if exists关键字就可避免出错,格式如下所示
DROP TABLE IF EXISTS 数据表名;
3.查看表
1.查看表的创建语句
语法结构
SHOW CREATE TABLE 表名;
例:查看pet表的创建语句
SHOW CREATE TABLE pet;
结果展示:
2.查看当前数据库中所有表
SHOW TABLES;
结果展示:
3.查看表结构
语法结构
DESC 表名;
例:查看pet表结构
DESC pet;
结果展示:
在查看表结构时,也可以只列出某一列的信息,语法格式如下
DESC 数据表名 列名;
例:查看pet数据表中的birth列信息
可以使用show columns命令查看指定数据表的表结构,格式如下所示
SHOW COLUMNS FROM 数据库名.数据表名;
例:查看数据表pet的表结构
4.复制表
语法结构
CREATE TABLE 表名
AS
目标二维表;
注意
1.表名要唯一
2.目标二维表
(1)任何形式的SELECT语句
(2)表结构由SELECT字段决定
(3)表记录由WHERE条件决定
案例1:复制pet表至表pet1
案例2:复制pet表的id/name/owner列至表pet3,使pet3表中的id列值添加前缀'T',其余列与pet表一模一样
补充练习案例:创建一个actor_name表
数据导入
drop table if exists actor;
CREATE TABLE actor (actor_id smallint(5) NOT NULL PRIMARY KEY,first_name varchar(45) NOT NULL,last_name varchar(45) NOT NULL,last_update datetime NOT NULL);
insert into actor values ('1', 'PENELOPE', 'GUINESS', '2006-02-15 12:34:33'), ('2', 'NICK', 'WAHLBERG', '2006-02-15 12:34:33');
actor表
问题:创建一个actor_name表,并且将actor表中的所有first_name以及last_name导入该表
CREATE TABLE actor_name
AS
SELECT first_name, last_name FROM actor;
结果展示:acotr_name表
5.重命名表
重命名表使用RENAME TABLE关键字进行操作
语法结构
RENAME TABLE 表名1 TO 新表名1,表名2 TO 新表名2...;
可批量,从左往右依次执行;可连续执行
test数据库中总共有三张数据表:pet表、pet2表、pet3表
使用RENAME TABLE语句可以重命名一个表
案例1:将pet表重命名为new_pet1表
RENAME TABLE pet TO new_pet1;
结果展示:
使用RENAME TABLE语句对多个表重命名
案例2:将pet2表和pet3表分别重命名为new_pet2表和new_pet3表
6.更新表
更新表使用ALTER TABLE关键字进行操作,在ALTER TABLE之后给出要更改的表名(该表必须存在,否则将出错)
1.修改表名
语法结构
ALTER TABLE 原表名 RENAME TO 新表名;
例子:将new_pet1表更名为pet1表
2.添加字段
必须明确其数据类型
语法结构
ALTER TABLE 表名 ADD 列名 类型;
例子:在pet1数据表中增加新字段'country',取默认值'China'
ALTER TABLE pet1 ADD country varchar(20) DEFAULT'China';
结果展示:
扩展练习案例:在last_update后面新增加一列名字为create_date
数据导入
drop table if exists actor;
CREATE TABLE actor (actor_id smallint(5) NOT NULL PRIMARY KEY,first_name varchar(45) NOT NULL,last_name varchar(45) NOT NULL,last_update datetime NOT NULL);
actor表
问题:在last_update后面新增加一列名字为create_date, 类型为datetime, NOT NULL,默认值为'2020-10-01 00:00:00'
ALTER TABLE actor
ADD(create_date datetime NOT NULL DEFAULT '2020-10-01 00:00:00');
结果展示:
3.修改字段:不重命名版
语法结构
ALTER TABLE 表名 MODIFY 列名 类型及约束;
例子:将pet1表中的country字段的默认值'China'修改为'New Zealand'
ALTER TABLE pet1 MODIFY country varchar(20) DEFAULT'New Zealand';
结果展示:
4.修改字段:重命名版
语法结构
ALTER TABLE 表名 CHANGE 原名 新名 类型及约束;
例子:将pet1表中的name/country列分别更名为'pet_name'和'pet_country',并将原先country列的数据类型'varchar(20)'更改为'varchar(225)'
ALTER TABLE pet1 CHANGE name pet_name varchar(225) NOT NULL, CHANGE country pet_country varchar(225) DEFAULT 'New Zealand';
结果展示:
5.删除字段
语法结构
ALTER TABLE 表名 DROP 列名;
例子:删除pet1表中的owner列与pet_country列
ALTER TABLE pet1 DROP owner, DROP pet_country;
结果展示:
小心使用ALTER TABLE
使用ALTER TABLE要极为小心,应该在进行改动前做一个完整的备份(模式和数据的备份),数据库表的更改不能撤销,如果增加了不需要的列,可能不能删除它们。类似地,如果删除了不应该删除的列,可能会丢失该列中的所有数据
[Mysql] 创建和操纵数据表相关推荐
- MySQL——创建数据库和数据表
创建数据库和数据表 (1)创建数据库相关代码 create database test; #创建数据库 show create database test; #查看创建好的test数据库 show d ...
- mysql 收藏表如何建立_代码收藏系列--mysql创建数据库、数据表、函数、存储过程命令...
创建mysql数据库 CREATE DATABASE IF NOT EXISTS `database_name` DEFAULT CHARSET utf8 COLLATE utf8_general_c ...
- MySQL创建数据库和数据表
文章目录 前言 一.MySQL数据库是什么? 二.使用步骤 1.显示当前数据库 2.创建数据库 3.使用数据库 4.删除数据库 5.表的操作 5.1 显示数据库中的表 5.2 创建表 5.3 删除表 ...
- MySQL创建、更改数据表(CREATE TABLE语句)
< MySQL数据表的基本操作MySQL修改数据表 > 在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列 ...
- 在MySQL中如何用SQL命令创建数据库及数据表
HRELLO 大家好! 上期给大家讲解了,MySQL数据库常用的管理命令.现在,给大家讲解,如何用SQL命令在MySQL中创建一个数据库及数据表. 在学习前,我们首先要了解,SQL命令是什么? SQL ...
- java查询mysql装载bean_jsp与javabean链接mysql数据库并查询数据表的简单实例源码
jsp与javabean链接mysql数据库并查询数据表的简单实例源码.这个简单的实例是给新手学习的,或者一些高手临时忘记怎么使用jsp操作mysql数据库时候查找的,包括了建立mysql数据库连接的 ...
- 4/5 MySQL入门总结:数据表(TABLE)操作
数据表操作 数据表(或称表)是数据库最重要的组成部分之一,是其它对象的基础. 行:记录 列:字段 说明 操作 打开数据库 mysql> USE db_name; 查看数据表列表 mysql> ...
- MySQL中快速复制数据表方法汇总
本文将着重介绍两个MySQL命令的组合,它将以原有数据表为基础,创建相同结构和数据的新数据表. 这可以帮助你在开发过程中快速的复制表格作为测试数据,而不必冒险直接操作正在运行 的数据表. 示例如下: ...
- 使用SQL语句创建并管理数据表
数据库创建以后,我们需要创建数据表存储数据,表是一种重要的数据库对象.简单的叙述一下表的概念. 表的概念: 数据表是数据库中一个重要的对象,也是其他对象的基础.一个数据库中可以包含多张表,表是数据的集 ...
最新文章
- SoapUI进行REST请求,POST方法提交到数据库的数据乱码问题
- 找出两个字符串中最大子字符串,如abractyeyt,dgdsaeactyey的最大子串为actyet
- CBNet:物体检测的一种新的组合主干网络结构
- python获取数据库查询的元数据_Python数据库、MySQL存储引擎、使用分区表、更改表结构、获取数据库元数据...
- Hello,Word宏!
- 怎样玩儿转App手游自动化测试?
- 《构建之法》8.9.10
- SQL Server--实体再复习
- 【渝粤教育】 国家开放大学2020年春季 2064管理学基础 参考试题
- Linux安装nginx运行错误,Linux Nginx安装以及可能出现错误
- 模拟电子技术基础:基本放大电路
- 概率导论-马尔可夫相关
- Racket编程指南——17 创造语言
- android批量转换图片格式,批量图片格式转换器
- 大小写字母格式(26个大小写字母格式表)
- 2010-7-31 看电影
- 如何创建Roadmap产品路线图
- 中国EMBA教育培训行业发展规划与投资规模预测报告2021年版
- 特征工程之特征分箱(决策树分箱、卡方分箱、bestks以及评价标准WOE和IV)
- 腾讯云申请免费SSL证书
热门文章
- ROS(七):移动机器人的导航和SLAM(一)
- 电磁场常见名词整理(不断更新中)
- 程序员坐牢会被安排写代码吗?
- 程序员苹果电脑使用入门
- 【译文】四十二种谬误(一)
- 基于Java基础的图书管理系统
- php中 dsn什么意思,网络dsn是什么意思(图文)
- Netty应用:快速了解http各版本的特性 HttpServer的小demo
- python获取cookie文件_Python Cookie 读取和保存方法
- No qualifying bean of type ‘com.bruceliu.mapper.UserMapper‘