计算机二级mysql数据库

计算机二级mysql数据库
I、基础知识
一)、数据库的创建与使用
1.创建数据库:create database 数据库名字;
2.选择数据库:use 数据库名字;
3.修改数据库:alter database 数据库名字 default character set 字符集名字 default collate 校对规则名字; -----设置默认字符集和默认校对规则
4.删除数据库:drop database  if exists 数据库名字;----if exists判断数据库在不在
5.查看所有数据库: show databases like “模糊查询”;---可以用like 进行模糊查询
 
二)创建和操作表
1.创建表:create table 表1(字段1 数据类型 auto_increment primary key ,字段2 数据类型  not null default 默认值 ,constraint 外键起名字  foreign key (表1外键名) references 表2(表2主键名)on delete restrict on update cascade)engine=innodb;----格式:(字段名  数据类型 可选参数)----temporary:创建临时表----float 浮点型----engine=innodb为选用引擎-----限制策略:restrict、cascade  ------check(属性 in (select....))约束放在创建表括号内最后,前面没有逗号,检查取值范围----constraint命名完整性约束
2.更新表:alter table
    2.1)添加字段字句ADD子句:alter table 数据表名 add column 添加的列名 数据类型 not null 可选参数  after 列名,add column......修改多列;----after 是放到什么名之后
    2.2)同时修改列名和数据类型:alter table 数据表 change column 原列名 新列名 数据类型 null  可选参数,change column....;
    2.3)修改或删除表中放入指定列默认值:alter table 数据表 alter column 列名 set default 默认值;
    2.4)只修改数据表的数据类型:alter table 数据表 modify column 修改的列名 数据类型 first;-----first为放在第一列
    2.5)删除列:alter table 数据表名 drop column 删除的列名;
    2.6)重命名表名:alter table 原表名 rename to 新表名;第二种方式:或者:rename table 原表名 to 新表名;
3.复制表:create table 新表名 like 复制的原表名;---只复制表结构,不复制数据 ;用as复制数据内容 
4.删除表:drop table if exists 表名;
5.查看所有表:show tables;
    5.1)查看表结构:show column from 表名;或者 desc 表名;
6.删除完整性约束:alter table 表名 drop constraint 约束名字; 
 
三)插入、删除、修改数据的方法
1.插入数据:insert into 表名(属性1,属性2,...)values(属性1的值,属性2的值.....),......插入多行直接加逗号隔开;
    1.1)insert into 表名 values (该列的所有值用逗号隔开) 
    1.2) insert into 表名 set 属性1=值,属性2=值,.....;
    1.3)数据合并到表中:insert into 表名 (属性1,属性2....) select 属性1,属性2...... from 复制的表;
    1.4)插入的值跟主键有冲突的:replace into 表名 (属性1,属性2,....) values(值1,值2,.......);-----原理是做替换
2.删除数据:delete from 表名 where 条件;
    2.1)删除多个表:delete 表1,表2 from 表1,表2,表3 from where ;-----delete后面是删除了那几张表的数据----from后面是跟那些表有关系
3.修改数据:update 表名 set 属性1=值,属性2=值 where 条件;
    3.1)修改多个表:update 表1,表2 set 表1.属性1=值,表二.属性2=值  where 条件;
4.查询数据:select 查询的属性 from 表名 where 属性=属性值 group by 需要分组的字段 having 分组进行筛选 order by 排序 limit 选行----distinct 去除重复
    4.1)替换查询结果集中的数据:select 属性1,属性2 case when 属性2=值 then 值的别名1 else 值的别名2 end as 属性的别名 from 表名; ----when...then可一直叠加判断
    4.2)常用的函数:count:计数   max:最大值  min:最小值 sum:求和 avg:平均值  ---- #为转义字符  escape为声明转义字符
    4.3)like为字符串匹配  regexp为文本匹配 后者不需要用%; 文本匹配可以用管道符,意思为满足任意一个条件即可选出 ; 
    4.4)判断范围:between...and  、in    判定空值: is null 
    4.5)嵌套查询多表:select 属性值1,属性值2  from 表1 where 属性3 in(select 属性3 from 表2 where 属性4=属性值)
    4.6)分组:select 字段 from 表名 group by 需要分组的属性;----题目涉及汇总的题目直接加 with rollup
    4.7)having子句:必须与group by 一起使用 用于过滤分组 可以跟函数
    4.8)order by 子句:排序 asc升序   desc 降序
    4.9)limit 子句:limit (从哪里开始选,返回的多少行)
 
