mysql -u root -p
# 输入密码
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
flush privileges;
三、基本命令
# 1.查看数据库
show databases;# 2.切换到 test 数据库
use test;# 3.查看所有表(必须切换到数据库)
show tables;# 4.查看users表中字段
desc users;# 5.查看users表中数据select * from users;# 6.退出exit;
四、数据库操作
# 创建数据库
create database users;# 删除数据库
drop database users;
五.表操作
# 删除表
drop table users;# 查看表select * from users;# 创建表
create table user(
->id int
-> username varchar(50)
-> age int
->) default charset = utf8;
六、数据库设计
类型
说明
备注
int
整型(2的31次方 - 1)
数值
float
浮点型
数值
char
短(255字节)
字符串
varchar
不定长(255~65535)
字符串
text
长字符串(无限制)
字符串
七、数据字段属性
属性
说明
unsigned
无符号
zerofill
定长填充
auto_increment
自增(主键)
primary key(id)
主键id
default ‘name’
默认值
not null
不允许为空
null
允许为空
comment ‘备注’
添加备注
八、表设计
九、表操作
1.基本操作
# 增
insert into users(name,password) values("1","2");# 删
delete from users where id=1
# 改
update usersset password='123' where id=2
# 查select * from users where id=2;select name,password from users where id=2;
2.运算符
+ 、 - 、 * 、 / 、% 、 %% 、|| 、and 、 of 、 = 、 != 、>= 、 <= 、 > 、 <# 例 id大于3 且 小于 5:select * from users where id between 3 and 5
# 例 id=3 或 id=5 或 id=7:select * from users where id in(3,5,7)
3.表查询
# 1.选择特定的字段select id,name from users# 2.给字段取别名selectid as a,name as b from usersselectid a,name b from users# 3.distinct关键字的使用select distinct name from users
去除 users 表中 name 字段重复值
# 4.使用where条件查询select * from users where id>3 and id<5
# 5.查询空置nullselect * from users where age is null
select * from users where age is not null
# 6.in的使用select * from users where id in(1,2,3)# 7.like查询(搜索) %-> 匹配所有字符 _ 匹配一个字符 (name为字段名)select * from users where name link'%查询内容%'# 8.嵌套正则select * from users where name regexp '.*live.*'# 包含liveselect * from users where name regexp '$456'# 排除456# 9.使用order by 对查询结果进行排序select * from users order by id ase # 升序select * from users order by id desc # 降序# 10.limit 限制输出条数select * from users limit 3 # 输出前三条select * from users limit 3,10 # 从 第三条开始 输出 十条
4.函数查询
# 1.concat() 连接select concat(user,password) from user;# userpassword# 2.rand() 随机数select * from users order by rand() limit 3 # 根据随机数排序 输出前三条# 3.count() 统计条数select count(*) from users# *表示 按照主键 统计# 4.sum() 求和select sum(id) from users# id 数据求和# 5.avg() 求平均值select avg(id) from users# 6.max() 求最大值select max(id) from users# 7.min() 求最小值select min(id) from users# 8.group by 分组聚合select * from users group by class # 以class 字段进行分组select *,count(*) from users group by class # 以class 字段进行分组,并统计每组条数
5.多表查询
# 1.链表查询(条件字段是属性要一直)select users.name,class.id from users,class where users.class_id = class.id
# 2.嵌套查询select * from users where idin(select max(id) from users)# users表中 id 最大的一组数据# 3.左连接select class.name,count(users.id) from class left jion users on class.id = users.class_id group by class.id
# 左侧表全部输出 右侧表 如果没有 则输出null# 4.if条件查询
if(count(suers.id), count(suers.id) , '失败时输出')
6.判断成绩是否及格
select(select count(*) from users where num>60)'及格' , (select count(*) from users where num<60)'不及格'select sum(if(num > 60 ,1 ,0))'及格', sum(if(num<60, 1, 0 ))'不及格' from usersselect class_id from user oroup by class_id having class_id < 2
# 既: 查出班号小于2的班级的ID
十、举例
1.多表查询 并 模糊查询 返回 前三条
select a.*, b.id as user_id , b.nickname as user_nickname , b.avatar as user_avatar
from sort a inner joinusers b on a.userid = b.id
where locate('搜索内容',a.name)
limit 3