MySQL基础知识
1. DDL
数据定义语言(DDL,Data Defintion Language)语句:数据定义语句,用于定义不同的数据对象、数据库、表、列、索引等。常用的语句关键字包括create、drop、alter等。
1.1 数据库操作
(1)添加数据库: create database name;
(2)查看数据库: show databases;
(3)删除数据库: drop database name;
(4)使用数据库: use name;
1.2 数据表操作
(1)添加表:
基本语法:create table表名(字段名1字段类型,....字段名n字段类型n);
示例:create table user(username varchar(32),password varchar(32));
要是需要增加主键并自增:id int(3) primary key auto_increment
(2)查看表: show tables;
(3)删除表:drop table name;
(4)修改表名:alter table旧表名rename新的表名;
1.3 数据字段操作
(1)修改字段类型:alter table 表名 modify 字段名 varchar(20);
(2)增加表字段:alter table 表名 add column 字段名 类型;
(3)删除表字段:alter table 表名 drop column 字段名;
2. DML
增删改查,CRUD
(1)插入数据:
insert into表values(值1,值2,值n);
insert into表(字段1,字段2,字段n) values(值1,值2,值n);
(2)查询数据:
select * from表;
select字段from表;
select distinct字段from表; // 去除重复的
select字段from表where条件;
select字段from表order by字段 排序关键词
select字段from表group by字段 排序关键词 //分组排列
结果集限制:select字段from表limit数量;
asc升序排列,从小到大(默认)
desc降序排列,从大到小
统计类函数使用(聚合函数)
函数说明
sum求和
count统计总数
max最大值
min最小值
avg平均值
(3)表连接:
当需要查询多个表中的字段时,就可以使用表连接来实现。表联接分为内连接和外连接。
内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。
外连接:会选出其他不匹配的记录,分为外左联结和外右联结。
①内连接
select表1.字段,表n.字段from表1 [别名],表n where条件;
select表1.字段,表n.字段from表1 INNER JOIN表n on条件;
②外连接
左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录
select表1.字段[as别名],表n.字段from表1 LEFT JOIN表n on条件;
右连接:包含所有的右边表中的记录甚至是右边表中没有和它匹配的记录
select表1.字段[as别名],表n.字段from表1 right JOIN表n on条件;
(4)更新数据:
update表名set字段1=值1,字段2=值2,字段n=值n where条件
(5)删除数据:
delete from表[where条件];
TRUNCATE TABLE表名;//清空表的数据,并且让自增的id从1开始自增
3. DCL
首先,需创建用户
3.1 添加权限
类别详细解示
基本语法grant 权限 on 库.表 to '用户'@'主机' identified by '密码';
示例grant select, insert on test.* to 'huangguizhao'@'localhost' identified by '4311';
示例说明给予huangguizhao用户,在本机连接test库所有表的权限。操作的这些表具有查询和写入权限
注:可以针对一个用户增加多条权限。
3.2 删除权限
类别详细解示
基本语法revoke 权限 on 库.表 from '用户'@'主机';
示例revoke select, insert on test.* from 'huangguizhao'@'localhost';
示例说明给予huangguizhao用户,在本机连接test库所有表的权限。操作的这些表具有查询和写入权限
参数说明
符号说明
grant all在grant后接all说明给予所有权限
revoke all在revoke后接all说明删除所有权限
权限 on .. 所明给予所有库所有表的操作权限
'用户'@'主机'主机里面若为%。任意来源的主机均可以使用这个用户来访问
创建数据库用户huangguizhao,具有对test数据库中所有标的select / insert权限