1、什么是SQL
SQL全称为Structured Query Languange(结构化查询语言)
其实就是定义了操作所有关系型数据库的规则。与关系型数据库进行通信的语言
2、关系型数据库
为表的逻辑单元组成,这些表在数据库内部彼此关联。关系型数据库可以将数据分解为较小、可管理单逻辑单元,从而在公司这一级别上更易维护,并提供更优化单数据库性能。
3、SQL会话
是用户利用SQL命令与关系型数据库进行交互时发生单事情。当用户与数据库建立连接是,会话就被建立。
命令connect是用在用户与数据库进行连接是初始化连接的,该命令可以用于申请连接也可以用户修改连接
connect user@database
disconnect是用于断开用户与数据库的连接
exit命令是用户离开数据库时,也会自动断开连接
4、SQL 命令类型
1)、数据定义语言 —— DDL
CREATE TABL (创建表)
ALTER TABLE(修改表)
TRUNCATE TABLE(删除表中数据)
DROP TABLE(删除表
2)、数据操作语言 —— DML
SELECT(查询)
INSERT(添加)
UPDATE(修改)
DELETE(删除)
3)、数据查询语言 —— DQL
子句组成的查询块:
SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>
4)、数据控制语言 —— DCL
(1)创建用户
create user ‘用户名’@’允许其登录的地址’ identified by ‘密码’;
1,创建的用户需同时指定该用户可以在哪个地址进行登录。
其中“%”代表“任何地址”。
2,用户创建之后,自动在mysql的user表中添加了一条记录,但该用户还没有权限。
(2)删除用户
drop user ‘用户名’@’允许其登录的地址’;
(3)修改用户密码
修改自己密码: set password = password(‘新密码’);
修改他人密码(必须有修改权限):set password for ‘用户名’@’允许其登录的地址’ = password(‘新密码’);
(4)权限分配
增加权限:grant 权限名1,权限名2, .... on 数据库名.对象名 to ‘用户名’@’允许其登录的地址’ identified by ‘密码’;
1、权限名就是:’select’, ‘update’, ‘delete’,等等。其中ALL 表示“所有权限”,或all privileges也一样
2、对象名:就是一个数据库中“装”的东西,表是最常见的,也可以是视图,存储过程,存储函数等。其中:*.*表示所有数据中的所有对象,某数据库名.*表示该数据库中的所有对象——这个商业上常用。
3、identified by ‘密码’用于给一个用户在此时修改密码,不写也可以,那就不修改密码。
4、但同时该语句也可以创建用户(如果不存在),但此时identified by ‘密码’必须写。
(5)删除权限
revoke 权限名1,权限名2, .... on 数据库名.对象名 from ‘用户名’@’允许其登录的地址’ ;
表示从某个用户身上“取消”某些权限(也许还保留了其他权限)。
5)、数据管理语言
start audit
stop audit
6)、事物控制语言
1、开启事务
SET autocommit=0;
start TRANSACTION;
2、编写事务的sql语句(select insert update delete)
语句1;
语句2
。。。。
3、结束事务
COMMIT;#提交事务
ROLLBACK;#回滚事务
5、命名规范
数据库名称:
多个单词用下划线'_'分隔,一个项目一个数据库,多个项目慎用同一个数据库
数据表名称:
1、多个单词用下划线'_'分隔,全部小写命名,禁止出现大写;
2、禁止使用数据库关键字,如:name,time ,datetime,password
3、必填描述信息
字段名规范:
1、加上下划线'_'组成,命名简洁明确,多个单词用下划线'_'分隔
2、全部小写命名,禁止出现大写
3、字段必须填写描述信息