废话就不多说了,我们直接进入正题
规范的名称
对于数据库的操作有四种称呼
- DDL操作
- DML操作
- DQL操作
- DCL操作
下面小编详细举例说明一下四种操作
DDL:操作数据库语句
1 查询
————查询所有数据库名称
show databases
————查询某个库中所有的表
use database_name,
show tables
————查询表结构
desc table_name
2.创建
————创建数据库
create database database_name
————根据是否存在判断创建
create database if not exists database_name
————根据是否存在判断创建并且设置编码级
create database if not exists database_name character set gbk
这里需要注意的是 utf-8 的写法是 utf8
创建表同理
create table table_name
————创建一个复制表
create table table_name like (想要复制的表名)
....
3.删除
————删除表
drop table table_name
drop table if exists table_name
————删除表并且创建一个一摸一样的表
truncate table table_name
4.修改
————重命名表名
alter table table_name(表名) rename to new_name(新的表名)
————修改表字符
alter table table_name character set gbk(字符集名称)
————添加一列
alter table table_name add colun(列名) data_type(数据类型)
————修改表列名以及类型
alter table tb change colun(列名) new_colun(新列名) data_type(新数据类型)
————修改表的类型
alter table tb modify colun(列名) data_type(新数据类型)
————删除列
alter table table_name drop colun(列名)
2.DML增删改表中数据:
1.添加数据
————插入数据到表中
insert into (可以省略) table_name values () ;
————指定列名添加
insert into (可以省略) tab;e_name (列名1 , 列名2... ) values (值1 , 值2 ...)
2.删除数据
————删除表
delete from table_name [where 条件]
turncate table table_name ---高效率推荐
3.修改数据
————更新表中的数据
update table_name set 列名1 = 值1 , 列名2 = 值2 .... [where 条件]
需要注意的是 , 删除和修改一样 , 如果不加约束, 将会对整个表进行更改
3DQL查询语句
1.排序查询
————普通排序查询
select * from table_name order by colun(列名)
————多条件排序拆线呢
select colun from table_name
order by 列名 (ASC , DESC 降序)
, 列名 desc (如果前面两个结果集一样 , 则按照后面得列名排序)
2.聚合函数
1.count
在统计中, null不会被计入 总数中 , (列名)自动排除NULL
select count(IFNULL (列名 , 0)) form tb
2.max
select MAX(列名) from tb
3.min
select MIN(列名) from tb
4.sum
select SUM(列名) from tb
5.avg
select AVG(列名) from tb
3.分组查询
————查的字段是共有得, 如果是单独的字段,那么查出来毫无意义
SELECT 共有列名 FROM TB GROUP BY 列名;
分组字段 + 聚合函数
where 和having的区别
说明:1.where 在是在分组前进行限定, 如果不满足条件, 则不参与分组。having是在分组之后进行限定,如果不满足结果,将不会被查询出来
2.where后面不可以跟聚合函数,having可以进行聚合函数的判断
根据性别分组 要求:成绩低于90分的不参与分组 , 查询之后人数少于2人的不需要查询
SELECT sex , AVG(math) , COUNT(id) 人数 FROM stu_info(表名) GROUP BY sex HAVING 人数 > 2
4.分页查询
SELECT * FROM table_name LIMIT index(开始索引) , rows(需要查询的记录条数)
5.基础查询
————多个字段的查询
select 列名1 , 列名2 .... from table_name
————去除重复的结果集
select distinct 列名 from table_name
注意:如果有多列, 只会去除重复的结果集
————计算列 (假设表中有数学英语成绩)
select math + english from table_name
————起别名
select 列名1 (空格) 别名 from table_name
select 列名1 AS 别名 from table_name
6.条件查询
————年龄不等于19岁
SELECT * FROM users WHERE math <> 19
SELECT * FROM users WHERE math != 19
————between AND
SELECT * FROM users WHERE math >= 20 AND math <= 60
SELECT * FROM users WHERE math BETWEEN 20 AND 100
————OR语句 IN()
SELECT * FROM users WHERE math = 20 OR math = 76 OR math = 86
SELECT * FROM users WHERE math IN(20 , 86)
————IS NULL
SELECT * FROM users WHERE english IS NULL
SELECT * FROM users WHERE english IS NOT NULL
————模糊查询
声明:_占一个字符 , %多个字符
————查询姓张的所有信息
select * from table_name where name like '张%'
————查询第二个字为张字的所有信息
select * fron table_name where name like '_张%'
————查询名字为三个字的所有信息
SELECT * FROM table_name WHERE NAME LIKE '___'
————查询名字为两个字以上的所有信息
SELECT * FROM table_name WHERE NAME LIKE '__%'
SELECT * FROM table_name WHERE NAME LIKE '%__%'
————查询包含张字的人的所有信息
SELECT * FROM table_name WHERE NAME LIKE '%张%'
4.DCL管理操作
1.管理用户
1.添加用户
语法:
create user '用户名'@'主机名' identifide by '密码'
create user 'zhangsan'@'localhost' identifide by '123'
create user 'zhangsan'@'%' identifide by '123' 任意电脑都能访问
————查询
select * from user
2.删除用户
————删除用户
drop user '用户名'@'主机名'
3.修改用户密码
update user set password = password('新密码') where user = '用户名'
————实例
update user set password = password('qwe') where user = 'zhangsan'
set password for '用户名'@'主机名' = password ('新密码')
set password for 'zhangsan'@'localhost' = password ('zxc')
mysql - uzhangsang - pzxc ---cmd命令
这里小编补充一点, 如果忘记用户名和密码应该怎么做呢?‘
1.cmd ---- > net stop mysql 需要管理员权限
2.使用无验证方式启动mysql服务:mysqld --skip–grant–tables (敲回车之后光标会停在那里,说明服务已经启动成功)
3.打开一个新的cmd — > mysql 这里直接回车
4.use mysql;
5.update user set password=password(‘新密码’) where user=‘root’ | update mysql.user set authentication_string=password(‘root’) where user=‘root’ and Host = ‘localhost’
6.启动任务管理器,手动结束掉mysqld进程
7.再次启动mysql服务 net start mysql 管理员权限 (cmd中)
8.使用新密码登陆
2.权限管理
1.查询权限:
SHOW GRANTS FOR '用户名'@'主机名'
SHOW GRANTS FOR 'zhangsan'@'%'
2.授权
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名'
————这里是给查询权限 其他权限同理
grant select on 数据库名.表名 to 'zhangsan'@'localhost'
————给予所有权限, 在任意数据库任意表上
grant all ont *.* to '用户名'@'主机名'
3.撤销权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名'
grant select on 数据库名.表名 from 'zhangsan'@'localhost'
温故而知新,在学习完之后做好笔记 ,总结, 完善, 是提升自我最好的方式 , 好啦,小编就讲到这里啦
1998

被折叠的 条评论
为什么被折叠?



