创建表:
Create table [if not exists] tbl_name (列定义) [表选项]
先分析需要保存的实体数据,拥有哪些属性。这些属性应该如何保存。
例如:班级信息
班级班号,班级开班日期
create table sql_one.sql_class (
class_no varchar(20),
date_start date
);
列定义:
列名 列的数据类型(列属性 约束)
简单的字符串类型: varchar()
日期类型data
Create table [if not exists] tbl_name like old_tbl_name;
Create table [if not exists] tbl_name select 语句;
每当创建一个表,会在数据目录创建对应的文件保存表信息。
数据库是表的容器,
表,必须属于某个数据库
可以通过 .语法,指明数据表所属的数据库
库.表 db_name.table 如果任何的标志符,出现的特殊字符,需要使用反引号包裹。不同的标志符分别包裹。
进行表操作时候,都会指定当前的默认数据库。
user db_name; 只是设定了默认数据库,不会影响操作其他数据库
表名前缀:
为了区分相同逻辑表名的不同应用,给逻辑表名,增加前缀,形成真实表名。
/*学生管理*/
Create table info_student(
Name varchar(20),
Stu_no varchar(20)
);
/*在线考试*/
Create table exam_student(
Name varchar(20),
Stu_no varchar(20),
score int
);
查看:
有哪些表
show tables [like 'pattern'];
eg: show tables like 'exam_%';
其中like pattern 部分,表示只获得那种规则的表名。
其中%称为通配符,表示任意字符的任意个数的组合。
like适用于show databases like 'pattern';
某些表的创建信息
Show create table tbl_name;
查看表结构(描述表结构):
describe tbl_name;
简写:desc tbl_name;
删除表:
drop table tbl_name;
如果一个表名不存在,不能删除,会报错。需要加上条件
drop table if exists tbl_name; 不会报错
修改表:
修改表名
重命名,rename table tbl_name to new_tbl_name; 可以同时针对多个表进行重命名,甚至可以跨数据库。
修改列定义
增加一个新列 add
alter table exam_student add heig int; /*在exam_student表中,添加heig列,类型为int*/
修改一个列的定义 modify 列定义
alter table exam_student modify stu_no varchar(40) ; /*修改stu_no 列属性,改成40 字符长度*/
删除一个列 drop
alter table exam_student drop heigh; /*删除heigh列*/
重命名一个列 change old_colunm 新列定义
alter table exam_student change score fenshu int; /*把原来以后的列修改为新的列*/
修改表选项
更新表结构,alter table。可以提供对表选项和列定义的修改。
alter table tbl_name 新的表选项。
eg: alter table exam_student character set utf8;
Show create table exam_student;