MySQL数据库及常用SQL语句
安装MySQL注意两点:
1、配置时,注意选中Include Bin Directory in Windows PATH复选框,这样会使得MySQL的bin目录被包含在Windows的环境变量PATH中,便于安装以后从命令行下执行MySQL命令。
2、避免中文乱码问题,修改MySQL的编码方式,在MySQL的安装目录下找到my.ini文件,打开该文件,将default-character-set=latinl修改为default-character-set=utf8(共有两处),然后保存并关闭该文件。
MySQL数据库的常用语法:
1、登录和退出
mysql -h hostname -u username -p (如:mysql -u root -p)
quit
2、显示现有的数据库和表信息
show databases; 查看数据库
use dbname; 选择数据库
show tables; 查看当前数据库中的表
show tables from dbname; 若查看的数据库不是当前使用的数据库,仅仅显示当前数据库中的表的名称
desc tablename; 查看某个表的结构
show columns from dbname.tablename; 查看表中的列的信息
3、创建用户和授权
grant privileges [columns] on dbname.tablename
to user_name [identified by 'password']
[with [grant option | limit_options]];
收回某个用户的权限
revoke privileges [(columns)] on dbname.table
from user_name;
查看数据库中现有的用户
select user from mysql.user;
说明:privileges是由逗号分开的一组权限;
columns可以对每一个列指定权限;
dbname.tablename用于指定权限所用于的数据库和表。
user_name是登录MySQL使用的用户名;
password是用户登录时使用的密码;
with grant option如果指定表示允许指定的用户向别人授予自己所拥有的权限;
例如:grant all on *.* to liu identified by 'liu123';
grant all on test.* to wang identified by 'wang123';
revoke all on *.* from wang;
4、修改用户密码(需要有MySQL里的root权限)
use mysql
update user set password = password("new password") WHERE user = 'wang';
flush privileges;
注意:修改密码后要执行flush privileges。
5、设置连接的编码方式
set names gbk;
set names utf8;
6、执行SQL脚本文件
source file_name.sql;
注意:使用此命令时,file_name.sql文件应该在当前路径下。
常用的SQL语法:
创建/删除数据库:
create database [dbname];
drop database [dbname];
例如:create database mytest default character set gbk; 创建数据库并设置编码方式。
创建/删除表:
create table tablename(columns);
drop table tablename;
向表中插入数据:
INSERT [INTO] tablename [(col1, col2, ...)] VALUES (value1, value2, ...);
从表中获取数据:
SELECT [options] items
[INTO file_name]
FROM tables
[WHERE condition]
[GROUP BY group_type] [HAVING condition]
[ORDER BY order_type]
[LIMIT limit_criteria]
补充:SELECT [options] items
FROM tables
JOIN table2 ON condition2
JOIN table3 ON condition3
[WHERE condition]
SELECT语句中使用的聚合函数:AVG、COUNT、MAX、MIN和SUM。
删除表中的数据:
DELETE FROM tablename
[WHERE condition]
[ORDER BY order_type]
[LIMIT number]
更新表中的数据:
UPDATE tablename
SET col1=expression1, ...
[WHERE condition]
[ORDER BY order_type]
[LIMIT number]