cmd mysql 数据分析_数据分析:你需要知道的mysql相关知识

全文共分为以下几个部分:

mysql常识--笔试常考题

进入mysql命令行---linux下的进入命令

一个综合实验搞定常用mysql命令---来自于面试题

你看不懂这些命令,且看下文---逐条解释,触类旁通

mysql数据类型--了解

mysql运算符及运算顺序--了解

注意事项---犯错之后的总结

Mysql是一个开放源码的数据库管理系统(DBMS)

数据库管理系统有三个主要组成部分:

数据库:存储数据的地方

数据库管理系统:用于管理数据库的软件

数据库应用程序:为了提高数据库系统的处理能力所使用的管理数据库的软件补充

链接数据库的方式:

操作系统

Python下载接口连接

Cmd连接

ODBC API:给所有的数据库提供一个共同的接口

Java API:是java应用程序连接数据库的一种方法

Mysql版本:

社区版:完全免费,官方不提供技术支持

企业版:付费使用,支持ACID,官方提供电话技术支持

Navicat for mysql

Navicat for mysql 是一套专为mysql设计的高性能数据库管理开发工具,支持大部分mysql最新版本的功能,包括触发器,存储过程,函数,事件,视图,管理用户等

Mysql workbench的优势

Mysql workbench是一款专门为用户提供用于创建,修改,执行,优化SQL的可视化工具,开发人员可以很轻松的管理数据。

用户通常认为mysql workbench是一个mysql数据库ER模型设计的工具。

进入mysql命令行

1、开启mysql服务:

service mysqld start

/init.d/mysqld start

safe_mysql &

2、关闭mysql服务

service mysqld stop

/etc/init.d/mysqld stop

mysqladmin -uroot -p123456 shutdown

3检查端口是否运行

lsof -i:3306

netstat -tunlp|grep 3306

ss -tulnp|grep 3306

4为MySQL设置密码或者修改密码。

方法一

mysqladmin -u root -p123456 password 'abc123' #比较常用

方法二(sql语句修改)

set password=password('abc123');

5登陆MySQL数据库。

单实例登陆

mysql -uroot -p123456

多实例登陆

mysql -uroot -p123456 -S /data/3306/mysql.sock

查看mysql版本:

mysql> select version();

+-----------+

| version() |

+-----------+

| 5.7.23 |

+-----------+

查看mysql当前用户

mysql> select user();

+----------------+

| user() |

+----------------+

| root@localhost |

+----------------+

1 row in set (0.00 sec)

综合实验

实验描述:

1创建数据库Market

2创建表,结构如下

3将c_contact字段插入到c_birth后面

4将c_name字段类型修改为varchar(70);

5将c_contact 字段改名c_phone;

6增加c_gender字段,数据类型char(1);

7将表明修改为customers_info;

8删除字段c_city;

9修改数据表的存储引擎为mysiam

10创建另一表格others关联customers_info

11删除others表格

mysql> create database Market;

mysql> use Market;

mysql> create table customers (c_num int(11) primary key auto_increment,c_name varchar(50),c_contact varchar(50) ,c_city varchar(50) ,c_birth datetime not null );

mysql> desc customers;

+-----------+-------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+-----------+-------------+------+-----+---------+----------------+

| c_num | int(11) | NO | PRI | NULL | auto_increment |

| c_name | varchar(50) | YES | | NULL | |

| c_contact | varchar(50) | YES | | NULL | |

| c_city | varchar(50) | YES | | NULL | |

| c_birth | datetime | NO | | NULL | |

+-----------+-------------+------+-----+---------+----------------+

mysql> alter table customers modify c_contact varchar(50) after c_birth;

mysql> alter table customers modify c_name varchar(70);

mysql> alter table customers change c_contact c_phone varchar(50);

mysql> alter table customers add c_gender char(1);

mysql> alter table customers rename customers_info;

mysql> alter table customers_info drop c_city;

mysql> alter table customers_info engine=myisam;

mysql> create table others(id int(11) ,name varchar(40),foreign key(id) references customers(c_num));

或者mysql> alter table others add foreign key(id) references customers(c_num);

mysql> show create table others\G;

*************************** 1. row ***************************

Table: others

