Mysql使用详解

1.mysql安装

ubuntu环境安装mysql-server和mysql开发包,包括mysql头文件和动态库文件,命令如下:

sudo apt-get install mysql-server  # 安装最新版MySQL服务器
sudo apt-get install libmysqlclient-dev # 安装开发包

2.mysql命令

2.1.连接到本机上的MYSQL

命令mysql -u root -p,回车后提示你输密码

2.2连接到远程主机上的MYSQL

 mysql -h主机地址 -u用户名 -p用户密码

2.3 修改密码

mysql -u用户名 -p旧密码 password 新密码

 2.4显示数据库

命令:show databases (注意:最后有个s)
  mysql> show databases;

2.5.修改mysql编码格式

1、修改MYSQL的配置文件:my.ini里面修改default-character-set=gbk

2、代码运行时修改:

①Java代码:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk
   ②PHP代码:header("Content-Type:text/html;charset=gb2312");
   ③C语言代码:int mysql_set_character_set( MYSQL * mysql, char * csname);
函数用于为当前连接设置默认的字符集字符串csname指定了1个有效的字符集名称。连接校对成为字符集的默认校对。该函数的工作方式与SET NAMES语句类似,但它还能设置mysql- > charset的值,从而影响了由mysql_real_escape_string() 设置的字符集。

2.6使用/选择数据库

命令: use <数据库名>

例如:如果school数据库存在,尝试存取它:
     mysql> use school;
执行完就会进入school数据库

 2.7显示mysql版本

 mysql> select version(); 

2.8显示mysql时间/日期

 mysql> select now(); //显示日期

SELECT DAYOFMONTH(CURRENT_DATE); //显示年月日

2.9导入数据库

 source +数据的路径

如  source /home/seven/chat.sql

3.高级命令

sql是DML(数据库管理语言),DDL(数据库定义语言),DCL(数据库控制语言)于一体的数据库语言

3.1DML(数据库管理语言)

 1.create:建立

命令:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);

如:

2.alter:命令

命令:alter table 表名 add字段 类型 其他;   

例如:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0
   mysql> alter table MyClass add passtest int(4) default '0'

3.drop:撤销命令

命令:drop table <表名>

例如:删除表名为 MyClass 的表
   mysql> drop table MyClass;

3.2DDL(数据库定义语言)

insert:插入

命令:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]

例如:往表 MyClass中插入二条记录, 这二条记录表示:编号为1的名为Tom的成绩为96.45, 编号为2 的名为Joan 的成绩为82.99, 编号为3 的名为Wang 的成绩为96.5。
   mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);

注意:insert into每次只能向表中插入一条记录。

delete:删除

命令:delete from 表名 where 表达式

例如:删除表 MyClass中编号为1 的记录
mysql> delete from MyClass where id=1;

update:更新

语法:update 表名 set 字段=新值,… where 条件
   mysql> update MyClass set name='Mary' where id=1;

例子1:单表的MySQL UPDATE语句:
   UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]

例子2:多表的UPDATE语句:
UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition]

UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如果没有WHERE子句,则更新所有的行。如果指定了ORDER BY子句,则按照被指定的顺序对行进行更新。LIMIT子句用于给定一个限值,限制可以被更新的行的数目。

select:查询

3.3DCL(数据库控制语言)

grant:授权格式

grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权

mysql> grant all on *.* to wang@'192.168.1.150' identified by "password";           //all等同于all privilege,其中的privileges可以省略
mysql> grant all privileges on *.* to wang@'192.168.1.%' identified by "123456";    //192.168.1.%表示一个网段
mysql> grant insert,select,update,delete,drop,create,alter on huanqiu.* to wang@'%' identified by "123456";
mysql> flush privileges      //授权之后,不要忘记更新权限表

revoke:回收权限格式

revoke跟grant语法差不多,只需要把关键字 “to” 换成 “from” 即可,并且revoke语句中不需要跟密码设置。
注意:revoke可以回收所有权限,也可以回收部分权限。

mysql> revoke all on *.* from wang@'192.168.1.150';                  
mysql> revoke all privileges on *.* from wang@'192.168.1.%';              
mysql> revoke insert,select,update,delete,drop,create,alter on huanqiu.* from wang@'%';
mysql> flush privileges   

还在更新中,这里只是记录一下学习记录

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值