一、SQL语句分类
DDL Data Definition Language 数据定义语言 #定义数据库结构。对数据库本身进行操作,修改。
CREATE:在数据库中创建对象
ALTER:修改数据库结构
DROP:删除对象
RENAME:重命名对象
DML Data Manipulation Language 数据操作护语言 #操作数据库内容
SELECT:从数据库中获取数据
INSERT:向一个表格中插入数据
UPDATE:更新一个表格中的已有数据
DELETE:删除表格中的数据
DCL Data control Language 数据控制语言 #控制用户权限
GRANT:赋予一个用户对数据库或数据表等格指定权限
REVOKE:删除一个用户对数据库或数据表格等的指定权限
TCL Transaction Control 事务相关 # 事务
COMMIT 保存数据操作
SAVEPOINT 为方便
二、SQL增、删、改、查语句
1、数据库
CREATE DATABASE 数据库名;
DROP DATABASE 数据库名;
SHOW DATABASES;
USE 数据库名
SELECT DATABASE();
STATUS
SHOW TABLES;
2、表
CREATE TABLE 表名
(列1 字符类型,
列2 字符类型,
、
、
、
);
DROP TABLE 表名;
ALTER TABLE 表名 RENAME 新表名;
DESC 表名;
ALTER TABLE 表名 ADD 列名 字符类型;
ALTER TABLE 表名 DROP 列名;
ALTER TABLE 表名 MODIFY 列名(已存在) 字符类型;
ALTER TABLE 表名 CHANGE 列名 新列名 字符类型;
3、表中数据
INSERT INTO 表名 VALUES (值1、值2、、、); 或 INSERT INTO 表名(列1、列3) VALUES(值1、值3);
DELETE * FROM 表名称; 或 DELETE FROM 表名 WHERE 列 运算符 值;
UPDATE 表名 SET 列名称=新值 WHERE 列=值;
SELECT * FROM 表名; 或 SELECT 列1,列2,、、、 FROM 表名;
SELECT *或列 FROM 表名 WHERE 列 运算符 值;
SELECT DISTINCT 列 FROM 表名: #删除返回结果重复项
SELECT * FROM 表名 WHERE 条件1 AND或OR 条件2;
SELECT * FROM 表名 ORDER BY 列; #返回结果以该列从小到大排序
SELECT * FROM 表名 ORDER BY 列 DESC; #倒序
三、连接、用户、密码、权限管理
mysql
mysql -u root -p
mysql -P 3306 -h 192.168.100.10 -u root -p
CREATE USER 用户名;
CREATE USER 用户名 IDENTIFIED BY '密码';
DROP USER 用户名;
RENAME USER 用户名 TO 新用户名;
mysqladmin -u root password '密码' #在linux环境中操作,只能修改Mysql管理员root的密码,并root密码为空
mysqladmin -u root -p password '新密码'
SET PASSWORD=PASSWORD('新密码'); #密码可以为空
SET PASSWORD FOR 用户名=PASSWORD('新密码')
UPDATE user SET PASSWORD=PASSWORD('新密码') WHERE user='root';
FLUSH PRIVILEGES'; #刷新
Linux下忘记Mysql的root密码
修改MySQL的登录设置:
# vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
重新启动mysqld
登录并修改MySQL的root密码
将MySQL的登录设置修改回来
#将刚才在[mysqld]的段中加上的skip-grant-tables删除
GRANT ALL PRIVILEGES ON 层级 TO '用户名'@'主机';
GRANT ALL PRIVILEGES ON 层级 TO‘用户名'@'主机' IDENTIFIED BY‘密码';
REVOKE ALL PRIVILEGES FROM 用户名;
四、备份、恢复和字符编码设置
mysqldump -u root -p 数据库名 > 备份文件.sql
mysql -u root -p 数据名 < 备份文件.sql
SHOW CHARACTER SET;
SHOW VARIABLES LIKE'character_set%';
SHOW VARIABLES LIKE'collation';
mysql> create database baiyudb
-> default character
set
utf8
-> default collate utf8_general_ci;
ALTER DATABASE 数据库名 CHARACTER SET utf8 COLLATE utf8_general_ci;
修改Mysql默认编码:
通过修改Mysql配置文件my.cnf是指Mysql默认编码:
[root@localhost ~]
# cat /etc/my.cnf
[client]
default-character-
set
=utf8
[mysql]
default-character-
set
=utf8
[mysqld]
datadir=
/var/lib/mysql
socket=
/var/lib/mysql/mysql
.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-character-
set
=utf8
collation-server=utf8_unicode_ci
init-connect=
'SET NAMES utf8'
character-
set
-server=utf8
[mysqld_safe]
log-error=
/var/log/mysqld
.log
pid-
file
=
/var/run/mysqld/mysqld
.pid
修改后重启Mysql服务