四)索引
1.创建索引:create index 索引的名字 可选using用什么方式 on 表名(列名 asc);   
    1.1)创建表时创建索引create table 表名(字段 类型 限制,...... ,primary key(字段),index 索引名字(字段) );
    1.2)修改表的时候创建索引: alter table 表名 add index 索引名字(列名);---唯一索引 unique idnex
2.查看索引:show index from 表名 
3.删除索引:drop index 删除的索引名 on 表名
    3.1)alter table 表名 drop  index 索引名
 
五)视图
1.创建视图:create view 视图名字 as select   选的列 from 表   with check option ; ---with check option保证今后对视图的修改满足条件
2.删除视图:drop view 视图名字;
3.修改视图:alter view 视图名 as select.....
4.查看视图:show create view 视图名; 
六)表维护语句
1.更新、修复索引的散列程度:analyze table 表名;
2.检查多个表或者一个表是否有错误:check table 表名;
3.保证数据一致:checksum table 表名;
4.重新利用未使用的空间,整理数据文件的碎片:optimize table 表名; 
5.修复多个或者一个损坏的表: repair table 表名;
 
七)触发器
1.创建触发器:create trigger 触发器的名字 触发器的时间 触发器的事件 on 表名 for each row set @str=‘值的内容’;----时间分:before、after  ---触发事件有update、insert、delete  ----for each row每一行都激活触发器  ----动作主体:包括赋值set、如执行多个语句可以跟begin...end等
2.通过相应的动作触发,用select看结果;如select @str
3.删除触发器:drop trigger 触发器的名字;--触发器不能更新,只能先删除再重建;删除表的时候同时删除触发器
4.insert 触发器:引用名为new的虚拟表
5.delete触发器:可以引用old的虚拟表,old的值只能查看不能更新
6.update触发器:既可以用old虚拟表,也可以用new虚拟表;对表自身的更新用before更新,
 
八)事件
1.查看事件调度器是否打开:select@@event_scheduler;打开: set global event_scheduler=1;
2.创建事件:create event 创建事件的名字 on  schedule 时间调度 starts 开始时间  结束时间 do 动作begin. if.....then.....end if;end$$-----时间调度:每月一次:every 1 month   -----开始时间:starts 后面跟curdate()+interval 1 month意思是下个月开始    结束时间:ends 直接跟具体时间‘’
3.修改事件:alter event 事件的名字 rename to 新事件名字
    3.1)关闭临时事件:alter event 事件名字 disable;
    3.2)开始临时事件:alter event 事件名字 enable;
    3.3)更改名字:alter event 事件名字 rename to 新的事件名字;、
4.删除事件:drop event 事件名字;
5.具体实例:
 
九)存储过程
1.创建存储过程:create procedure 存储过程名字(in 参数名 数据类型,in 参数名 数据类型)begin....end$$  delimiter---更改结束符 、
2.查看存储过程:show procedure status;
    2.1)查看存储过程具体信息:show create procedure 存储过程名字;
3.存储过程体(局部变量):declare 变量名字 数据类型 ;只能在begin..end中;在开头声明
    3.1)set语句:set cid=910;
    3.2)select ....into语句:set 检索出来的数据 into 存放到变量里; ---检索出来的只能是一行数据
    3.3)流程控制语句(条件判断语句):if ...then...else....end if;或者(case when...   then.... else...end case)
    3.4)循环语句:循环的名字 while 钱<100  do 动作 end while;
    3.5)游标:declare  游标名字 cursor for 检索的语句;-----------用于存储过程或存储函数,在begin..end游标名字唯一,----打开游标名:open游标名字;----读取数据:fetch 游标名字 into 变量名字;---关闭游标:close 游标名;
    3.6)continue handler:游标用于控制循环语句,实现游标下移;---declare顺序:局部变量、游标、句柄
4.调用存储过程:call 存储过程(参数);
5.修改存储过程:alter procedure  存储过程名字
6.删除存储过程: drop procedure 存储过程名字;
 
    十)存储函数
1.创建 存储函数:create function 函数名字(参数只有名称和类型) returns 类型() 主体用begin...end;---return 返回包含select时,结果只能时一行且有一列值
2.查看数据库中有哪些存储函数:show function status
    2.1)查看具体的存储函数:show create function 存储的名字;
3.调用存储函数:select 存储函数的名字 参数;
4.删除存储函数:drop function 存储函数名;
5.修改存储函数:alter function 存储函数名();只能修改存储函数的特征
 
十一)用户账号管理:查看所有用户:select user from mysql.user;
1.创建用户账号:create user ‘用户名’@‘主机名’identified by ‘密码’,‘用户名’@‘主机名’ identified by password‘散列值密码’;
2.删除用户:drop user  ‘用户名’@‘主机名’;
3.修改用户账号: rename user 原来用户名@主机名 to 新用户名@主机名;
4.修改用户口令:set password for 用户名@主机名 =新密码;
 