Create Table: CREATE TABLE `others` (

`id` int(11) DEFAULT NULL,

`name` varchar(40) DEFAULT NULL,

KEY `id` (`id`),

CONSTRAINT `others_ibfk_1` FOREIGN KEY (`id`) REFERENCES `customers` (`c_num`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

mysql> drop table customers;

ERROR 3730 (HY000): Cannot drop table 'customers' referenced by a foreign key constraint 'others_ibfk_1' on table 'others'.

报错:因为customers是父表(others表格有外键链接customers,所以不能直接删除父表,需要取消外键约束才能删除父表)

mysql> alter table others drop foreign key others_ibfk_1;

mysql> drop table customers;desc table:查看表结构

show create table others\G;是为了找到系统分配的外键约束名,方便后续删除外键约束。

什么,你看不懂,不急,且看下文:

写法上:先是代码命令行,然后进行解释!

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

| test |

| vastsaasdb |

+--------------------+

6 rows in set (0.00 sec)查看目前mysql中存在的数据库名

mysql> create database test;创建数据库test

mysql> show create database test\G;

*************************** 1. row ***************************

Database: test

Create Database: CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */

1 row in set (0.00 sec)显示创建数据库过程,并显示字符集与存储引擎

Mysql的核心是存储引擎

不同的存储引擎提供不同的存储机制,索引技巧,锁定水平,等功能

在mysql中,不需要在整个服务器中使用同一存储引擎,正对具体的要求,可以对每个表使用不同的存储引擎

mysql> show engines;

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

| Engine | Support | Comment | Transactions | XA | Savepoints |

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |

| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |

| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |

| MyISAM | YES | MyISAM storage engine | NO | NO | NO |

| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |

| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |

| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |

| CSV | YES | CSV storage engine | NO | NO | NO |

| ARCHIVE | YES | Archive storage engine | NO | NO | NO |

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+Yes:表示可以使用

Default:当前默认引擎

mysql> create table db_test4 (id int(11),name varchar(24),deptID int(11), salary float ,primary key(name,deptID));创建联合主键,name字段,deptID都可以作为主键;主键通常非空,唯一

mysql> create table db_test5(id int(11) primary key auto_increment,name varchar(24),deptID int(11),salary float);可以通过为表主键添加auto_increment关键字来实现;默认的初始值是1,每新增一条记录,字段值加1;一个表只有一个auto_increment约束

mysql> insert into db_test5(name,salary) values("lucy",1000),("lura",1200);

mysql> select * from db_test5;

+----+------+--------+--------+

| id | name | deptID | salary |

+----+------+--------+--------+

| 1 | lucy | NULL | 1000 |

| 2 | lura | NULL | 1200 |

+----+------+--------+--------+给表db_test5中的name,salary字段添加两条记录;

mysql> create table db_test5(id int(11) primary key auto_increment,name varchar(24),deptID int(11),salary float)auto_increment=100;

mysql> set auto_increment_increment=40;可以设置自增长序列的初始值为100;设置步长40

mysql> alter table db_test rename db_test1;修改表名用rename

mysql> alter table db_test1 modify name varchar(26);

mysql> alter table db_test1 modify name int(10);修改字段数据类型用modify,可以从varchar转变为int

mysql> alter table db_test1 change deptID loc varchar(20);同时修改字段名和字段类型用change

Alter table change

mysql> alter table db_test1 add column1 varchar(10) not null;

mysql> desc db_test1;

+---------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+---------+-------------+------+-----+---------+-------+

| id | int(11) | YES | | NULL | |

| name | int(10) | YES | | NULL | |

| loc | varchar(20) | YES | | NULL | |

| salary | float | YES | | NULL | |

| column1 | varchar(10) | NO | | NULL | |

+---------+-------------+------+-----+---------+-------+添加字段用add,默认排在最后一行

mysql> alter table db_test1 add column2 int(11) first;

mysql> desc db_test1;

+---------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+---------+-------------+------+-----+---------+-------+

| column2 | int(11) | YES | | NULL | |

| id | int(11) | YES | | NULL | |

| name | int(10) | YES | | NULL | |

| loc | varchar(20) | YES | | NULL | |

| salary | float | YES | | NULL | |

| column1 | varchar(10) | NO | | NULL | |

+---------+-------------+------+-----+---------+-------+添加字段在第一行,需要关键字first

mysql> alter table db_test1 add colimn3 int(11) after name;

mysql> desc db_test1;

+---------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+---------+-------------+------+-----+---------+-------+

| column2 | int(11) | YES | | NULL | |

| id | int(11) | YES | | NULL | |

| name | int(10) | YES | | NULL | |

| colimn3 | int(11) | YES | | NULL | |

| loc | varchar(20) | YES | | NULL | |

| salary | float | YES | | NULL | |

| column1 | varchar(10) | NO | | NULL | |

+---------+-------------+------+-----+---------+-------+在制定列后加上新列,用after关键字,mysql没有before关键字

mysql> alter table db_test1 drop colimn3,column1;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'column1' at line 1删除列,用drop,只能一行行删除!

Mysql数据类型

Mysql中,常见的数据类型如下:

整数类型:int(4字节),float(4字节),double(8字节)

日期时间:year(1字节),time(hh:mi:ss 3字节),date(yyyy-mm-dd 3字节),datetime(yyyy-mm-dd hh24:mi:ss 8字节),timestamp(yyyy-mm-dd hh24:mi:ss 4字节)

字符串:char,varchar,binary,blob,text,set等

二进制类型:bit,binary,blob,longblob

运算符

算术运算符:

加法运算:+

减法运算:-,*,/

取余运算:%

比较运算符:is null 判断一个值是否为null

In

LikeRegexp:正则表达式匹配

逻辑运算符:

not 逻辑非

And 或者&&逻辑与

Or 或者|| 逻辑或

Xor 逻辑异或

注意事项

1、Mysql在进行删除操作时,最好将表中数据备份一次,以防止删除错误,无法回滚。因为数据库的改变是无法撤销的

2、并不是每个表都需要主键,一般的多个表之间进行连接操作时需要用到主键;

3、存储引擎的选择不是完全随意的,父表与子表之间必须有相同的存储引擎;并且只有innodb支持外键;只有两张表都是innodb引擎才能建立外键;

4、外键字段名可以不一致,但是数据类型必须相似,我们一般设置时两字段名一样,数据类型一致;并且添加外键约束必须是表级的,列级不能添加外键约束;

5、添加外键约束两种方式:

创建表时表级添加

创建完之后添加外键约束;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值