MySQL学习笔记----MYSQL常用命令.txt

目录:
一 MySQL命令格式
二 数据库管理
三 数据库表管理、
四 对表 查询/排序/插入/更新/删除数据
五 SQL导入导出数据命令
六 用户管理

----------------------------------------------------------------------------------------------------

一 MySQL命令格式

1 要求mysql服务器告诉你它的版本号和当前日期
  mysql> select version(),current_date();
 
2 多行语句:一条命令可以分成多行输入,直到出现分号“;”为止
  mysql> select
  -> USER()
  -> ,
  -> now()
  ->;
注意中间的逗号和最后的分号的使用方法。

3 一行多命令
  输入如下命令:
  mysql> SELECT USER(); SELECT NOW();
注意中间的分号,命令之间用分号隔开。

4命令的取消
当命令输入错误而又无法改变(多行语句情形)时,只要在分号出现前就可以用 c来取消该条命令
mysql> select
-> user()
-> c
mysql>

 

----------------------------------------------------------------------------------------------------

 

二 数据库管理
 
1 显示当前存在的数据库
  mysql> show databases;
 
2 选择数据库并显示当前选择的数据库
  mysql> USE 数据库名
 
3 显示当前数据库中存在的表
  mysql> SHOW TABLES;

4 创建数据库
  mysql> CREATE DATABASE 数据库名
  注意不同操作系统对大小写的敏感。
 
5 选择你所创建的数据库
  mysql> USE 数据库名
 
6 删除数据库
  mysql> DROP DATABASE 数据库名

 

----------------------------------------------------------------------------------------------------

 

 

三 数据库表管理

 

1 建立数据库表
  mysql> use 数据库名;   //首先要选择一个数据库
  Database changed    
  mysql> create TABLE 数据库表名 (表的内容);
 
2 显示表的结构
  mysql> DESCRIBE 数据库表名;

3 修改表结构与删除表结构
 
   a 修改某个表的字段类型及指定为空或非空
   mysql>ALTER TABLE 表名称 CHANGE 字段名称 字段名称 字段类型 [是否允许非空];
   mysql>ALTER TABLE 表名称 MODIFY 字段名称 字段类型 [是否允许非空];

   b 修改某个表的字段名称及指定为空或非空
   mysql>ALTER TABLE 表名称 CHANGE 字段原名称 字段新名称 字段类型 [是否允许非空];

   c 增加一列:
   mysql> ALTER TABLE 表名称 ADD COLUMN 字段名称 字段类型;
   如在mytable表中增加一列表示是否单身single:
   mysql> ALTER TABLE mytable add column single char(1);

   d 如果要删除某一字段,可用命令:
   mysql>ALTER TABLE 表名称 DROP 字段名;
 
 4 更改表名
   mysql>Alter TABLE 旧表名 RENAME 新表名;
 
 5 将表中记录清空:
   mysql> delete from 表名 [条件];
 
 6 删除表
    mysql> drop table 表1,表2;
   可以删除一个或多个表,小心使用。

 

----------------------------------------------------------------------------------------------------

 

 

