数据库的一些定义
SQL:Structure Query Language
SQL是一种数据查询语言,各个数据库厂商都支持这种标准化语言
有些数据库厂商会在此基础上做一些扩展,但并不会影响原有的语句
CRUD
Create, Read, Update, and Delete
数据库结构
server=>database=>table=>column=>data
DDL(Data Definition Language)
对数据库进行修改,通常是修改,数据库,表,列,但不能操作数据
DML(Data Manipulation Language)
对数据库中的数据进行修改
DCL(Data Control Language)
定义数据库的访问权限
DQL(Data Query Language)
查询数据库的数据
注意
以上四种语句,所有语句必须以;结尾
数据库的操作
DDL数据库操作
创建数据库
create database [数据库名];
后面可以跟一些初始化参数 例如 character set [编码集];
查看所有数据库
show databases;
修改数据库
alter database [数据库名] character set uft8;
把数据库的字符集修改为uft8
删除数据库
drop database [数据库名];
查看当前使用的数据库
select database();
切换至数据库
use [数据库名];
DDL表操作
创建表
CREATE TABLE 表名(
列名1 数据类型 [约束],
列名2 数据类型 [约束],
列名n 数据类型 [约束]
);
(分行只是为了好看,[约束]可有可无)
删除表
drop table [表名];
显示所有表
show tables;
查看表内容
desc [表名];
增加/删除/修改列
均以alter [表名]开头,后面跟操作内容,具体语法看Documentation
一般格式为 alter [表名] [操作] [操作参数];
DML数据操作
插入数据
insert into 表名(列名) values(数据值);
列名和数据值的数量必须相等
可以插入多个数据,当要插入多个数据时,values()之间用逗号隔开
修改数据
update 表名 set 列名=新值 where 列名=某值
这里,行数通过列名=某值获取,获取到的行数上面的 数据会被 列名=新值替换,列名=新值可以使多个,用逗号隔开
删除数据
delete from 表名 where 列名=某值;
turncate table 表名;
delete只会删除表中的数据,表的结构还在,且可以找回删除的数据
turncate比较快,直接把表drop掉再新建个结构一样的新表,数据不能找回
获取当前时间
select now();
DCL用户操作
创建用户
create user 用户名@指定ip identified by 密码;
用户名必须用指定的ip才能登陆
create user 用户名@‘% ’ identified by 密码;
用户名用任意ip均可登录,百分号表示所有
给予权限
grant 权限1,权限2,... on 数据库名.* to 用户名@IP;
*表示所有,所以这里表示所有grant 权限给 这个数据库里所有 tables
撤销权限
revoke 权限1,权限2,.... on 数据库名.表名 from 用户名@IP;
查询权限
show grants for 用户名@IP
删除用户
drop user 用户名@IP;
DQL数据查询
SELECT 要查询的列名称
FROM 表名称 WHERE 限定条件 /*行条件*/
GROUP BY grouping_columns /*对结果分组*/
HAVING condition /*分组后的行条件*/
ORDER BY sorting_columns /*对结果分组*/
LIMIT offset_start, row_count /*结果限定*/
*表示所有
主要格式就是这样,语句太多,具体看Documentation