6 Mysql SQL语句速记

一、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服务

你可能感兴趣的:(mysql)