四 对表 查询/排序/插入/更新/删除数据

 

 1 查询数据
 
  SELECT 检索关键词 FROM 被检索的表 WHERE 检索条件(可选)
  注: 检索关键词为“ * ”表示选择所有的列。
 
  a 查询所有数据:
  mysql> select * from 表名;
 
  b 选择特定行
 
   例子1:从mytable表查询name为tom的数据
   mysql> select * from mytable where name = "tom";
   +--------+------+------------+------------+
   | name |sex | birth | birthaddr |
   +--------+------+------------+------------+
   | tom|m| 1973-09-02 | usa|
   +--------+------+------------+------------+
   1 row in set (0.06 sec)

  
   例子2:上面WHERE的参数指定了检索条件。我们还可以用组合条件来进行查询:
   mysql> SELECT * FROM mytable WHERE sex = "f" AND birthaddr = "china";
   +--------+------+------------+------------+
   | name |sex | birth | birthaddr |
   +--------+------+------------+------------+
   | abccs |f| 1977-07-07 | china |
   +--------+------+------------+------------+
   1 row in set (0.06 sec)

  c 选择特定列
  
    例子1: 查看表中的所有人的姓名,则可以这样操作:
    mysql> SELECT name FROM mytable;
    +----------+
    | name |
    +----------+
    | abccs |
    | mary |
    | tom |
    +----------+
    3 row in set (0.00 sec)

    例子2:如果想列出姓名和性别两列,则可以用逗号将关键词name和birth分开:
    myaql> select name,birth from mytable;

  d 多表查询
 
    现在我们有了两个表: mytable 和 title。利用这两个表我们可以进行组合查询:
    例如我们要查询作者abccs的姓名、性别、文章:
    mysql> SELECT name,sex,title FROM mytable,title
        -> WHERE name=writer AND name='abccs';
    +-------+------+-------+
 | name | sex | title |
 +-------+------+-------+
 | abccs | f| a1|
 | abccs | f| a2|
 +-------+------+-------+

 上面例子中,由于作者姓名、性别、文章记录在两个不同表内,因此必须使用组合来进行查询。必须要指定一个表中的记录如何与其它表中的记录进行匹配。
 注意:如果第二个表title中的writer列也取名为name(与mytable表中的name列相同)而不是writer时,就必须用mytable.name和title.name表示,以示区别。

 再举一个例子,用于查询文章a2的作者、出生地和出生日期:
 mysql> select title,writer,birthaddr,birth from mytable,title
        -> where mytable.name=title.writer and title='a2';
 +-------+--------+-----------+------------+
 | title | writer | birthaddr | birth |
 +-------+--------+-----------+------------+
 | a2| abccs | china | 1977-07-07 |
 +-------+--------+-----------+------------+

 2 排序与计数
  
   a 对行进行排序
  
    例子1:我们可以对表中的记录按生日大小进行排序:
    mysql> SELECT name, birth FROM mytable ORDER BY birth;
 +----------+------------+
 | name | birth |
 +----------+------------+
 | tom | 1973-09-02 |
 | abccs| 1977-07-07 |
 | mary | 1978-12-12 |
 +----------+------------+
 3 row in set (0.00 sec)
   
    例子2:我们可以用DESC来进行逆序排序:
 mysql> SELECT name, birth FROM mytable ORDER BY birth DESC;
 +----------+------------+
 | name | birth |
 +----------+------------+
 | mary | 1978-12-12 |
 | abccs| 1977-07-07 |
 | tom | 1973-09-02 |
 +----------+------------+
 3 row in set (0.00 sec)


   b 行计数
  
    例子1:数据库经常要统计一些数据,如表中员工的数目,我们就要用到行计数函数COUNT()。
    COUNT()函数用于对非NULL结果的记录进行计数:
 mysql> SELECT COUNT(*) FROM mytable;
 +----------+
 | COUNT(*) |
 +----------+
 |3 |
 +----------+
 1 row in set (0.06 sec)

 例子2:员工中男女数量:
 mysql> SELECT sex, COUNT(*) FROM mytable GROUP BY sex;
 +------+----------+
 | sex | COUNT(*) |
 +------+----------+
 | f|2 |
 | m|1 |
 +------+----------+
 2 row in set (0.00 sec)

 注意我们使用了GROUP BY对SEX进行了分组。


 3 插入数据
 
  首先打开数据库
 
  a 加入一条新记录:INSERT INTO 表名[(列名)] VALUES (对应内容)
 
    例子1:往mytable表(表的结构为:name varchar(20),sex char(1), birth date, deathaddr  varchar(20) )加入一条记录,添加时需要注意一一对应
    mysql> insert into mytable values ('abccs','f','1977-07-07','china');
 
    例子2:mysql> insert into mytable(name,sex) values ('abccs','f');


  b 用文本方式将数据装入一个数据库表 :LOAD DATA LOCAl INFILE "文本文件名(包括路径)" INTO TABLE  表名
    本数据应符合的格式:字段数据之间用tab键隔开,null值用来代替
 
   例子:
   创建一个文本文件“mysql.txt”,每行包含一个记录,用定位符(tab)把值分开,并且以在
   CREATE TABLE语句中列出的列次序给出,例如:
  
   abccs f 1977-07-07 china  
   mary f 1978-12-12 usa
   tom m 1970-09-02 usa

   假如你的mytable.txt放在D盘,使用下面命令将文本文件“mytable.txt”装载到mytable表中:
   mysql> LOAD DATA LOCAL INFILE "d:/mytable.txt" INTO TABLE mytable;
   
   
 4 更新/修正表数据
   UPDATE 表名 SET 列名= 新值 WHERE 条件
   例子:
   假如tom的出生日期有错误,应该是1973-09-02,则可以用update语句来修正:
   mysql> update mytable set birth = "1973-09-02" where name = "tom";

 5  删除数据
    DELETE FROM 表名 WHERE 条件
  
   例子:
   用如下命令删除表中的一条记录:
   mysql> delete from mytable where name='abc';
   DELETE从mytable表中删除满足由where给出的条件的一条记录。
   
 
 

----------------------------------------------------------------------------------------------------

 

