Mysql 操作命令 详解
1、 掌握mysql的安装,建库、建表、表的三种基本操作、查询、多表查询、数据库的备份与恢复
2、 MYSQL 服务器的简单维护
3、 mysql+apache+php的环境搭建
我们使用当前MY-SQL的比较新的版本MY SQL 5.0版。首先,如何得到MY SQL 5.0 我们可以从网上下载([url]www.mysql.cn[/url])。
我们来看一下如何进行安装MY SQL支持多平台,也就是说它可以工作在WINDWOS平台上,也可以工作在LINUX平台上,在LINUX下的安装可能会复杂那么一点点,但在WINDOWS下的安装还是很简单的,和咱们平时安装软件没什么两样,下面咱们开始安装:我们拿到的是一个可执行文件,双击Setup.exe文件,开始mysql5.0的安装。先是等待,直到出现下面的欢迎窗口
*********
安装过程略!
********
怎么检测你的mysql正确安装了。那你们是怎么检测 SQL SERVER是不是正确安装的?
Netstat -an
看有没有3306口吧!或者你就去看看你的服务有没有启动!
1、 mysql –hlocalhost –uroot –p口令
2、 直接利用开始菜单!开始----程序---mysql5.0
下面的操作一般就是使用标准SQL命令:也就是说你在SQL SERVER里面怎么用,这里就怎么用,但是有的命令也不是完全一样的。有一点点细微的差别!下面咱们就把这个命令简单的过一遍:
my sql 命令的使用:以分号或\g结束,\c取消一行命令,\h帮助
1、 显示数据库:show databases;
2、 建数据库:create database [if not exists] 数据库名;
3、 建数据表: create table [if not exists] 表名 (字段名1 类型。。。。。。。。)
create table student (编号 int auto_increment primary key, 姓名 varchar(10));
注意:设置了自动增长,就要定为主键,如果选择了BIT 类型,0不显示,非0显示为一个特殊符号!
4、 显示数据表:show tables;
5、 删除库: drop database [if exists] 库名;
6、 删除表: drop table [if exists] 表名;
7、 显示表结构: desc 表名
8、 如何修改表结构:增长一个字段; alter table 表名 add 字段名 类型
9、 删除一个字段: alter table 表名 drop 字段名
10、 修改一个字段的属性: alter table 表名modify 字段 新属性
11、 修改主键: 增加一个主键 alter table 表名 add primary key(字段名)
12、 删除一个主键 alter table 表名 drop primary key(字段名)
Insert into 表 (字段表列表) values(字段值),(字段值)。。。。。。
删除,更新和SQL SERVER没有什么区别,不再累述!
14、 删除表: Drop TABLE 表名
15、 表改名: RENAME TABLE 旧表中 TO 新表名 数据库不能改名,但也不是绝对不能改,但改不好会造成里面的数据无法正常读出,后果自负!
16、 库改名: 常用方法是把新库创建出来,然后把旧库里的数据导入进去.
Select 查询:也和SQL SERVER没有什么大差别:
关键是大家要熟练运用各种运算符,数学运算符比较简单,重点在于字符型运算符LIKE、关系运算符和逻辑运算符
如:查找姓王的记录:Select * FROM YUANGONG Where 姓名 like '王%';
查找姓名中有五的记录:Select * FROM YUANGONG Where 姓名 like '%王%';
查找以王结尾的记录:Select * FROM YUANGONG Where 姓名 like '%王';
其中linit是SQL SERVER没有的。
例如:我想显示第三条到第七条记录
select * from 表名 limit 2,5;
通配符 描述 示例
% 通配零个或多个任意字符
_(下划线) 通配任意一个字符
不再含有 [ ] 不同于SQL SERVER
注意:如果用like发现结果不正确,有可能是编码的问题
利用order by 对记录进行排序
格式:select 字段名列表 from 表名 [where 条件] order by 排序字段1 [asc ] [desc] [排序字段2……]
如:按年龄对yuangong表进行升序排列!
Select * from yuangong order by 年龄 asc 或 select * from yuangong order by 年龄
如:按年龄对yuangong表进行降序排列!
Select * from yuangong order by 年龄 desc
对员工表先按性别升序排列,性别相同的再按年龄从大到小排序
Select * from 员工表 order by 性别 asc,年龄 desc
最大值:max() 最小值 min() 平均值avg()
求和: sum() 汇总: count ()
select 部门,avg(基本工资) as 部门基本工资 from 员工表 group by 部门
Select 部门,avg(基本工资) from 员工表 group 部门 where avg(基本工资)>3000
此句错误。SQL规定在分组中使用条件不能用 Where 而是用 having
Select 部门,avg(基本工资) from 员工表 group by 部门 having avg(基本工资)>3000
一个数据库中的多个表,存在一定的联系,怎么样正常的显示这么表的信息?
现在有三个表:
yg
Name sex age
宋洋 男 20
马冬旭 女 40
Gs
Name title date 单位
宋洋 AD详解 2006-11-10 清华大学
马冬旭 linux 2005-01-01 人民大学
dz
单位 地址
清华大学 五道口
人民大学 黄庄
但是要注意的默认生成的记录总数是两表记录之积
select * from yg,gs;
select * from yg,gs where yg.name=gs.name;
这才是我们想要的记录
第二种方法是用join连接:
内连接
select * from yg join gs on yg.name=gs.name
左外连接
右外连接
但没有全外连接
除了连接,mysql4。0以上的版本还支持UNION运算符,它用来把多个select查询号的输出连接成一个单独的结果集。大多数情况下,这个运算符用来把查询产生的结果集添加到不同的表,同时创建包括所有结果的一个单独表。比如面试的时候问你,有两个表,字段信息一样,让你用一条语句把两个表的信息组合为一个单独的表!
为了说明UNION运算符的使用方法,我们举一个例子:现在有两个表,分别存放的是男同学信息和女同学信息,如果用一个语句将所有同学的信息显示出来!
mysql> select * from nan;
+--------+-------+
| name | score |
+--------+-------+
| 彭聪留 | 80 |
| 费优优 | 81 |
| 曲权 | 82 |
+--------+-------+
3 rows in set (0.00 sec) mysql> select * from nv;
+------+-------+
| name | score |
+------+-------+
| 彭红 | 80 |
| 费红 | 81 |
| 曲红 | 82 |
+------+-------+
3 rows in set (0.00 sec)
+--------+-------+
| name | score |
+--------+-------+
| 彭聪留 | 80 |
| 费优优 | 81 |
| 曲权 | 82 |
| 彭红 | 80 |
| 费红 | 81 |
| 曲红 | 82 |
+--------+-------+
6 rows in set (0.00 sec)
那如果有三个表怎么办?也是一样的操作!
mysql> select * from nan union all select * from nv;
如果面试官又问你,如果想把显示的信息保存到一个表中怎么办?
mysql> create table 表名 select 语句;
备份:
第一种方法: mysqldump
恢复: mysql -h 主机名 –u用户名 –p口令 数据库 <文本文件
备份一个数据库中的两个表或是多个表怎么办?
Mysqldump –h 主机名 –u用户名 –p口令 数据库 表名1 表名2 >文本文件
恢复的时候: mysql –h 主机名 –u用户名 –p 口令 数据库<文本文件
格式: mysqldump –u用户名 -p密码 数据库名>文本文件名
如:C:\test>mysqldump -uroot -p111111 net14 >net14.txt
进行恢复:
C:\test>mysql -u root -p111111 net14<net14.txt
ERROR 1049 (42000): Unknown database 'net14'
报错.说找不到数据库net14;
必须先手工建立一个空的net14数据库,然后才能把数据导进来!
C:\test>mysql -u root -p111111 net14<net14.txt
格式: mysqldump –u用户名 -p密码 -B 数据库1 数据库2 >文本文件名
如: C:\test>mysqldump -uroot -p111111 -B net14 net28 >net1428.txt
然后删除net14和net28再进行恢复
但是要注意:必须一个一个的恢复,不能同时恢复两个:
如: C:\test>mysql -uroot -p111111 -B net14 <net1428.txt
C:\test>mysql -uroot -p111111 -B net28 <net1428.txt
格式: select 语句 into outfile “路径及文件名”;
如: mysql> select * from student into outfile 'c:\\abc1.txt';
Query OK, 13 rows affected (0.00 sec)
注意:
1.路径中的盘符后是两个\\,其中第一个代表转义作用,第二个才是代表根目录.有时写成一个\时不会报错,因此要注意检查备份的正确性;
2.不允许重写文本文件;
恢复方法:
那么怎么恢复呢::
用LOAD DATA来恢复:
格式: load data infile ‘路径及文件名’ into table 表名
如: load data infile 'c:\\student.txt' into table student;
注意:表必须存在.可用delete,清空其中的所有记录 或者用: truncate 表名,只删除记录,不删除结构!
如果恢复出错怎么办?
1. 权限问题.
2. 分界符不匹配!
3. 路径和文件名不对!
如何与其他数据源之间进行数据的导入与导出!
例如:如何将 SQL server 的数据导到mysql中来
1. 先在MS SQL 2000的导入导出工具将数据导出成*.txt文件格式
注意打开backup.txt
观察其中的分隔字符 MS SQL 2000好像是用逗号分隔的
2. 在mysql中利用 load data infile 命令导入
mysql> load data infile 'c:\\sql.txt' into table abc fields terminated by ',';
Query OK, 5 rows affected (0.00 sec)
Records: 5 Deleted: 0 Skipped: 0 Warnings: 0
注意 目标表必须已经存在,并结构要与源表的结构相同!
ACCESS 导到 MYSQL:
1. 先建立一个access文件,保存成文本文件
2. 打开文本文件,再转换一下编码成ansi
3. 建立数据库,导入到mysql中!
mysql> load data infile 'c:\\abc1.txt' into table abc fields terminated by ',';
Query OK, 3 rows affected (0.00 sec)
EXCEL 导到mysql
步骤同上。只是要注意的是:excel默认是以 TAB 分隔的所以应用以下的语句:
mysql> load data infile 'c:\\book1.txt' into table abc fields terminated by '\t';
Mysql 操作命令 详解的更多相关文章
- MySQL 数据类型 详解
MySQL 数据类型 详解 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 My ...
- mysql存储过程详解
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...
- 在telnet下操作memcache详解(操作命令详解)
这篇文章主要介绍了在telnet下操作memcache详解,telnet下的memcache操作命令详解,需要的朋友可以参考下 在定位问题.测试等时候经常需要对memcache的数据进行一些操作,但是 ...
- mysql 存储过程详解 存储过程
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成 ...
- MySQL配置文件详解
MYSQL 配置文件详解 “全局缓存”.“线程缓存”,全局缓存是所有线程共享,线程缓存是每个线程连接上数据时创建一个线程(如果没有设置线程池),假如有200连接.那就是200个线程,如果参数设定值是1 ...
- MySQL存储过程详解 mysql 存储过程
原文地址:MySQL存储过程详解 mysql 存储过程作者:王者佳暮 mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储 ...
- Mysql Explain 详解
Mysql Explain 详解[强烈推荐] Mysql Explain 详解一.语法explain < table_name >例如: explain select * from t3 ...
- MySQL存储过程详解 mysql 存储过程(二)
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL ...
- 【转】adb操作命令详解及大全
adb是什么?:adb的全称为Android Debug Bridge,就是起到调试桥的作用.通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具.a ...
随机推荐
- Silverlight 之 新建项目解析
新建一个silverlight项目(项目名称为SilverlightTest)后,若在" 新建Silverlight应用程序窗口 " 勾选 " 在新网站中承载Silver ...
- core dump相关
linux下生成core dump文件方法及设置 http://www.2cto.com/os/201310/253450.html 在linux平台下,设置core dump文件生成的方法: 1 ...
- strcpy sprintf memcpy 它们之间的区别
strcpy,sprintf,memcpy的区别 strcpy 函数操作的对象是 字符串,完成 从 源字符串 到 目的字符串 的 拷贝 功能. snprintf 函数操作的对象 不限于字符串:虽然目 ...
- 如何在hosts文件添加自己想要解析的网站?及修改hosts的作用
http://union.zhuna.cn/help/144.asp 在Windows2003/XP系统中位于C:\Winnt\System32\Drivers\Etc 目录中,找到host文件. 首 ...
- java面试第十七天
5.0新特性: 泛型: 泛型的形式: <E> <E extends 类型> <E extends Numner&comparator> 类名&接口 ...
- Oracle 删除表中记录 如何释放表及表空间大小
1.查看一个表所占的空间大小:SELECT bytes/1024/1024 ||'MB' TABLE_SIZE ,u.* FROM USER_SEGMENTS U WHERE U.SEGMENT_NA ...
- adb shell settings 控制安卓系统设置(转)
Android4.2的源码android-17\com\android\commands目录下较之前的版本多了一个settings命令,查看其中的SettingsCmd.java文件,末尾有命令的帮助 ...
- C语言位域精解(转)
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可.为了节省存储空间,并使处理简便,C语言又提供了一种数据结构, ...
- 【安卓】给gallery内"控件"挂载事件,滑动后抬起手指时也触发事件(滑动时不应触发)的解决、!
思路: 1.gallery内控件挂载事件(如:onClickListener)的方法类似listview,可直接在baseAdapter.getView内给控件挂载(详细方法百度). 2.貌似没问题, ...
- 列表生成式&生成器表达式
一.列表生成式 def func(): return [lambda x:i*x for i in range(4)] print([j(2) for j in func()]) 结果:[6,6,6, ...