启动mysql服务:
net start mysql +数据库名称
停止mysql服务:
net stop mysql +数据库名称
登陆数据库:
mysql -u用户名 -p密码 -h 远程数据库IP地址或主机名 -P 端口 -D 数据库名(其中密码、端口、数据路名为可选)
说明:
1、用户名是你登录的用户,主机名或者IP地址为可选项,如果是本地连接则不需要
如:mysql -u root -h localhost -p (u指用户名->root,h指主机名->localhost)
2、远程连接需要填写,密码是对应用户的密码
如:mysql -u root -p 123456 -h 192.168.17.108 -P 3306
增加新用户 :
grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”
如增加一个ip为192.168.1.3的主机连接到mysql服务器:
mysql > GRANT ALL PRIVILEGES ON *.* TO "myuser"@"192.168.1.3" IDENTIFIED BY "mypassworld" WITH GRANT OPTION;
mysql > FLUSH PRIVILEGES
如增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为”%”。
显示数据库列表:
show databases;
返回值:返回所有数据库的名称
例1:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| my_sql_demo |
| mysql |
| performance_schema |
| sakila |
| test |
| world |
| yiibaidb |
+--------------------+
8 rows in set (0.00 sec)
显示库中的表:
use mysql;
show tables;
返回值:返回指定数据库中的所有表名
例2:
mysql> use my_sql_demo;
Database changed
mysql> show tables;
+-----------------------+
| Tables_in_my_sql_demo |
+-----------------------+
| gold |
| roleinfo |
| userinfo |
+-----------------------+
3 rows in set (0.00 sec)
显示数据表的结构:
describe 表名; 或desc 表名; 或show columns from 表名;
返回值:返回对应表的数据结构
例3:
mysql> use my_sql_demo;
Database changed
mysql> show columns from gold;
+--------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+------------+------+-----+---------+-------+
| roleId | bigint(8) | NO | PRI | NULL | |
| userId | bigint(20) | YES | | NULL | |
+--------+------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
mysql> describe gold;
+--------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+------------+------+-----+---------+-------+
| roleId | bigint(8) | NO | PRI | NULL | |
| userId | bigint(20) | YES | | NULL | |
+--------+------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
查询表的数据:
select * from 表名;
返回值:返回对应表中的数据
例4:
mysql> select * from gold;
+---------------------+---------------------+
| roleId | userId |
+---------------------+---------------------+
| 5529676068169717607 | 5529676068171749498 |
+---------------------+---------------------+
1 row in set (0.00 sec)
清空表中记录:
delete from 表名;
建库与删库:
create database 库名;
drop database 库名;
例4:
mysql> create database mydemo;
Query OK, 1 row affected (0.00 sec)
mysql> drop database mydemo;
Query OK, 0 rows affected (0.00 sec)
建表:
use 库名;
create table 表名(字段列表);
drop table 表名;
因为建表涉及到数据类型因此不建议通过此方法建表
修改数据表:
1、alter table 表名 add 字段名 类型; (加的列在表的最后面)
2、alter table 表名 add 字段名 类型 after 列名; (把新列加在某列后面)
3、alter table 表名 add 字段名 类型 first; (把新列加在最前面)
mysql> alter table roleinfo add age int(8);
Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc roleinfo;
+----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| roleId | bigint(8) | NO | PRI | NULL | |
| userId | bigint(8) | NO | MUL | NULL | |
| funcelUUid | varchar(128) | NO | MUL | NULL | |
| platformName | varchar(64) | NO | | NULL | |
| channelName | varchar(64) | NO | | NULL | |
| roleName | varchar(64) | NO | MUL | NULL | |
| level | int(4) | NO | | 0 | |
| career | tinyint(1) | NO | | 0 | |
| sex | tinyint(1) | NO | | 0 | |
| camp | tinyint(1) | NO | | 0 | |
| lastOffTime | int(4) | NO | | 0 | |
| mapDataId | int(4) | NO | | 0 | |
| oldMapDataId | int(4) | NO | | 0 | |
| appearance | varchar(512) | YES | | NULL | |
| roledata | longtext | YES | | NULL | |
| createServerId | int(4) | NO | | 0 | |
| createTime | int(4) | NO | | 0 | |
| deleteTime | int(4) | NO | | 0 | |
| changename | tinyint(1) | NO | | 0 | |
| age | int(8) | YES | | NULL | |
+----------------+--------------+------+-----+---------+-------+
20 rows in set (0.01 sec)
修改数据:
update user set name=新值 where
例5:
mysql> update roleinfo set age=8 where roleID = 5529676068169717607
-> ;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
注:where语句值为了确定我们修改的是哪一行,没有where语句时,会更新表中的每一行
设置编码:
set names utf8
导出数据库数据:
1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录。如我输入的命令行:cd D:\Program Files\MySQL\MySQL Server 5.5\bin
2、导出数据库:用户名 -p 密码 数据库名 > 导出的文件名
如:mysqldump -u root -p123456 my_sql_demo >a.sql
3、mysql导出数据库一个表:mysqldump -u 用户名 -p 密码 数据库名 表名> 导出的文件名
如:mysqldump -u root -p123456 my_sql_demo roleinfo >a.sql (结尾没有分号)
4、会看到文件news.sql自动生成到bin文件下
创建一个数据库:
mysql> CREATE DATABASE MYSQLDATA;
选择你所创建的数据库:
mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
导入sql文件命令:(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
删除表:
删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。
mysql>drop table MYTABLE;
清空表:
delete (删除表中的数据):delete 语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存
mysql>delete from MYTABLE;
重命名表名 :
例如,在表MyClass名字更改为YouClass:
mysql> rename table MyClass to YouClass;
修改字段名称及属性:
mysql> alter table test change t_name t_name_new varchar(20);
数据库权限和安全 :
修改密码:需要输入root密码确认,才能修改为mypasswd
mysqladmin -u root -p password mypasswd
备注:
1、命令输入在mysql> 之后
2、命令用分号( ; )或\g结束,也就是若只是按Enter键是不会执行命令的
3、输入help或\h获得帮助,也可以在后面跟上参数以获得特定的命令帮助(如:help select获得select语句的帮助)
4、输入quit或exit退出命令行实用程序
5、必须使用USE 数据库名命令来打开数据库,才是进一步的获取里面的数据