才开始学习数据库,这篇博客纯粹为SQL基本总结,较为基础,其中一些命令并没有详细介绍,仅仅方便查阅补充。
一、基本概念
MySQL:关系型数据库管理系统(RDBMS),由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。它以体积小、速度快、开放源码等特点与Oracle、SQL Server、DB2和Sybase共同成为市场上五大主流关系数据库。
SQL:结构化查询语言(Structured Query Language),广泛用于关系型数据库的存取、查询等操作。
二、MySQL基本命令
开启服务器:net start MySQL
(请使用管理员权限)
关闭服务器:net stop MySQL
连接MySQL:mysql -h IP -u 用户名 -p 密码
自己使用用户名为root,IP默认为localhost,即本地主机。
退出:quit
关于乱码问题
一般我们在windows下的命令行编码为gbk,MySQL在经过查看后发现对于客户端发过来的数据采用utf8解码,给客户端发送的数据也是utf8,MySQl的编码可以通过命令:
show variables like 'char%'
查看。由于编码的不同我们有两种解决方法。
1. 修改客户端编码,查看
2. 修改MySQL默认编码
在mysql安装目录下,修改my.ini配置文件。改为:
default-character-set=gbk
三、SQL基本操作
主要为下面五方面。
(1)数据类型
一下图片截图自w3school
(2)数据定义
创建数据库:CREATE database name;
删除数据库:DROP database name
创建表:
没有添加约束条件,和主键,仅为简单测试。
CREATE TABLE name (name varchar(20), age int);
查看表:desc tablename
修改表:
ALTER TABLE name ADD (number verchar(11));
ALTER TABLE name RENAME TO newName;
ALTER TABLE name MODIFY 列名 列类型;--修改列类型
(3)数据操纵
insert into tablename (列名,列名)
values ('name','number');--按照列名顺序插入数据,字符用单引号括起来
update tablename set 列名=值 where (条件);--修改值 可以加上判断条件
delete from tablename where (条件);--删除数据
(4)数据查询
单表查询:
SELECT DISTINCT 列名,[列名。。。] from tableName where (条件) group by 列名 order by 列名 DESC;
-- DISTINCT 去除重复行
-- group by:按列名分组
-- order by:按列名排序,默认升序,desc 降序
--
聚集函数:
AVG MIN MAX SUM COUNT 五个;
(5)数据控制
创建用户
create user 用户名@IP地址 identified by '密码'
授权
GRANT 权限1,权限2.。。 ON 数据库.* to 用户名@IP地址
撤销授权
revoke 权限1,权限2.。。 on 数据库 from 用户名@IP地址
查看权限
show grants for 用户名@IP地址
删除用户
drop user 用户名@IP地址