db:数据库简称
外键:关联其他表的数据db数据库简称sql语句都以分号结尾CTRL+c 终止命令
mysql中删除是以行为单位来操作
卸载mysql
1.停止数据库net stop mysql
2.删除数据库服务mysqld -remove
3.删除数据库的初始化数据
4.删除环境变量
注意:需要用管理员身份操作
navicat操作数据库
创建数据库
数据库的名字
不能有任何的符号,下划线除外
只能英文字母开头
组合是能是英文字母,数字,下划线
不能使用保留字段作为名字
以上命名规则适用于所有it类命名
字符集
utf8
utf8mb4
设计表
字段名(必填)
字段类型(必填):不用计算的用字符串格式,字符串要用引号括起来
" "空字符串
字段长度(必填):一个汉字2-4字节
是否必填:not null
默认值:default值
注释:给字段添加说明
主键/primary key:一般每个表起码一个主键;主键可以限制这个字段不能重复;设置了主键的字段不能为空
索引/index:一般查数据都会写条件,可以把经常用的条件,这个字段添加上索引,再用这个条件去做查询的时候,数据库查询的时间就会变快;不过数据量特别多的时候,索引就起不了作用了
导出数据库数据
可以把数据库里的所有表和数据导出为sql文件,并给其他人用
导入sql文件
权限设置
%所有人都可以访问,loaclhost只能本机访问,写了哪个IP就只能哪台电脑访问
终端操作数据库
连接数据库:mysql -u 用户名 -p 回车后输入密码(连接本地数据库;端口如果是默认的则不用写端口)
-h host
-P Port
-u user
-p password
断开数据库exit
数据库管理
查看数据库:show databases;
选择数据库:use数据库名字;
创建数据库:create database 数据库的名字 default charset utf8mb4;
修改数据库:alter database 数据库的名字 default charset utf8mb4;
删除数据库:drop database 数据库的名字;
表的管理
查看表:show tables;
查看表结构:desc 表名;
创建表:create table 表名(字段1信息,字段2信息,字段3信息);
修改表:alter table 表名 ……
增加字段:alter table 表名 add 字段信息;
修改字段名:alter table 表名 change 旧字段名 新的字段信息;
修改字段属性:alter table 表名 modify 字段信息;
删除字段:alter table 表名 drop 字段名;
修改表名:alter table 表名 rename 新表名;
删除表:drop 表名;
多表联查
内连接:join
内连接取交集
外连接: 外连接取并集
左连接/left join
右连接/right join
join左边是左表,右边是右表
外连接数据分组:group by
分组不能单独使用 必须和聚合函数一起使用
having查分组之后的数据 where查分组之前的数据
group by可用于字段去重数据排序:order by 字段
加上desc是倒序
限制数据显示的数量:imint
limit 0.5 从第0行开始一共显示5条数据,写在SQL语句最后
只写一个数字,默认从0条开始,共显示xx条数据
条件语句:case when ……then……
当什么情况,就做什么
select id,sname,(case when age < 30 then "青年" when age >=30 and age <=60 then "壮年" else "老年" end) from t_student;
嵌套查询(子查询)
把查询结果作为表
把查询结果作为条件
把查询结果作为列展示
select * from (select a.id,b.aname,b.cname from t_student a join t_class b on a.cid = b.id) a where cname = "美术班";
聚合函数(只能对数字用)
count
max
min
avg
sum
判断符
=
>
<
!=
in(可以取反)
is(可以取反) is查字段是否为空 is not相反
like(可以取反)
between(可以取反)只能用在数字之间
逻辑连接符
and(取反:and not并且不)
or
命令写错/环境变量配置错误表的类型
真实的表
虚拟的表:通过sql语句显示的表
临时表:temporary
临时表无法被查询到
临时表可以正常操作
断开连接后,临时表会自动销毁
作用:可以把嵌套表表内容存到临时表中,对临时表查询就行了,减少sql语句
数据库的事务
开始:begin;
确认:commit;
回滚:rollback; 恢复到事务开始之前
开始之后,执行过确认/回滚本次事务就结束了,再次开始需要重新开始事务
sql语句分类
DDL:造成数据库或表发生变化
create
alter
drop
DQL:只是查询,不会对数据有任何影响
select
from
where
DML
insert
update
delete
DCL:属于数据库的某一个功能
begin
commit
rollback
select a.id,a.sname,b.class,c.chinese from t_student a join t_class b on a.classname = b.id join t_results c on a.id = c.s_id;
mysql> select a.id,a.sname,b.class,c.chinese from t_student a join t_class b on a.classname = b.id join t_results c on a.id = c.s_id where c.chinese >65;
网友评论