网站首页 > 教程分享 正文
数据库有了后,就可以在库里面建各种数据表了。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。后面也是通过SQL语句和Navicat两种方式进行数据表的创建。
【基本语法】
在MySQL中,可以使用CREATE TABLE语句创建表。其语法格式为:
CREATE TABLE<表名>([表定义选项])[表选项][分区选项];
其中,[表定义选项]的格式为:
<列名1> <类型1> [,…] <列名n> <类型n>
CREATE TABLE命令语法比较多,其主要是由表创建定义(create-definition)、表选项(table-options)和分区选项(partition-options)所组成的。
主要语法及使用说明如下:
- CREATE TABLE:用于创建给定名称的表;
- <表名>:指定要创建表的名称,在CREATE TABLE之后给出,必须符合标识符命名规则。表名称被指定为db_name.tbl_name,以便在特定的数据库中创建表。无论是否有当前数据库,都可以通过这种方式创建。在当前数据库中创建表时,可以省略db-name。
- <表定义选项>:表创建定义,由列名(col_name)、列的定义(column_definition)以及可能的空值说明、完整性约束或表索引组成。
创建一个名字叫test_tb的表格,包括id、name、class、score四列,创建SQL语句如下↓
CREATE TABLE test_tb
( id INT ( 11 ),
NAME VARCHAR ( 25 ),
class INT ( 5 ),
score FLOAT );
在MySQL中可以使用ALTER TABLE语句来改变原有表的结构,例如增加或删减列、更改原有列类型、重新命名列或表等。
语法格式如下:
ALTER TABLE <表名> [修改选项]
修改选项的语法格式如下:
{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名>
| CHARACTER SET <字符集名>
| COLLATE <校对规则名> }
【修改表名】
语法规则如下:
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
TO为可选参数,使用与否均不影响结果。
使用ALTER TABLE将数据test_tb表改名为wangfalin,SQL 语句和运行结果如下所示。
ALTER TABLE test_tb RENAME TO wangfalin
【修改字段名称】
语法规则如下:
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;
- 旧字段名:指修改前的字段名;
- 新字段名:指修改后的字段名;
- 新数据类型:指修改后的数据类型,如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样,但数据类型不能为空。
将class字段名称改为banji,同时将数据类型变为CHAR(10),SQL语句和运行结果如下↓
ALTER TABLE wangfalin
CHANGE class banji CHAR(10);
【删除字段】
语法格式如下:
ALTER TABLE <表名> DROP <字段名>;
其中,“字段名”指需要从表中删除的字段的名称。
删除score字段,语句如下↓
ALTER TABLE wangfalin DROP score;
【删除数据表】
删除表的时候,表的结构和表中所有的数据都会被删除,因此在删除数据表之前最好先备份。
语法格式如下:
DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]
对语法格式的说明如下:
- 表名1, 表名2, 表名3 ...表示要被删除的数据表的名称。DROP TABLE可以同时删除多个表,只要将表名依次写在后面,相互之间用逗号隔开即可。
- IF EXISTS用于在删除数据表之前判断该表是否存在。如果不加IF EXISTS,当数据表不存在时MySQL将提示错误,中断SQL语句的执行;加上IF EXISTS后,当数据表不存在时SQL语句可以顺利执行,但是会发出警告。
DROP TABLE wangfalin;
End
猜你喜欢
- 2024-09-09 SQL Server优化50法(sql server 优化)
- 2024-09-09 SQLServer-高级篇(sqlserver ag)
- 2024-09-09 2022-12-17:订单最多的客户。以下数据,结果输出3。请问sql语句
- 2024-09-09 springboot整合mybatis使用xml实现sql语句的查询配置
- 2024-09-09 Qt的数据库(Driver类、Query类、Model类、View类)
- 2024-09-09 VBA+ADO+SQL语句,小试牛刀。(vba的sql)
- 2024-09-09 MS SQL Server——SQL语句导入导出大全
- 2024-09-09 mysql根据条件执行sql(mysql根据条件查询)
- 2024-09-09 MyBatis3-动态SQL语句(navicat怎么写sql语句)
- 2024-09-09 SQL优化——IN和EXISTS谁的效率更高
你 发表评论:
欢迎- 最近发表
-
- 有了这份900多页的Android面试指南,你离大厂Offer还远吗?
- K2 Blackpearl 流程平台总体功能介绍:常规流程功能
- 零基础安卓开发起步(一)(安卓开发入门视频)
- 教程:让你的安卓像Windows一样实现程序窗口化运行
- Android事件总线还能怎么玩?(事件总线有什么好处)
- Android 面试被问“谈谈架构”,到底要怎样回答才好?
- Android开发工具Parcel和Serialize
- Android 中Notification的运用(notification widget安卓)
- Android退出所有Activity最优雅的方式
- MT管理器-简单实战-去除启动页(mt管理器怎么去除软件弹窗)
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)