MySQL数据库基本命令学习(2)
程序员文章站
2022-06-01 08:48:51
...
MySQL数据库基本命令学习(2)
创建数据表
>CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据表名
>[create_definition,...][table_options][select_statement]
参数说明
1.TEMPORARY:使用这个关键字表示创建一个临时表
2.IF NOT EXISTS:避免报错,就是查重,
3.create_definition:表的列属性,至少存在一行
4.table_options:表的一些特性参数,多数情况下,不必指定表的选项
5.select_statement:用它可以快速创建表
重点说明
create_definition:每一列定义的具体格式如下:
>col_name type[NOT NULL|NULL][DEFAULT default_value][AUTO_INCREMENT]
> [PRIMARY KEY][reference_definition]
>#col_name:字段名
>#type:字段类型
>#[NOT NULL|NULL]:指定是否允许为空值,一般默认为允许空值,非空时必须指定为NOT NULL
>#[DEFAULT default_value]:默认值
>#[AUTO_INCREMENT]:是否自动编号,每个表只能有一个AUTO_INCREMENT列,且必须为主键
>#[PRIMARY KEY]:表示是否为主键
>#[reference_definition]:为字段添加注释
实例化操作
>use db_admin; #使用db_admin数据库
>create table tb_admin( #表名称为tb_damin
> id int auto_increment primary key, #创建ID列,整型,自动编号,主键
> user varchar(30) not null, #创建user列,固定30字长,非空
> password varchar(30) not null, #同上
> createtime datetime); #创建createtime列,datetime类型
查看表结构
>SHOW [FULL]COLUMNS FROM 数据表名 [FROM 数据库名];
>SHOW [FULL]COLUMNS FROM 数据库名.数据表名;
使用DESCRIBE查看
DESCRIBE 数据表名; #查看整个数据表结构
DESCRIBE 数据表名 列名; #查看数据表某列的结构
修改表结构
ALTER [IGNORE] TABLE 数据表名 alter_spec[,alter_spec]...| table_options
参数说明
1.[IGNORE]:可选项,表示如果出现重复关建行,只执行一行,其他重复行被删除
2.alter_spec子句:用于定义要修改的内容,语法格式如下
>ADD [COLUMN]create_definition [FIRST|AFTER column_name] #添加新字段
>|ADD INDEX [index_name](index_col_name,...) #添加索引名称
>|ADD PRIMARY KEY(index_col_name,...) #添加主键名称
>|ADD UNIQUE[index_name](index_col_name,...) #添加唯一索引
>|ALTER[COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} #修改字段默认值
>|CHANGE [COLUMN]old_col_name create_definition #修改字段名/类型
>|MODIFY [COLUMN] create_definition #修改子句定义字段
>|DROP [COLUMN] col_name #删除字段名称
>|DROP PRIMARY KEY #删除主键名称
>|DROP INDEX index_name #删除索引名称
>|RENAME [AS] new_tbl_name #更改表名
参数说明
create_definition:定义列的数据类型和属性。
[FIRST|AFTER column_name]:指定位于哪个字段的前面或者后面。
[index_name]:指定索引名
(index_col_name,…):指定索引列名
{SET DEFAULT literal | DROP DEFAULT}:为字段设置或删除默认值,literal参数为要设置的默认值
old_col_name:制定要修改的字段名
new_tbl_name:指定新的表名
table_options:制定一些表的特性参数,一般不需要的指定。
实例化操作
>alter table tb_admin add email varchar(50) not null,
>modify user varchar(40);
>#添加一个email的新字段列,并且修改user字段的定义属性
>
>alter table db_admin.tb_usernew1
>change column user username varchar(30) null default null;
>#将数据表tb_usernew1的字段名user重命名为username
>
>alter table tb_admin drop email;
>#删除数据表tb_admin中的email字段
>
>alter table tb_usernew1 rename as tb)userold;
>#将数据表tb_usernew1更名为userold
>
>rename table tb_admin to tb_user;
>#将数据表tb_admin重命名为tb_user
复制表
>CREATE TABLE [IF NOT EXISTS] 数据表名
> {LIKE 源数据表名 |(LIKE 源数据表名)}
实例化操作
>create table tb_usernew
> like tb_user
>#创建一个数据表tb_usernew,结构和tb_user相同
如果想要复制表中的内容:
>create table tb_usernew1
> as select *from tb_user;
删除表
>DROP TABLE [IF EXISTS] 数据表名