目录
创建表
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype) character set 字符集 collate 校验规则 engine 存储引擎;
说明:
- field 表示列名
- datatype 表示列的类型
- character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
- collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
我们当前在user_db这个数据库中,创建表之前里面只有一个文件
现在,我们在这个数据库中创建一个表
comment是该列的文字说明。最后一行的字符集和校验集可不写,默认继承与数据库
此时会发现这个数据库对应的文件目录里面多了3个文件
再来建一个表
会发现表user1有3个文件,表user2有2个文件,因为存储引擎不同。
建表后面的存储引擎也可不加,配置文件中默认的是InnoDB
查看表
查看当前数据库中有那些表
show tables;
具体查看某一张表的信息
desc 表名
查看指定表的创建语句
show create table 表名;
可在后面加\G,格式化显示,方便查看
此时我们查出来的创建语句与我们创建表时写的语句不太一样,因为mysqld会进行优化
MySQL上会记录用户的所有操作
修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
datatype]...);ALTER TABLE tablename DROP (column);
修改表的名称
这里的to是可以省略的
向user表中插入一些数据
正常要insert into user (字段名称) values ... 表示给某一个字段插入,可省略括号中的内容,表示给全部字段插入
在users表添加一个字段,用于保存图片路径
after birthday表示在birthday这一列后面加上新的一列
插入新字段后,对原来表中的数据没有影响
修改name列,将其长度改成60
修改之前:
修改之后:
会发现,name这一列原本是有comment的,修改时若没加comment就没了。所以,是将新的属性直接覆盖的。
删除password列
将name列修改为xingming
删除表
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...