mysql 的基础操作

Posted 肉松蛋卷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 的基础操作相关的知识,希望对你有一定的参考价值。

                  有的数据库都有类似的设置,不过mysql用的是`而已。通常用来说明其中的内容是数据库名、表名、字段名,不是关键字。

     例如 select * from table_name where `key` = \'key_name\'; 其中,key是mysql的关键字,列名如果是key的话,就需要用``转义一下。

       扩展:字符串中需要使用\\来将`转义,否则会报错提示语法错误。

        mysql -uUser -pPasswd -e "select * from table_name where \\`key\\` = \'name\';"

2).常用数据类型

       MySQL 数据类型

      https://www.cnblogs.com/-xlp/p/8617760.html

3).列属性

      mysql中的6个列属性:null,not null,default,comment,primary key,unique key,auto_increment

 

 4).实例解析:

 
 

CREATE TABLE `VTD_RESULT` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `version` varchar(50) NOT NULL,

  `date` varchar(50) NOT NULL,

  `scene_name` varchar(100) NOT NULL,

  `value` varchar(100) DEFAULT NULL,

  `createtime` DATETIME DEFAULT CURRENT_TIMESTAMP,

  PRIMARY KEY (`id`)

)ENGINE=InnoDB DEFAULT CHARSET=latin1;

  • 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
  • AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
  • DEFAULT 设置默认值。
  • PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
  • ENGINE 设置存储引擎,CHARSET 设置编码

CREATE TABLE `table_name` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`date` date DEFAULT NULL COMMENT \'日期\',

`hour` tinyint(2) DEFAULT \'0\' COMMENT \'小时\',

PRIMARY KEY (`id`),

UNIQUE KEY `date_hour` (`date`,`hour`)

)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT=\'实时订单数\'

COMMENT添加注释信息

UNIQUE KEY的用途:主要是用来防止数据插入的时候重复的。相关学习:https://www.cnblogs.com/mianbaoshu/p/11821183.html

 

2.添加

    1).规定列名添加数据

        INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value11, value12,...value1N ),( value21, value22,...value2N );

        知识点:1)同时添加多条记录时,用逗号进行分割。

                       2)前边的列与后边的值要一一对应。    

     2).不规定列名进行添加数据:

    INSERT INTO table_name VALUES (value11, value12,...);

           知识点:如果第一列是主键自增(PRINARY KEY AUTO_INCREMENT),则第一列在增加数据的时候,

           可以写为0或者null。对于有默认值的列,添加数据使用默认值时可以使用default来实现。

      3).实例解析

 

操作
命令
结果
建表

create table test_insert(id int auto_increment,

name varchar(10),

value int,

create_time datetime DEFAULT CURRENT_TIMESTAMP,

primary key (id));

成功
按列名添加数据

insert test_insert (name,value) value(\'aa\',\'11\');

insert test_insert (name,value) value(\'bb\',\'22\'),(\'cc\',\'33\');

不按列名添加数据

insert test_insert value(0,\'dd\',55,default);

 

3.更新

        命令:update table_name set key1=value1,key2=value2 where 条件;

 

4.转换

        alter 用于修改修改数据表名或者修改数据表字段

 

建表

create table test_alter(id int auto_increment,

name varchar(10),

value int,

create_time datetime DEFAULT CURRENT_TIMESTAMP,

primary key (id));

成功

 
使用alter与drop 删除字段

删除字段value

alter table test_alter drop value;

1.如果数据表中只剩余一个字段则无法使用DROP来删除字段。

 
使用alter与add 增加字段

新增字段value1

alter table test_alter add value1 int(11);

alter table test_alter add value2 int(11) first;

alter table test_alter add value3 int(11) after name;

alter table test_alter add id int(11) NOT NULL AUTO_INCREMENT primary key first;

 

1.默认增加字段到表字段的末尾

2.使用关键字FIRST (设定位第一列), AFTER 字段名(设定位于某个字段之后)可以指定新增字段的位置。

3.如果你想重置数据表字段的位置就需要先使用 DROP 删除字段然后使用 ADD 来添加字段并设置位置。

 
使用alter与modify修改字段类型

将value1的数据类型由int(11)改为float,并将其放在value3后边

alter table test_alter modify value1 float after value3;

 

1.FIRST 和 AFTER 关键字也可用于MODIFY与CHANGE 子句

 

 
使用alter与change修改字段类型及名称

将value3改为value0,数据类型由int(11)改为float,并将其放在value1后边

alter table test_alter change value3 value0 float after value1;

1. 在 CHANGE 关键字之后,紧跟着的是你要修改的字段名,然后指定新字段名及类型

 
修改表名

将表名由test_alter修改为test_alter_1:

alter table test_alter rename to test_alter_1;

 

 

5.删除

语法

是否删除内容

是否删除定义

是否释放空间

是否删除表结构

注释

drop table table_name

删除

删除

释放

删除

删除后,表不存在

truncate table table_name

删除

不删除

释放

不删除

只清内容,表还存在

delete table table_name

删除

不删除

不释放,用delete删除数据,然后添加,可以看到添加之后id标识不连续

不删除

只清内容,一行一行删数据,效率低

delete table table_name where 条件

根据条件删除数据

不删除

不释放,用delete删除数据,然后添加,可以看到添加之后id标识不连续。

不删除

 

 

6.常用操作

  • 1.建数据库   create database db_name;
  • 2.显示创建表的语句  show create table table_name;
  • 3.查看表结构  DESCRIBE/DESC table_name;
  • 4.查看mysql数据库支持的字符集 SHOW character set或show character set like \'gb%\';
  • 5.创建数据库时修改字符集create database aa default character set utf8mb4;
  • 6.创建与a表相同结构的b表:CREATE TABLE b LIKE a;
  • 7.插入一个查询结果的数据:insert into table2 select * from table1;
  • 8.根据查询结果集,创建一个包含这些数据的新表,CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

       

以上是关于mysql 的基础操作的主要内容,如果未能解决你的问题,请参考以下文章

mysql基础(附具体操作代码)

部分代码片段

linux中怎么查看mysql数据库版本

MySQL表操作过程的基础代码解析

如何在片段中填充列表视图?

VSCode自定义代码片段——git命令操作一个完整流程