在 Ubuntu 上安装 MySQL,最简单的方式是在线安装。只需要几行简单的命令:
#安装 MySQL 服务端、核心程序
sudo apt-get install mysql-server
#安装 MySQL 客户端
sudo apt-get install mysql-client
安装结束后,用命令验证是否安装并启动成功:
sudo netstat -tap | grep mysql
此时,可以根据自己的需求,用 gedit 修改 MySQL 的配置文件(my.cnf),使用以下命令:
sudo gedit /etc/mysql/my.cnf
1.建表
create table 表名( 字段一 数据类型 [列属性] , 字段二 数据类型 [列属性], ......... )[表类型][表字符集][注释];
注意:MySQL命令终止符为分号 ; 。
1).表名:
表名可以称被指定为 db_name.tb_name,以便在特定的数据库db_name中创建表,如果是在当前数据库,可以将db_name省略,只是用tb_name。
如果使用mysql中的转义字符`来避免表名和 mysql 本身的关键字冲突时,则应对数据库和表名称分别加`。
例如,`mydb`.`mytbl`是合法的,但`mydb.mytbl` 不合法。
` 是 MySQL 的转义符,用来避免列名或者表名和 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).常用数据类型
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; |
|
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 |
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;