linux操作mysql数据库
1. 创建数据库相关命令: 首先,下载MySQL相关软件包:aptitude install mysql-server/mysql-client MySQL中的root用户类似于Linux下的root用户,拥有最多高的权限,若操作不当会对数据造成严重的危害。因此,针对每一个应用程序创建对应的数据库及操作用户是一个好习惯。 mysql -u root -p + 回车 -u后跟用户名,-p表示需要密码登录,首次进入mysql用root用户(输入root用户账户的密码,这个密码要么是在安装过程中,要么是使用mysqladmin工具获得的。)。若进入失败,原因可能是原始密码未正确配置,可尝试用密码'root'登录。若仍报错,可参考如下解决方法: http://www.cnblogs.com/kerrycode/p/4368312.html http://blog.csdn.net/yangxt/article/details/17200611 mysql的相关安装目录可参考: http://www.linuxidc.com/Linux/2014-10/108644.htm 下面命令尝试可用: mysqladmin -u root -p password + 回车(若之前有密码,则会显示在password之后) Enter password: 输入新密码(不可见) mysql> STATUS(\s) - 列出当前mysql的相关状态信息 mysql> SHOW DATABASES; - 显示数据库列表 mysql> USE DB_name; - 选中数据库DB_name mysql> SHOW TABLES; - 显示DB_name下的TABLES列表 mysql> CREATE DATABASE DB_name; - 创建一个新的数据库,当然,首先你应该以root用户登录,普通用户并没有创建数据库的权利 mysql> GRANT SELECT,INSERT,DELETE,UPDATE ON DB_name TO user_name IDENTIFIED > by 'user_psd'; - 授予新用户user_name对于数据库DB_name的指定权限,登录密码user_psd。该用户拥有的权限:SELECT,INSERT,DELETE,UPDATE mysql DB_name -u user_name -p - 用新创建的用户user_name登录数据库DB_name mysql mytest -u root -p - 用root用户登录数据库DB_name,当我们需要为数据库DB_name创建新表时,需要root用户的权限,如下,创建新表的过程: mysql> CREATE TABLE employees ( - > empid int not null, - 该字段列值非空 -> lastname varchar(30), -> firstname varchar(30), -> salary float, -> primary key (empid)); - 该字段列值唯一,"primary key" 表示该列是表的主键, MySQL将自动索引该列 mysql> SHOW COLUMNS FROM employees; - 显示employees各字段信息(有时我们需要知道表的结构才能确定插入内容的格式) mysql> SHOW CREATE TABLE employees; - 显示表employees的创建过程,同样可以查看其内部结构 mysql> INSERT INTO table VALUES (...); - 向表table插入一条信息,如:mysql> INSERT INTO employees VALUES (1, 'Blum', 'Rich', 25000.00); 若:mysql> INSERT INTO employees VALUES (1, 'Blum', 'Barbara', 45000.00); 则:ERROR 1062 (23000): Duplicate entry '1' for key 1 mysql> DELETE FROM employees WHERE empid = 1; - 删除empid = 1的那条信息 mysql> DELETE FROM employees; - 删除指定数据库表employees的所有项 mysql> SELECT * FROM employees; - 查询表employees的所有字段内容,SELECT为查询命令 mysql> SELECT datafields FROM table; - 查询字段列表datafields指定的内容(个字段间用“,”分割)。常用的三个过滤器修饰符如下: WHERE:显示符合特定条件的数据行子集。如:mysql> SELECT * FROM employees WHERE salary > 40000; ORDER BY:以指定顺序显示数据行。 LIMIT:只显示数据行的一个子集。 E.G. : mysql> SELECT * FROM employees; +-------+----------+-----------+--------+ | empid | lastname | firstname | salary | +-------+----------+-----------+--------+ | 0 | ER | ZHANG | 4500 | | 1 | SAN | ZHANG | 5500 | | 2 | SI | ZHANG | 6500 | | 3 | WU | ZHANG | 7500 | | 4 | LIU | ZHANG | 8500 | | 5 | QI | ZHANG | 9500 | +-------+----------+-----------+--------+ mysql> SELECT lastname, salary FROM employees WHERE salary > 5000 && salary < 8000; +----------+--------+ | lastname | salary | +----------+--------+ | SAN | 5500 | | SI | 6500 | | WU | 7500 | +----------+--------+ mysql> SELECT * FROM employees1 ORDER BY lastname (ASC/DECS); - 按字段lastname排序查询表employees1 mysql> SELECT * FROM employees1 WHERE salary LIKE '6%'; - 限制salary为数字6开头的项,LIKE字句可以代替“=”使用 mysql> exit/quit - 退出数据库软件 2. 新建数据库之后的相关操作: ALTER: mysql> ALTER TABLE table_name ...; - 创建表之后,有时我们需要对表的结构进行修改,就用这个作为命令头部 mysql> ALTER TABLE table_name RENAME (AS) table_new_name; - 表重命名 mysql> ALTER TABLE table_name ADD 列名 列数据类型 [AFTER 插入位置]; - 在表中新增一个字段信息 mysql> ALTER TABLE table_name CHANGE 列名称 列新名称 新数据类型; - 指定列重命名 mysql> ALTER TABLE table_name DROP 列名称; - 删除指定列 DROP: mysql> DROP TABLE table_name; - 删除指定表 mysql> DROP DATABASE database_name; - 删除指定数据库 mysqladmin -u root -p drop database_name; - 同样可以使用mysqladmin命令在mysql软件之外删除指定数据库 UPDATE: +-------+----------+-----------+--------+ | empid | lastname | firstname | salary | +-------+----------+-----------+--------+ +-------+----------+-----------+--------+ | 5 | QI | ZHANG | 9500 | | 5 | QI | ZHANG | 9500 | | 7 | BA | ZAHNG | 9500 | --> | 6 | BA | ZAHNG | 9500 | +-------+----------+-----------+--------+ +-------+----------+-----------+--------+ mysql> UPDATE employees1 -> SET empid = 6 -> WHERE lastname = 'BA'; - 限定条件
3. 数据库表间数据复制:http://www.jb51.net/article/47562.htm 同一数据库表间复制: INSERT (INTO) table1 select * from table2; - 完全复制(mysql测试可用) INSERT (INTO) table1 select distinct * from table2; - 不复制重复纪录(mysql测试不可用) INSERT (INTO) table1 select top 5 * from table2; - 前五条纪录(mysql测试不可用) 跨数据库表间复制: INSERT (INTO) (current.)table1 select * from src_database.table2; - 完全复制 INSERT (INTO) (current.)table1 select distinct * from src_database.table2; - 不复制重复纪录 INSERT (INTO) (current.)table1 select top 5 * from src_database.table2; - 前五条纪录 若table1不存在,则首先应该创建表,并使其结构与src_database结构相同方可copy: CREATE TABLE table1 LIKE (src_database.)table2; - +(src_database.)取决于是否在同一个数据库 INSERT table1 SELECT * FROM (src_database.)table2;
4. 数据库重命名的几种方法:http://www.cnblogs.com/allenhua/p/5393189.html 以方法四为例(mysqldump导出数据再导入):mytest -> mytest1 mysqldump -u root -p mytest > mytest_dump.SQL mysql -u root -p -e "CREATE DATABASE mytest1" mysql -u root -p mytest1 < mytest_dump.SQL mysql -u root -p -e "DROP DATABASE mytest" 5. 数据库用户权限相关: mysql> GRANT ALL PRIVILEGES ON mytest1.* TO test@localhost IDENTIFIED BY 'test'; - 授予用户test对于数据库mytest1的所有权限 mysql> GRANT SELECT, INSERT, DELETE,... ON mytest1.* TO test@localhost IDENTIFIED BY 'test'; - 授予用户test指定权限 mysql> DELETE FROM user WHERE user = 'test'; - 删除用户test mysql> FLUSH PRIVILEGES; - 刷新各用户权限 mysql> select * from user; - 查询所有用户的权利 6. 多表查询: mysql> SELECT salary FROM employees1 -> UNION (ALL) -> SELECT salary FROM employees2; - 合并employees1与employees2两表salary结果,无重复。+(ALL)全列出可重复 +--------+ | salary | +--------+ | 4500 | | 5500 | | 6500 | | 7500 | | 8500 | | 9500 | | 10500 | | 11500 | +--------+ 三种JOIN查询方式:http://www.runoob.com/mysql/mysql-join.html
两个实例数据库结构如下: mysql> SELECT * FROM tcount_tbl; +---------------+--------------+ | runoob_author | runoob_count | +---------------+--------------+ | 菜鸟教程 | 10 | | RUNOOB.COM | 20 | | Google | 22 | +---------------+--------------+ mysql> SELECT * from runoob_tbl; +-----------+---------------+---------------+-----------------+ | runoob_id | runoob_title | runoob_author | submission_date | +-----------+---------------+---------------+-----------------+ | 1 | 学习 PHP | 菜鸟教程 | 2017-04-12 | | 2 | 学习 MySQL | 菜鸟教程 | 2017-04-12 | | 3 | 学习 Java | RUNOOB.COM | 2015-05-01 | | 4 | 学习 Python | RUNOOB.COM | 2016-03-06 | | 5 | 学习 C | FK | 2017-04-05 | +-----------+---------------+---------------+-----------------+ INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录
mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a -> INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author; 等价于: mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a, tcount_tbl b -> WHERE a.runoob_author = b.runoob_author; +-------------+-----------------+----------------+ | a.runoob_id | a.runoob_author | b.runoob_count | +-------------+-----------------+----------------+ --> | 1 | 菜鸟教程 | 10 | --> | 2 | 菜鸟教程 | 10 | | 3 | RUNOOB.COM | 20 | | 4 | RUNOOB.COM | 20 | +-------------+-----------------+----------------+ LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录
mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a -> LEFT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author; +-------------+-----------------+----------------+ | a.runoob_id | a.runoob_author | b.runoob_count | +-------------+-----------------+----------------+ --> | 1 | 菜鸟教程 | 10 | --> | 2 | 菜鸟教程 | 10 | | 3 | RUNOOB.COM | 20 | | 4 | RUNOOB.COM | 20 | | 5 | FK | NULL | +-------------+-----------------+----------------+ RIGHT JOIN(右连接):与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录
mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a -> RIGHT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author; +-------------+-----------------+----------------+ | a.runoob_id | a.runoob_author | b.runoob_count | +-------------+-----------------+----------------+ --> | 1 | 菜鸟教程 | 10 | --> | 2 | 菜鸟教程 | 10 | | 3 | RUNOOB.COM | 20 | | 4 | RUNOOB.COM | 20 | | NULL | NULL | 22 | +-------------+-----------------+----------------+
以上就是良许教程网为各位朋友分享的Linux相关知识。
linux操作mysql数据库相关推荐
- linux 操作mysql数据库总结
2019独角兽企业重金招聘Python工程师标准>>> 1.首先连接到数据库所在的机器 2.使用 "db" 命令连接到MySQL 3.可使用以下命令查看数据库信息 ...
- Linux下Mysql数据库的基础操作
Linux下Mysql数据库的基础操作 一.Mysql数据介绍 二.数据库相关术语介绍 1.数据库相关名词 2.相关术语介绍 三.Mysql数据库的管理 1.创建数据库用户 2.查询用户状态 3.修改 ...
- linux python开发环境sql数据迁移到mysql_linux环境下python怎样操作mysql数据库
展开全部 linux环境下python怎样操作mysql数据库呢?方法如下: 首先在Linux环境下安装mysql-python 1.下载mysql-python 打开终端: cd /usr/loca ...
- mysql5.6.24安装perl,linux下perl操作MySQL数据库(需要安装DBI)
这篇文章主要为大家详细介绍了linux下perl操作MySQL数据库(需要安装DBI),具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编小韵来看看吧!DBI安装:D ...
- linux shell操作mysql,Linux shell操作mysql数据库的方法
摘要 腾兴网为您分享:Linux shell操作mysql数据库的方法,鱼乐贝贝,宜信,嘻嘻动漫,西餐菜谱等软件知识,以及包装效果图,德州人社,evasi0n.com,ios迅雷,民革e家,动态表情, ...
- mysql 多数据库文件_今天突然发现我的Linux下MySQL数据库目录多了好多文件
今天再次重现Blog了,虽然很忙,还是要来写一下Blog的,嘻,首先还是一样先谢谢Sery 今天发现了我的Linux下Mysql数据库目录多了好多Mysql-bin.0000X这些文件,经过自己查找资 ...
- Linux下MySQL数据库主从同步配置
操作系统:CentOS 6.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备篇: 说 ...
- 数据库sql linux,linux安装mysql数据库
linux安装mysql数据库 环境如下: Linux:CentOS release 6.7(Final) 64位 Mysql:mysql-5.6.31-linux-glibc2.5-x86_64.t ...
- ubuntu swift mysql_使用 Swift 3.0 操作 MySQL 数据库
作者:Joe,原文链接,原文日期:2016-09-24 译者:shanks:校对:walkingway:定稿:CMB 如果你阅读过本主其他的 Swift 文章,你会发现我们是 Swift 服务器端开发 ...
最新文章
- RAD Studio XE2/XE3 官方 ISO 下载地址 (2012-09-05更新)
- 手动排除fbiytty和vcxlcph病毒的干扰
- ccxprocess可以禁用么_提效 | 5G时代网站还需要加速么?
- 电脑如何设置终端设置代理_如何设置一个严肃的Kubernetes终端
- 进程间通信之共享内存
- c语言程序与实验系统,C/C ++程序设计学习与实验软件系统v2019 最新版下载_云间下载...
- 触发器创建删除等操作
- 【ACM-ICPC 2018 南京赛区网络预赛】Magical Girl Haze【分层图】
- mysql rpl_mysql5.5 半同步参数rpl_semi_sync_master_timeout 测试解决办法
- matlab程序是什么格式,科学网—Matlab中的P代码文件 - 杨笔锋的博文
- APP专项测试之耗电量测试
- 印度新德里城建_印度语言本地化社区在新德里举行会议
- itext pdf 加页眉和页脚加页数(二)
- java.security.egd 作用
- 【统计理论】关于置信度、置信区间的理解
- ubuntu 20.04 编译Android9.0的android源码
- 护眼灯有必要买贵的吗?央视推荐的护眼灯是哪款?
- java直线绕点旋转_几何画板中怎样使直线绕点旋转
- mootools_在jQuery中实现MooTools的Elements.addEvent
- Codeforces div.2 ICPC M - Moving Both Hands