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
还在更新中,这里只是记录一下学习记录