计算机二级mysql数据库
2022/3/7 2:15:31
本文主要是介绍计算机二级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这篇关于计算机二级mysql数据库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程
- 2024-11-01部署MySQL集群学习:新手入门教程
- 2024-11-01部署MySQL集群入门:新手必读指南
- 2024-10-23BinLog入门:新手必读的MySQL二进制日志指南
- 2024-10-23Binlog入门:MySQL数据库的日志管理指南