数据表操作

创建数据表

普通创建表

基本语法: create table 表名(字段名 字段类型 [字段属性],字段名 字段类型 [字段属性],... ) [表选项];

-- 创建数据表
create table class(
-- 字段名 字段类型
-- 字段与表其实是分不开
name varchar(10)  --最大10个字符
);

mysql_query 跟 mysql_use_result 区别 mysql的use_mysql

红框提示错误:没有选择数据库.

以上错误说明:数据表必须放到对应数据库中,有两种方式:

1.在数据表前加上数据库名字,用英文小数点"."号连接即可,即 数据库.数据表

mysql_query 跟 mysql_use_result 区别 mysql的use_数据库_02

代码演示了在已存在的数据库mydatabase2中创建数据表class.

2. 在创建数据表之前,进入到数据库中即可,使用 use语句

mysql_query 跟 mysql_use_result 区别 mysql的use_数据库_03

以上代码首先使用use语句选择数据库mydatabase2,然后在默认数据库(即mydatabase2数据库)中创建表teacher.

表选项

engine:存储引擎,mysql提供具体数据的方式,默认有一个innodb(5.5以前默认是myisam)

charset:字符集/只对当前自己表有效.(级别比数据库高)

collate:校对集/只对当前自己表有效.(级别比数据库高)

mysql_query 跟 mysql_use_result 区别 mysql的use_学习mysql_04

表选项引擎可选择innodb或者myisam

mysql_query 跟 mysql_use_result 区别 mysql的use_学习mysql_05

复制已有表结构

从已经存在的表复制一份结构(不含数据)

基本语法:create table 新表名 like 数据库.旧表名;

mysql_query 跟 mysql_use_result 区别 mysql的use_mysql_06

显示数据表

每当一张数据表创建,那么就会在对应的数据库下创建一些文件(与存储引擎相关).

mysql_query 跟 mysql_use_result 区别 mysql的use_表名_07

注意:这个结构文件来自于innodb存储引擎.innodb存储引擎所有文件都存储在外部的ibdata文件中.

mysql_query 跟 mysql_use_result 区别 mysql的use_mysql_08

显示所有表

基本语法:show tables;

mysql_query 跟 mysql_use_result 区别 mysql的use_学习mysql_09

匹配显示表

基本语法:show tables like '匹配模式';

mysql_query 跟 mysql_use_result 区别 mysql的use_mysql_10

以上演示show tables和show tables like...的区别

显示表结构:

本质含义:显示表中所有字段信息(名字,类型,属性等)

describe/desc 表名

show columns from 表名

mysql_query 跟 mysql_use_result 区别 mysql的use_字段名_11

显示表创建语句

基本语法:show create table 表名;

mysql_query 跟 mysql_use_result 区别 mysql的use_mysql_12

mysql中有多种语句结束符

;和\g效果相同

\G 字段在左侧竖着 数据在右侧横着.

mysql_query 跟 mysql_use_result 区别 mysql的use_学习mysql_13

设置表属性

表属性就是表选项:engine, charset, collate.

基本语法:alter table 表名 表选项[=]值;

  • 修改已有表的存储引擎: alter table 表名 engine=innodb;
  • 修改已有表的字符集:alter table 表名 charset=utf8;

mysql_query 跟 mysql_use_result 区别 mysql的use_表名_14

注意:如果数据库已经确定,里面有很多数据,不要轻易修改表选项(只有修改字符集影响不大)

修改表结构

修改表名:

rename table 旧表名 to 新表名;

mysql_query 跟 mysql_use_result 区别 mysql的use_表名_15

修改表选项:

alter table 表名 表选项[=]值;

新增字段:

alter table 表名 add [column] 新字段名 列类型 [列属性] [位置 first/after 字段名]

mysql_query 跟 mysql_use_result 区别 mysql的use_字段名_16

字段位置:first:第一个字段; after 字段名:放置在某字段名之后.

mysql_query 跟 mysql_use_result 区别 mysql的use_mysql_17

如上代码在首位插入字段id(int类型).

修改字段名

alter table 表名 change 旧字段名 新字段名 字段类型 [列属性] [新位置]

mysql_query 跟 mysql_use_result 区别 mysql的use_数据库_18

如上代码,修改字段名时必须指定字段类型,否则会出错而修改失败!

修改字段类型(属性):

alter table 表名 modify 字段名 新类型 [新属性] [新位置];

mysql_query 跟 mysql_use_result 区别 mysql的use_mysql_19

删除字段:

alter table 表名 drop 字段名;

mysql_query 跟 mysql_use_result 区别 mysql的use_表名_20

删除表

drop table 表名1[,表名2,表名3...];

mysql_query 跟 mysql_use_result 区别 mysql的use_mysql_21