PHP全站开发工程师-第3章 SQL高级语法

本章详细介绍了MySQL的高级语法,包括使用ALTER语句修改数据库和表的字符集、数据引擎、添加、修改和删除列及索引,以及外键的操作。此外,还讲解了存储过程的优势和常用流程控制语句,以及如何创建、启用和禁用事件。最后,提到了触发器在数据库操作中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP全站开发工程师-第2章 SQL进阶语法

 

第二阶段(后端) 25天 144学时

第3章 SQL高级语法(12)

[学习课时] 本章共需要学习    课时

[目的要求] 

  1. 掌握数据库高级语法操作
  2. 掌握MySQL存储过程编程
  3. 掌握MySQL事件的编程
  4. 掌握MySQL触发器的使用

[教学内容]

ALTER语句

先创建一个数据库:

 

create database databasename DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

 

可以看见默认的字符集是UTF-8

 

 

  1. alter修改数据库默认字符集:

查看数据库的字符集

 

show create database databasename;

 

修改字符集为gbk:

alter database databasename DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

 

 

修改字符集为utf-8:

alter database databasename DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

  1. alter修改表数据引擎

使用数据库:

use databasename;

 

创建数据表:

create table if not exists tabename(

       id int(5) primary key auto_increment,

       name varchar(60) not null,

       pswd varchar(60) not null

);

 

查看表的创建结构:

 

show create table tabename;

 

 

或者:

 

show table status from databasename where name='tabename';

 

 

可见表的数据引擎是MyISAM

 

修改数据引擎:

 

alter table tabename engine=innodb;

 

 

这样表的数据引擎已经变成InnoDB了

 

  1. alter添加表的列

alter table tabename add sex varchar(10) not null;

 

 

  1. alter修改表的列

alter table tabename modify column name varchar(255);

 

 

  1. alter删除表的列

 

alter table tabename drop column sex;

 

 

  1. alter修改索引

先创建索引:

create [UNIQUE|FULLTEXT|PRIMARY|SPATIAL] index indexname on tabename(name,pswd);

 

create index indexname on tabename(name,pswd);

show index from tabename;

 

修改索引应该先删除再创建:

 

alter table tabename drop index indexname;

alter table tabename add index indexname(name(8));

 

  1. alter修改外键

先创建新表:表类型tabletype

create table tabletype(

       id int(5) primary key not null,

       type varchar(60) not null,

       status int(1) not null default 1

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

再给tabename表添加type_id字段:

alter table tabename add column type_id int(5) not null;

 

再添加外键:

alter table tabename add constraint foreignkeyname foreign key(type_id) references tabletype(id);

 

再查看表创建结构:

show create table tabename;

 

 

再查看外键:

show index from tabename;

 

 

alter删除外键:

alter table tabename drop foreign key foreignkeyname;

 

MySQL存储过程与函数

存储过程的优点:允许组件式编程,较快的执行速度,减少网络流量,安全

常用流程控制语句:

 

MySQL事件

  1. 创建事件任务

创建事件使用CREATE  EVENT `database`.`even_name`语句

例句:

 

DELIMITER $$

 

-- SET GLOBAL event_scheduler = ON$$     -- 开起数据库公共事件执行器   

 

DROP EVENT IF EXISTS `uniadmin`.`test`$$

 

CREATE      EVENT `uniadmin`.`test`

 

ON SCHEDULE EVERY 1 SECOND

 

DO

       BEGIN

           UPDATE uni_menu SET `sort` = `sort`+1 WHERE `id`='1';

       END$$

 

DELIMITER ;

 

  1. 开起事件任务

alter event `uniadmin`.`test` ON COMPLETION PRESERVE ENABLE;

  1. 关闭事件任务

alter event `uniadmin`.`test` ON COMPLETION PRESERVE DISABLE;

  1. 查看事件开起状态

SHOW VARIABLES LIKE '%sche%';

或者

SHOW GLOBAL VARIABLES LIKE 'event%';

  1. 关闭事件执行器

SET GLOBAL event_scheduler = 0;

MySQL触发器

 

 

[作业实验]

  1. 购物车系统数据模型设计

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值