【MySQL初学】篇一

1、连接Mysql

mysql -u用户名 -p
键入命令mysql -u root -p, 回车后提示输入对应密码,然后回车即可进入到mysql中了。注意,如果是连接到另外的机器上,则需要加入一个参数-h主机IP



2、授予权限,若所输入用户不存在,则创建该用户。(Mysql里面命令以分号;结束)

grant on命令格式:grant 权限 on 库名.表名 to 用户名@来源地址 [identified by ‘密码’];

如增加一个 cxl 用户,密码为123,让其可以在本机登录,并对所有数据库有查询、插入、修改、删除的权限。


grant语句:用来设置数据库用户的访问权限,当指定的用户不存在时,GRANT语句将会创建新的用户。使用GRANT语句授权的用户记录,会保存到mysql库的user、db、host、tables_priv等表中,无需刷新便立即生效。

权限列表:用于列出授权使用的各种数据库操作,一逗号分隔,如“select,insert,update,delete”使用“all”表示所有权限

库名.表名:用于指定授权数据库的库名和表名,其中可以使用通配符”*“。如”name.*“ 表示授权操作的对象是name库下的所有表

用户名@来源地址: 用于指定授权的用户名称和允许访问的客户机地址,即谁能连接,从哪里连接。来源地址可以是域名、ip,还可以使用通配符”%“,表示某个区域内或网段内所有地址,如”%.ys.com“,”192.168.1.%“。

identified by:用于设置用户连接数据库时所使用的密码,若在新建用户时省略了此项,则密码为空。



grant select,insert,update,delete on *.* to cxl@localhost identified by ‘123’;
如果希望该用户能够在任何机器上登陆Mysql,则将localhost改为"%"。如果你不想cxl有密码,可以再打一个命令将密码去掉。

grant select,insert,update,delete on *.* to cxl@localhost identified by ‘’;


我们还可用通过:

show grants [for 用户名@来源地址];                             查看指定用户的权限,中括号缺省时显示当前用户权限
revoke 权限列表 on 数据库名.表名 from 用户名@来源地址;            撤销指定用户的指定权限




3、 操作数据库(命令中[ ] 表示可选,( )表示需要用括号,< >表示说明

显示数据库列表                                   show databases;
选择某个数据库                                   use <表名>;
显示库中数据表                                   show tables;
显示数据表的结构                                describe <表名>;  或者   show columns from <表名>;
创建库                                          create database <库名>;
删除库                                          drop database <库名>;
创建表                                          create table <表名> (字段列表);
删除表                                          drop table <表名>;





4、操作数据表

1)插入数据:

insert into 表名[(字段1,字段2,···)]  values(字段1的值,字段2的值,···)[,(字段1的值,字段2的值,···)];
注意:insert into每次只能向表中插入一条记录,所以用到多个()来多次插入。


2)查询数据:

select from命令用来查询表中的数据。

select <字段1, 字段2, ...> from < 表名 > where < 表达式 >;

查询所有数据                        select * from <表名>;
查询前2行数据                       select * from <表名> order by id limit 0,2;


select一般配合where使用,以查询更精确更复杂的数据。


3)删除数据

delete from <表名> where <表达式>;

  • 如果没有指定 WHERE 子句,MySQL表中的所有记录将被删除。
  • 你可以在 WHERE 子句中指定任何条件
  • 您可以在单个表中一次性删除记录。

当你想删除数据表中指定的记录时 WHERE 子句是非常有用的。




4)修改数据

update 表名 set 字段名1=字段值1[,字段名2=字段值2]  where 条件表达式;

  • 你可以同时更新一个或多个字段。
  • 你可以在 WHERE 子句中指定任何条件。
  • 你可以在一个单独表中同时更新数据。

当你需要更新数据表中指定行的数据时 WHERE 子句是非常有用的。UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如果没有WHERE子句,则更新所有的行。



5)增加字段

alter table 表名 add 字段 类型;

如:

mysql> ALTER TABLE table_name ADD field_name field_type;


当然也可以删除或修改字段:


修改原字段及其类型

mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;


删除字段

mysql> ALTER TABLE table_name DROP field_name;




6)修改表名

rename table 原表名 to 新表名;
当你执行 RENAME 时,你不能有任何锁定的表或活动的事务。你同样也必须有对原初表的 ALTER 和 DROP 权限,以及对新表的 CREATE 和 INSERT 权限。
如果在多表更名中,MySQL 遭遇到任何错误,它将对所有被更名的表进行倒退更名,将每件事物退回到最初状态。



5、一些常用子句



where 子句


如果我们想在MySQL数据表中读取指定的数据,WHERE 子句是非常有用的。使用主键来作为 WHERE 子句的条件查询是非常快速的。如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据。

  • 你可以在WHERE子句中指定任何条件。
  • 你可以使用AND或者OR指定一个或多个条件。
  • WHERE子句可以运用于SQL的 SELECT,DELETE 或者 UPDATE 命令。
  • WHERE 子句类似于程序语言中的if条件,根据 MySQL 表中的字段值来读取指定的数据。
MySQL的WHERE子句的字符串比较是不区分大小写的。 你可以使用 BINARY 关键字来设定WHERE子句的字符串比较是区分大小写的。



LIKE 子句

WHERE 子句中可以使用等号 (=) 来设定获取数据的条件,如 "runoob_author = 'Sanjay'"。但是有时候我们需要获取 runoob_author 字段含有 "jay" 字符的所有记录,这时我们就需要在 WHERE 子句中使用 SQL LIKE 子句。
  • 你可以使用LIKE子句代替等号(=),如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。
  • LIKE 常与 '%' 或 '_' 一同使用。
  • 你可以使用AND或者OR指定一个或多个条件。
  • 你可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句来指定条件。
搜索以"jay"为结尾的的所有记录:
mysql> SELECT * from runoob_tbl WHERE runoob_author LIKE '%jay';
搜索具有四位字母的记录,且以"jay"结尾:
mysql> SELECT * from runoob_tbl WHERE runoob_author LIKE '_jay';








ORDER BY 子句


order by子句用于排序。
  • 你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
  • 你可以设定多个字段来排序。
  • 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
  • 你可以添加 WHERE...LIKE 子句来设置条件。
mysql> select * from lab.member order by age ASC
将 lab.member 表中的数据按照 age 的升序顺序输出查询结果。





6、数据库的导入与导出

1)导出

1、导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/   mysqldump -uroot -p abc > abc.sql
敲回车后会提示输入密码

2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/   mysqldump -uroot -p -d abc > abc.sql

导出文件就在当前连接 mysql 时的文件目录下。

2)导入

1、首先建空数据库
mysql>create database abc;

2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql

推荐方法二。





7、Mysql 连接的使用


前面我们已经学会了如果在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。

这里我们要学习如何使用 MySQL 的 JOIN 在两个或多个表中查询数据。

可以在SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。



JOIN 按照功能大致分为如下三类:

  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
   
  • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
    
  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
     







  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值