十二)账户权限管理
1.查看权限:show grants for ‘用户名’@‘主机名’;
2.权限授予:grant 赋予的权限(具体列) on 表、类等对象 to 用户@主机名 identified by‘密码’;----同时可创建用户、密码
3.权限转移:grant 赋予的权限(具体列) on 表、类等对象 to 用户@主机名 identified by‘密码’with grant option ;
4.权限的撤销:revoke 权限名 on 表 from 用户名@主机名;
 
十三)备份与恢复
1.全部导出:select * from 表名 into outfile ‘全路径文件名’ ;---like可以复制没有数据的表
2.导入:load data infile 文件名 into table 表;
3.数据一致性的备份:读锁定:lock tables 表名 read;写锁定:lock tables 表名 write ; 解锁:unlock tables;
4.备份表结构的sql语句及数据:mysqldump -h 主机名 -u 用户名 -p 密码  数据库名字.表名字>全路径文件名;
5.恢复数据库:mysql -h 主机名 -u 用户名 -p 密码 数据库<全路径文件名;   
    5.1)恢复表:source  全路径文件;
 
十四)二进制日志文件的使用
1.在my.ini文件里下的mysqld下面添加:log-bin=文件全路径;   
2.通过二进制恢复:mysqlbinlog log_文件名 | mysql -h 主机名 -u 用户名 -p 密码 
3.清除所有的日志文件:reset master;
    3.1)删除部分日志文件:purge logs to 日志文件
 
十五)PHP的mysql数据库编程
1.连接数据库:<?php
                     $con=mysql_connect(本机名,用户名,密码);
                      if(!$con)
                      {echo''连接失败<br>''
                       echo''错误编号:‘’.mysql_errno()
                       echo''错误信息:‘’.mysql_error()
                             die()}
                        echo“连接成功<br>”;
                         ?>
2.数据的删除:mysql_query("set names ‘gbk’")
3.数据的查询:读取结果集:mysql_fetch_array
II、考试大纲
一)、第一大题考试内容
1.新增(插入一行数据):insert into 表名 (列的所有名字)values (该列的所有值);
                                1.1)insert into 表名 values (该列的所有值用逗号隔开)
1.2)更改数据(某个字段的值):update 表名 set 字段名=字段新值 where 属性=属性值;
2.嵌套查询多表:select 属性值1,属性值2  from 表1 where 属性3 in(select 属性3 from 表2 where 属性4=属性值);求平均--ang()统计--count()等 与group by连用
3.更改表结构(默认值):alter table 表名 alter  column 列名 set  default 默认值;
4.创建视图:create view 视图名 as select 视图需要的列名 from 表名 ;
5.创建数据库用户:create user “用户名字”@“主机名字(默认是localhost)”identified by “创建的密码”; --题中没密码红色可省略
6.删除字段(列):alter table 表名 drop 字段名;
6.1)新增字段(列):alter table 表名 add 字段名 类型  default 默认值;
7.授予权限:grant 授予权限的动作(权限的名字,名字2)on 授予权限的表 to “用户名@主机名”with grant  option;-----授予动作包括insert、select等等
8.创建索引:alter table 表名 add  unique index 索引名字(创建索引字段);---- unique为唯一索引
9.创建表:create table 表1(字段1 数据类型 primary key ,字段2 数据类型  not null auto increment/default 默认值 ,constrain 外键名  foreign key (外键关键字) references 其他表名(其他表关键字)); 
 
 
III、考试高频单词
1.给列赋予默认值:alter column子句、default赋予默认值、
2.创建用户:identified by后面跟密码、可在grant..on..to直接新增、with grant option允许分享给其他人
3.创建表:primary(主键) key、constraint 外键名 foreign key(本表外键关键字) references 其他表(其他表主键)、
4.删除列:直接用alter table 表名  drop 列名
5.创建索引:unique index唯一索引
6.触发器:trigger、for each row、 before针对insert和update操作,其余用after
7.存储过程:procedure、declare声明、 cursor游标、fetch...into:读取数据
8.PHP程序:mysql_connect建立非持久连接、mysql_pconnect()建立持久连接、mysql_select_db(数据库名,连接变量名)连接数据库、    mysql_query()提交执行SQL语句、mysql_fetch_array()读取结果中的记录、mysql_sum_row()读取行数、mysql_data_seek(指针,行数)
9.事件:event、on schedule(独有的单词)、starts、select...into
posted @   良善伯住阳台  阅读(721)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示