五 SQL导入导出数据命令

 

1  数据导出
   数据导出主要有以下几种方法:
  (1) 使用select into outfile 'filename'语句
  (2) 使用mysqldump实用程序

  (1) 例子:我们有一个库为phptest,其中有一个表为driver。现在要把driver卸成文件。执行命令:
       
      mysql> use phptest;
      Database Changed
      mysql> select * from driver into outfile 'a.txt';
      Query OK, 22 rows affected (0.05 sec)
    
    上面就可以完成将表driver从数据库中卸到a.txt文件中。注意文件名要加单引号。那么这个文件在哪
    呢?在mysql目录下有一个data目录,它即是数据库文件所放的地方。每个库在单独占一个子目录,所以
    phptest的目录为c:/mysql/data/phptest(注意:我的mysql安装在c:/mysql下)。好,现在我们进去,a.txt
    就是它。
   
    打开这个文件,可能是:
  
   1 Mika Hakinnen 1
   2 David Coulthard 1
   3 Michael Schumacher 2
   4 Rubens Barrichello 2


   我们可以修改输出文件名的目录,以便放在指定的位置。如'a.txt'可以改成'./a.txt'或'/a.txt','F:/a.txt'。
   其中'./a.txt'放在c:/mysql/data目录下了,
   而'/a.txt'文件则放在c:/目录下了。
   所以select命令认为的当前目录是数据库的存放目录,这里是 c:/mysql/data。
  
   如果你想把表导出到Excel文件中,只需要把 'a.txt' 改成 'a.xls' 即可
  
  
  

   使用select命令还可以指定卸出文件时,字段之间的分隔字符,转义字符,包括字符,及记录行分隔字符。列在下面:
  
   FIELDS
   TERMINATED BY '/t'
   [OPTIONALLY] ENCLOSED BY ''
   ESCAPED BY '//'
   LINES
   TERMINATED BY '/n'
  
  
   TERMINATED 表示字段分隔
   [OPTIONALLY] ENCLOSED 表示字段用什么字符包括起来,如果使用了OPTIONALLY则只有CHAR和VERCHAR 被包括
   ESCAPED 表示当需要转义时用什么作为转义字符
   LINES TERMINATED 表示每行记录之间用什么分隔
    上面列的是缺省值,而且这些项都是可选的,不选则使用缺省值。可以根据需要进行修改。给出一个例
  子如下:
  mysql> select * from driver into outfile 'a.txt' fields terminated by ',' enclosed by '"';
  Query OK, 22 rows affected (0.06 sec)
  
    结果可能如下:
  
  "1","Mika","Hakinnen","1"
  "2","David","Coulthard","1"
  "3","Michael","Schumacher","2"
  "4","Rubens","Barrichello","2"
  ...
  
    可以看到每个字段都用','进行了分隔,且每个字段都用'"'包括了起来。注意,行记录分隔符可以是
  一个字符串,请大家自行测试。不过,如果输出文件在指定目录下如果存在的话就会报错,先删除再测
  试即可。


2 数据导入

  同导出相类似,导入也有两种方法:
 (1) 使用LOAD DATA INFILE 'filename'命令
 (2) 使用mysqlimport实用程序
 
 (1)例子:
 使用load命令:
 load data infile 'driver.txt' into table driver fields terminated by ',' enclosed by '"'; 
  

 

----------------------------------------------------------------------------------------------------

 

 

六 用户管理

 

1 查看用户
 mysql> use mysql;
 Database Changed
 mysql> select * from user;
 注:mysql库中有user表,表包含 host、user、password 及相关权限如update等。
2 创建新用户
有两种方法:
(1) CREATE USER 用户名
 
(2) GRANT 权限列表[(字段列表)] [,类型 [(字段列表)]…]
    ON 数据库名称.表名称
    TO 用户名@域名或IP地址
    [IDENTIFIED BY ‘密码值’][WITH GRANT OPTION]
    [WITH GRANT OPTION]
 
 注:第二种方法创建用户同时,还授予了该用户的权限,设置了该用户相关属性,如密码等.
3 删除用户
 DROP USER 用户名
 
 
4 授予用户权限

 GRANT 权限列表[(字段列表)] [,类型 [(字段列表)]…]
 ON 数据库名称.表名称
 TO 用户名@域名或IP地址
 
5 撤销用户权限
 REVOKE 权限类型 [(字段列表)] [, 权限类型 [(字段列表)]…]
 ON {数据库名称.表名称}
 FROM 用户名@域名或IP地址


 

后记:哈哈哈~~~一周的学习成果!!!花了一个下午整理出来的,虽然很累,但是很满足,很高兴啊!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值