创建按数据表
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name
[ ( [colunm_definition],… | [index_definiton] ) ]
[table_option] [select_statement];
1.语法格式中 [ ] 代表是可选的
2.TEMPORARY:使用该关键字创建某临时表。
3.IF NOT EXISTS:如果数据库中已经存在某个表,再来创建一个同名的表。这时就会出现错误,为了避免错误信息,可以在创建表的前面加上这个判断,只有该表目前不存在时才执行CREATE TABLE操作。
4.table_name:要创建的表名
5.column_defintition:字段的定义,包括指定字段名、数据类型(type)、是否允许空值(NOT NULL)、指定默认值(DEFAULT)、为字段名添加注释(COMMENT)等。
创建student表,字段有:学号(sno,非空,int),姓名(sname,非空,默认为jack,varchar(20)),性别(ssex,非空,char(2)),出生日期(sbirth,date,非空);
#创建student表,字段有:学号(sno,非空,int),姓名(sname,非空,默认为jack,varchar(20)),
性别(ssex,非空,char(2)),出生日期(sbirth,date,非空);
CREATE TABLE student(
sno int NOT NULL COMMENT '学号',
sname VARCHAR(20) NOT NULL COMMENT '姓名' DEFAULT 'jack' ,
ssex CHAR(2) NOT NULL COMMENT '性别',
sbirth date NOT NULL COMMENT '出身日期'
);
可以看见表已经创建成功。
查看数据表的结构
显示数据库中存储所有表的名称:SHOW TABLES table_name
显示表的结构:DESC table_name; SHOW CREATE TABLE table_name; DESCRIBE table_name
显示student表的名称
显示数据库中存储所有表的名称:SHOW TABLES
显示表的结构:
DESC student
DESCRIBE student
SHOW CREATE TABLE student
修改数据表
修改数据表名
ALTER TABLE <旧表名> RENAME [TO] <新表名>
将stuent表名改为stu
将stuent表名改为stu
ALTER TABLE student RENAME TO stu
可以发现表的名称已经发生了变化。
修改数据字段类型
ALTER TABLE (表名) MODIFY <字段名> <数据类型>
将stu中的sname字段的数据类型为varchar(36)
将stu中的sname字段的数据类型为varchar(36)
ALTER TABLE stu MODIFY sname VARCHAR(36)
可以发现sname的字段类型已经发生变化。
修改字段名
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>
将stu表的sno字段名称改为snum,数据类型改为int
将stu表的sno字段名称改为snum,数据类型改为int
ALTER TABLE stu CHANGE sno snum int
可以发现sno的字段名和字段类型已经发生变化。
添加数据表字段
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST |AFTER 已存在字段名]
FIRST为可选参数,作用是将添加的字段设置为表中的第一个字段
AFTER为可选参数,作用是将新添加的字段添加到指定的“已存在的字段”后面
在stu表中添加一个address字段,类型为varchar(15)在ssex字段的后面
在stu表中添加一个address字段,类型为varchar(15)在ssex字段的后面
ALTER TABLE stu add address VARCHAR(15) AFTER ssex
可以看到,stu表中已经添加了了address字段,在ssex字段的后面
删除字段
ALTER TABLE <表名> DROP<字段名>
删除stu表中的 address字段
删除stu表中的 address字段
ALTER TABLE stu DROP address
可以发现stu表中的address字段已经被删除
复制数据表
复制old_table_name到table_name中
CREATE TABLE table_name LIKE old_table_name
CREATE TABLE table_name AS SELECT 字段名1,字段名2,字段名n FROM old_table_name
复制表stu到student表中
复制表stu到student表中
CREATE TABLE student LIKE stu
可以发现student表和stu表是一样的
复制表stu到student表中
复制表stu中的snum和sname字段到student1表中
CREATE TABLE student1 AS SELECT snum sname from stu
可以看见表student1复制了stu中的sum和sname字段
删除数据表
DROP TABLE [IF EXISTS] 表1,表2.....
[IF EXISTS]用以在删除前判断删除的表是否存在,加上该语句后,如果删除的表不存在,sql语句可以执行
但是会报错
删除student表和student1表
删除student表和student1表
DROP TABLE student, student1
可以看到student表和student1表已经被删除