- (长度)在创建数据库之后,接下来就要在数据库中创建数据表。所谓创建数据表,指的是在已经创建的数据库中建立新表。
创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。接下来我们介绍一下创建数据表的语法形式。 - 创建数据库表
- MySQL 中,可以使用 CREATE TABLE 语句创建表。其语法格式为:">在 MySQL 中,可以使用 CREATE TABLE 语句创建表。其语法格式为:
- 注意点:使用 CREATE TABLE 创建表时,必须指定以下信息:
- 例:创建表-学生表
- 快速添加一张表
- 创建表后增加
- 查看表的结构和字段信息
- 查看表中数据
- 查看数据表的定义语句
- 修改表名
- 修改表的字段
- 删除表结构
- 删除表的字段
(长度)在创建数据库之后,接下来就要在数据库中创建数据表。所谓创建数据表,指的是在已经创建的数据库中建立新表。
创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。接下来我们介绍一下创建数据表的语法形式。
创建数据库表
在 MySQL 中,可以使用 CREATE TABLE 语句创建表。其语法格式为:
CREATE TABLE [IF not exists] `表名`(`列名称1` 数据类型 (长度),[属性],[索引],[注释],`列名称2` 数据类型 (长度),[属性],[索引],[注释],`列名称3` 数据类型 (长度),[属性],[索引],[注释],)[表类型][字符集设置][注释]
注意点:使用 CREATE TABLE 创建表时,必须指定以下信息:
- 要创建的表的名称不区分大小写,不能使用SQL语言中的关键字,如DROP、ALTER、INSERT等。
- 数据表中每个列(字段)的名称和数据类型,如果创建多个列,要用逗号隔开。
例:创建表-学生表
/*
创建一个学生表
学号int,登录密码varchar(20),姓名,性别varchar(2),出生日期(datetime),家庭住址,email
*/
create table if not exists `t_student6`(
`id`int(4) not null AUTO_INCREMENT comment"学号", --int列类型(长度为4) ,自增,注释学号
`name` varchar(30) not null default "匿名" comment"姓名", -- varchar列类型(字符为30),不能为空,设置默认值为匿名,注释姓名
`pwd` varchar (20) not null default"1234456" comment"密码",
`sex` varchar (2) not null default "女" comment"性别",
`birthday` DATETIME default null comment"出生日期", --DATETIME 时间格式yyyy-mm-dd ,
`address` varchar(100) default null comment"家庭住址", -- 设置默认值为空
`email` varchar (50) default null comment "邮箱",
PRIMARY KEY (`id`) -- 设置`id`为主键,一般一个表只有一个唯一的主键
)engine=innodb default charset=utf8 --设置引擎和设置默认utf8编码,如果不设置utf8,那么插入数据的时候时中文的话会乱码
--注意事项:
1.表名后面要使用英文的()括号括起来,表的名称和字段尽量使用``括起来,以免执行的时候认为是特殊字符然而报错
2.字符串使用需要用英文的单引号或者双引号括起来
3.所有的语句后面加英文的逗号, 最后一个语句不用加
4.PRIMARY KEY 主键,一般一个表只有一个唯一的主键
5.注释 --/**/
6.sql关键字大小写不敏感
快速添加一张表
-- 添加一张表;快速添加,结构和数据跟t_student都是一致
1 | create table t_student2
as
select * from t_student;
-- 添加一张表;快速添加,结构跟t_student都是一致,数据没有
2 | create table t_student3
as
select * from t_student where 1=2;
-- 添加一张表;快速添加,部分列,部分数据
3 | create table t_student4
as
select sno,sname,age from t_student where sno=1;
创建表后增加
增加一列,增加表字段
alter table 表名 add 字段名 数据类型 约束
例:
1 | alter table teacher1 add age int(11)
2 | ALTER TABLE t_student add score DOUBLE(5,3)
增加一列放在最前面
1 | ALTER TABLE 表名 ADD 列名 数据类型 约束 FIRST ;
2 | 例:
3 | ALTER TABLE t_student add score DOUBLE(5,3) FIRST
增加一列放在某字段后面?
1 | ALTER TABLE 表名 ADD 列名 数据类型 约束 AFTER 字段 ;
2 | 例:
3 | ALTER TABLE t_student add score DOUBLE(5,3) AFTER sex
查看表的结构和字段信息
DESC <表名>;
desc t_student;
查看表中数据
SELECT * FROM t_student;
查看数据表的定义语句
show create table 表名;
修改表名
ALTER TABLE 旧表名 RENAME AS 新表名
例:
1 | alter table teacher rename as teacher1;
修改表的字段
修改一列
例1
MODIFY修改列的类型定义,不会修改列的名字
1 | ALTER TABLE 表名 MODIFY 列名 新的数据类型 新的约束
2 | 例:修改数据类型
3 | alter table teacher1 modify age varchar(11)
例2_重命名
CHANGE用来字段重命名,不能修改字段类型和约束
1 | ALTER TALBE 表名 CHANGE 原名 新列名 数据类型 约束
2 | 例:字段重命名
3 | alter table teacher1 change age age1 int(1)
2 | ALTER TALBE 表名 CHANGE 原名1 新列1 新数据类型 新约束
2 | 例:当原列名和新列名相同的时候,指定新的数据类型或约束,就可以用于修改数据类型或约束
3 | alter table t_student6 change emai4 emai4 char(50)
注意:在这句中,数据类型不能省,不然会重命名失败。当原列名和新列名相同的时候,指定新的数据类型或约束,就可以用于修改数据类型或约束。需要注意的是,修改数据类型可能会导致数据丢失,所以要慎重使用
删除表结构
1 | drop table [if exists] 表名
例:-- 删除表(如果存在在删除)
2 | DROP TABLE IF EXISTs t_student5;
删除表的字段
1 | ALTER TABLE 表名 DROP 列名;
2 | 例:
3 | ALTER TABLE t_student drop score ;
