百度移动网站建设有几种,顶做抱枕网站,app拉新推广,山西大同网站建设DDL: 数据定义语言 Definition#xff0c;用来定义数据库对象#xff08;数据库、表、字段#xff09;CREATE、DROP、ALTER
DML: 数据操作语言 Manipulation#xff0c;用来对数据库表中的数据进行增删改 INSERT、UPDATE、DELETE
注意#xff1a; DDL是改变表的结构 DML…DDL: 数据定义语言 Definition用来定义数据库对象数据库、表、字段CREATE、DROP、ALTER
DML: 数据操作语言 Manipulation用来对数据库表中的数据进行增删改 INSERT、UPDATE、DELETE
注意 DDL是改变表的结构 DML是改变表的数据
DQL: 数据查询语言 Query用来查询数据库中表的记录 SELECT、FROM、WHERE
DCL: 数据控制语言 Control用来创建数据库用户、控制数据库的控制权限 GRANT、REVOKE
注意 DQL就是查询数据 DCL改变用户权限 数据库基本操作
1、查询所有数据库 show databases;
2、查询当前数据库 select database();
3、使用数据库 use 数据库名;
4、查询当前数据库所有表 show tables;
5、查询表的结构 desc 表名;
UTF8字符集长度为3字节有些符号占4字节所以推荐用utf8mb4字符集 DDL
1、创建数据库 create database 数据库名; 2、删除数据库 drop database 数据库名;
3、创建表(最后一个字段后面没有逗号) create table 表名( 字段1 字段1类型, 字段2 字段2类型, 字段3 字段3类型, … 字段n 字段n类型 );
4、查询指定表的建表语句 show create table 表名;
5、alter的使用
添加字段alter table 表名 add 字段名 类型;
修改数据类型alter table 表名 modify 字段名 新的数据类型;
修改字段名和字段类型 alter table 表名 change 原来字段名字 新的字段名字 字段类型;
删除字段alter table 表名 drop 字段名;
修改表名alter table 表名 rename to 新的表名;
6、删除操作
删除表drop table 表名; 删除表并且重新创建该表truncate table 表名; 数据类型
1、数值类型
有符号(signed) 无符号(unsigned)
区别 是否允许出现负数
2、字符串类型
3、日期时间类型 DML
添加数据insert 修改数据update 删除数据delete
添加数据 1、指定的字段 insert into 表名 (字段名1,字段名2,…) values(值1,值2,…);
2、全部的字段 insert into 表名 values(值1,值2,…);
批量的添加数据 insert into 表名 (字段名1,字段名2,…) values(值1,值2,…),(值1,值2,…),(值1,值2,…); 或者 insert into 表名 values(值1,值2,…),(值1,值2,…),(值1,值2,…);
注意 1、字符串和日期类型的数据应该包含在引号里面 2、插入的数据大小应该在字段的规定范围内
更新操作
修改数据
update 表名 set 字段名1 值1,字段名2 值2,… [where 条件];
注意 修改语句的条件如果没有那么就会去修改整张表的所有数据 update
删除操作
删除数据 delete from 表名 [where 条件];
注意 删除语句的条件如果没有那么就会去删除整张表的所有数据 delete
delete语句是不可以去删除某一个字段的值的 可以使用update将其设置为null DQL
模板
SELECT字段列表
FROM表名字段
WHERE条件列表
GROUP BY分组字段列表
HAVING分组后的条件列表
ORDER BY排序字段列表
LIMIT分页参数1基础查询 1、查询多个字段
select 字段1,字段2,字段3,… from 表名; select * from 表名;
2、设置别名 select 字段 as 别名 from 表名; 或者 select 字段 别名 from 表名;
3、去除重复记录 select distinct 字段 from 表名;
2条件查询
select 字段列表 from 表名 where 条件列表; 3聚合函数
将一列数据作为一个整体来进行纵向的计算
select 聚合函数(字段列表) from 表名; 注意 null值是不参与聚合函数的运算的
4分组查询
注意 where和having的区别 1、where是分组之前进行过滤不满足where条件不参与分组having是分组后对结果进行过滤。 2、where不能对聚合函数进行判断而having可以。
执行顺序 where 聚合函数 having
分组之后查询的字段一般为聚合函数和分组字段查询其他字段无任何意义
5排序查询
asc 是 升序排序 desc 是 降序排序
注意 如果是多字段排序当第一个字段值相同时才会根据第二个字段进行排序
6分页查询
limit 起始索引,查询记录数;
注意
1、起始索引从0开始起始索引 查询页码 - 1 * 每页显示记录数
2、如果查询的是第一页数据起始索引可以省略
DQL语句的执行顺序
执行顺序from、where、group by、having、select、order by、limit 注意
根据sql的执行顺序可知group by 和 having 是在select的前面的那么select 里面起的别名怎么还可以在having里面使用呢
--年龄小于45并根据工作地址分组获取员工数量大于等于3的工作地址select workaddress, count(*) address_count from employee where age 45 group by workaddress having address_count 3;DCL
用来 管理数据库用户 以及 控制数据库的访问权限
管理用户
1、查询用户
user mysql;
select * from user;2、创建用户
create user 用户名主机名 identified by 密码;3、修改用户密码
alter user ‘用户名’‘主机名’ identified with mysql_native_password by ‘新密码’;
4、删除用户
drop user 用户名主机名;注意
创建用户test能在任意主机访问
create user ‘test’‘%’ identified by ‘123456’;
也就是说主机名可以使用 % 通配
权限控制 1、查询权限
show grants for 用户名主机名;2、授予权限
grant 权限列表(all) on 数据库名.表名 to 用户名主机名;3、撤销权限 revoke 权限列表(all) on 数据库名.表名 from ‘用户名’‘主机名’;
注意 1、多个权限用逗号分隔 2、授权时数据库名和表名可以用 * 进行通配代表所有