数据查询语言(DQL)从表中获取数据

select  + where (位置)  order by(排序)  group by  haveby

查询用户:select user,host,password from mysql.user;

select user,host,password from mysql.usser order by(排序)   参数 (如user)asc(升序)

select user,host,password from mysql.uer order by (排序) 参数 (如user)desc(反序) 

mysql> select user,host,password from mysql.user order by user asc;

+------+-----------------+----------+

| user | host            | password |

+------+-----------------+----------+

|      | localhost       |          |

|      | master.test.com |          |

| root | localhost       |          |

| root | master.test.com |          |

| root | 127.0.0.1       |          |

+------+-----------------+----------+

5 rows in set (0.00 sec)


mysql> select user,host,password from mysql.user order by user desc;

+------+-----------------+----------+

| user | host            | password |

+------+-----------------+----------+

| root | localhost       |          |

| root | master.test.com |          |

| root | 127.0.0.1       |          |

|      | localhost       |          |

|      | master.test.com |          |

+------+-----------------+----------+

5 rows in set (0.00 sec)


数据操作语言 (DML)

INSERT (插入)    UPDATE (修改,更新)   DELETE(删除)

分别用于处理表中的数据,称为动作查询语言

如删除:delete from user where user="要删除的用户名";



事务处理语言(TPL)

数据控制语言(DCL)授权

GRANT  REVOKE 控制用户对表和列进行访问





数据定义语言(DDL) 如创建表,删除表

CREATE DROP





指针控制语言(CCL)



总之SQL语句最常用的分类有3类:

DDL数据定义语言(CREATE,ALTER.DROP)(创建,修改,删除)《运维

DML数据操纵语言(SELECT,INSERT,DELETE,UPDATE)(查询,插入,删除,修改)《开发

DCL数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)(????????)《运维





创建库:create database  库名;  如 

mysql> create database xiaohu;

Query OK, 1 row affected (0.00 sec)


查看库:show databases 如

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| test               |

| xiaohu             |

+--------------------+

4 rows in set (0.00 sec)


查看建库语句:

show  create database 库名\G; 如

mysql> show create database xiaohu\G;

*************************** 1. row ***************************

       Database: xiaohu

Create Database: CREATE DATABASE `xiaohu` /*!40100 DEFAULT CHARACTER SET utf8 */  《提示是用的是utf8字符集

1 row in set (0.00 sec)



那如果要建立不同字符级的数据库如GBK:


mysql> create database qiqi default character set 制定一个字符集 gbk collate  制定调度的一个规则 gbk_chinese_ci;

Query OK, 1 row affected (0.00 sec)


mysql> show create database qiqi\G;

*************************** 1. row ***************************

       Database: qiqi

Create Database: CREATE DATABASE `qiqi` /*!40100 DEFAULT CHARACTER SET gbk */ 《gbk字符集

1 row in set (0.00 sec)


创建一个utf8字符集

mysql> create database  old default character set utf8  collate utf8_general_ci;

Query OK, 1 row affected (0.00 sec)


mysql> show create database old\G;

*************************** 1. row ***************************

       Database: old

Create Database: CREATE DATABASE `old` /*!40100 DEFAULT CHARACTER SET utf8 */ 《utf8

1 row in set (0.00 sec)



GBK 字符 create database qiqi default character set 制定一个字符集 gbk collate  制定调度的一个规则 gbk_chinese_ci;

UTF8 字符  create database  old default character set utf8  collate utf8_general_ci;


提示:字符集不一致是造成乱码的罪魁祸首

提示:如果编译的时候制定了字符集,以后在创建数据库就不需要创建字符集了


企业怎么创建数据库?

1,根据开发的程序确定字符集(建议UTF8)

2,编译的时候制定字符集 如

-ddefault_charet=utf8

-ddefault_collation=utf8_general_ci

然后创建数据库默认即可


3编译的时候没有指定了字符集或者指定了和程序不同的字符集,怎么解决?

那么直接指定数据库创建字符集就可以 如:

create database  old default character set utf8  collate utf8_general_ci


显示数据库:

show databases;

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| old                |

| qiqi               |

| test               |

| xiaohu             |

+--------------------+

6 rows in set (0.00 sec)


如果想显示指定的数据库:

mysql> show databases like '%xiao%';    

+-------------------+

| Database (%xiao%) |

+-------------------+

| xiaohu            |

+-------------------+

1 row in set (0.00 sec)



显示当前的数据库

select database();  类似于linux中的pwd

mysql> select database();

+------------+

| database() |

+------------+

| xiaohu     |

+------------+

1 row in set (0.00 sec) 


删除数据库

drop database 库名 如:

mysql> drop database qiqi;

Query OK, 0 rows affected (0.05 sec)


mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| old                |

| test               |

| xiaohu             |

+--------------------+

5 rows in set (0.00 sec)



连接数据库 相当于linux cd命令

use 库名

mysql> use xiaohu

Database changed


mysql> select database();    查看当前数据库      

+------------+

| database() |

+------------+

| xiaohu     |

+------------+

1 row in set (0.00 sec)

mysql> select version(); 查看当前版本

+------------+

| version()  |

+------------+

| 5.1.55-log |

+------------+

1 row in set (0.00 sec)

mysql> select user();   查看当前用户

+----------------+

| user()         |

+----------------+

| root@localhost |

+----------------+

1 row in set (0.00 sec)


mysql> select now();  查看当前时间

+---------------------+

| now()               |

+---------------------+

| 2016-02-06 04:37:39 |

+---------------------+

1 row in set (0.00 sec)


删除mysql系统的账号:

drop user ‘user’@‘localhost’

如果drop删除不了

delete from mysql.user where user='root' and host='localhost';

flush privileges;刷新权限