创建表
创建表时)后的字段没写,数据库会自动补上,就近用db.opt文件的规则。
engine按数据库默认enginne。
实例1
create table if not exists `users`(
id int comment '用户的id',
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的MD5值',
birthday date comment '生日'
)character set utf8 collate utf8_general_ci engine MyISAM;
发现目录下多了三个文件(MyISAM)一个表对应三个磁盘文件
desc descripte 查看表结构,没有看到comment字段
可以通过历史创建语句查看
命令行格式化输出+\G;
实例二
使用InnoDB的表对应两个磁盘文件。
修改(alter)
增加
增加两列
imag _path为空
构建表的语句也改变了
NULL和""空串有区别
发现有同学名字特别长存不下,对整个表列属性调整
会把后面(comment...都覆盖了)所以修改表结构必须保证,表结构符合要求
删除
只剩最后一列不能删除,要删就只能删除表
改表名
表名已改
改列名(要保留原来属性要加上属性)
change修改时一定要改名字不然会报错(不想改名用modify)
删除表(Drop)
DROP [tempopary] table [if exists] tab1_name[,tb1_name]...
例1
drop table t1,t2;
练习使用sql语句
creat database mall_db_tmp
drop database bin_db;
use bin_db;
create database create_table_DB;
use create_table_DB;
create table if not exists `users`(
id int comment '用户的id',
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的MD5值',
birthday date comment '生日'
)character set utf8 collate utf8_general_ci engine MyISAM;
show tables;
desc users;
insert into users (id,name,password,birthday) values(1,'张三','4321','2000-10-01');
insert into users (id,name,password,birthday) values(2,'李四','12345','2001-01-19');
select * from users ;
show create table users;
create table if not exists `students`(
name varchar(20),
age int,
number varchar(32),
sex char (1)
)engine=InnoDB default charset=utf8;
desc students;
use bin_db;
select * from users;
alter table users add imag_path varchar(128) comment '这是用户的头像' ;
alter table users modify imag_path varchar(128) comment '这是用户的头像' after birthday;
show create table users;
desc users;
alter table users modify name varchar(50) comment '这是新的用户名';
alter table users drop birthday;
alter table users drop imag_path;
alter table users change imag_path path varchar(128) comment '用户头像路径';
alter table users change path mypath varchar(81) comment '用户头像路径';
alter table users rename user_set;