PHP从零开始--字段修饰符&&数据操作&&SQL语言

简介: PHP从零开始--字段修饰符&&数据操作&&SQL语言

文章目录


一、 字段修饰符

1.1主键

主键使用primary key修饰 ,它是唯一,可以防止用户插入相同的数据

如果字段加上主键修饰符,如果再加入重复的数据会报错。

1.2自动增长

auto_increment 是自动增长的修饰符,用户没插入一条数据,修饰的字段会自动增加

这样创建的表插入数据默认是从1开始的

1.3非空

not null 如果字段用not null 修饰了,但是插入数据的时候这个字段没有给值会报错

create table student (sid int primary key auto_increment,sname varchar(20) not null,sex char(2));

1.4默认值

default 数字

或者default 字符串

意思是用户如果某个字段设置了默认值,如果插入数据的时候这个字段没有给值就采用默认值

create table student (sid int primary key auto_increment,sname varchar(20) not null,sex char(2) default ‘男’);

1.5外键

其中一个表中的字段用primary key修饰,它叫主键,主键所在的表叫主表,另外一张表也有一个字段和主表中的主键相关联,tid叫做student表的外键。

用外键约束,如果删除一个表中的数据,会提示报错,这样就保证了数据的一致性和完整性。

完整代码如下:

创建教师表:

create table teacher (tid int primary key auto_increment,tname varchar(20));

创建学生外键表:

create table student(
  sid int primary key auto_increment,
  sname varchar(20),
  age int,
  tid int,
  foreign key(tid) references teacher(tid));


二、 对数据的操作

2.1增加数据

insert into 表名 (字段1,字段2…) values (值1,值2…) ;

或者同时插入多条数据

2.2删除数据

delete from 表名 where 条件表达式

delete from yuan where name =‘jerry’;

2.3更新数据

update 表名 set 字段=新值,字段2=新值… where 条件

必须加条件 否则整个表的数据都会更新

update yuan set name=‘aaa’,sal=6000 where id=3;

2.4查询数据

2.4.1查询所有的数据

select * from 表名

select * from yuan;

2.4.2查询指定字段

select 字段1,字段2… from 表名

select id,name,sal from yuan;

2.4.3去除重复字段

select distinct 字段名 from 表名;

select distinct name from yuan;

2.4.4where表达式详解

算术表达式:+ - * / %

比较运算符: > >= < <= <>表示不等 =表示等于

逻辑运算符: and or not

(1) 查询工资大于3000

select * from 表名 where sal>3000;

select * from yuan where sal>3000;

(2) 查询工资不等于6000

select * from yuan where sal<>6000;

(3) 查询工资等于6000

select * from yuan where sal=6000

(4) 查询姓名是jim而且性别是女的信息

select * from yuan where name=’jim’ and sex=’女’;

(5) 查询不是女生的信息

select * from yuan where not sex=’女’;

(6) 查询工作在3000和5000之间的

between 表示范围 相当于>=3000 and <=5000

select * from yuan where sal between 3000 and 6000;

(7) 查询地区是保定 南京 沧州

in(值1,值2,值3) 表示是里面的任意一个值

(8) like 模糊查询

like后面可以跟字符串表示模糊查询,%代表任意字符,一个_代表一个字符

比如查询姓名叫张x 张xx

select * from yuan where name like ‘张%’;

比如查询叫x华 xx华 最后一个字是华

select * from yuan where name like ‘%华’;

比如查询中间带华的

select * from yuan where name like ‘%华%’;

2.4.5分组查询

count(*) 统计数量

max(字段名)最大值

min(字段名)最小值

sum(字段名)求和

avg(字段名)求平均值

数据表信息如下:

 求男生和女生的人数

select sex,count(*) from yuan group by sex;

 求部门工资的最大值

select b_id,max(sal) from yuan group by b_id;

 求每个地区的平均工资是多少

select area,avg(sal) from yuan group by area;

 分组以后再加条件用having

查询按地区分组然后平均工资小于等于6000的信息

select area,avg(sal) from yuan group by area having avg(sal)<=6000;

2.4.6排序

(1)升序和降序

按工资排序 取前三名

desc是降序 asc是升序

select * from yuan order by sal desc;

select * from yuan order by sal desc limit 3;

(2)limit详解

limit后面可以跟两个参数,第一个参数是开始的索引号,默认是0开始,第二个参数取的个数(长度)

select * from yuan order by sal desc limit 0,3;


三、 SQL语言

SQL(structured query language)是结构化查询语言的意思,mysql、oracle用的都是sql语言,只不过根据软件的不同儿语法稍有区别,就和我们的普通话和方言的意思是一样的。

上面的增删改查 对数据库和表的操作等都是sql语句。

SQL语言

3.1DML

DML(data manipulation language)数据操纵语言:就是我们最经常用到的 SELECT、UPDATE、INSERT、DELETE。 主要用来对数据库的数据进行一些操作。

SELECT 列名称 FROM 表名称
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
DELETE FROM 表名称 WHERE 列名称 = 值
3.2DDL

DDL(data definition language)数据库定义语言:其实就是我们在创建表的时候用到的一些sql,比如说:CREATE、ALTER、DROP等。DDL主要是用在定义或改变表的结构,数据类型,表之间的链接和约束等初始化工作上

CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)
ALTER TABLE table_name
ALTER COLUMN column_name datatype
DROP TABLE 表名称
DROP DATABASE 数据库名称
3.3DCL

DCL(Data Control Language)数据库控制语言:是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。这个比较少用到。

在公司呢一般情况下我们用到的是DDL、DML这两种。



相关文章
|
1天前
|
前端开发 Java 程序员
2025年了,PHP 还是“世界上最好的语言”吗?
“PHP是全世界最好的语言”源自2001年PHP官方文档,本为积极评价,后因PHP性能、安全等问题成为技术圈知名梗。Ruby调侃自己是程序员最好的朋友,其他语言如Go、Java、Python则低调介绍优势。前端CSS预处理语言Sass高调自称最成熟强大,Less则低调表示仅比CSS多一点。2025年TIOBE指数显示,PHP已跌至13名,Python位居第一。尽管PHP难回巅峰,但其早期辉煌仍值得怀念。
11 3
|
2月前
|
数据采集 JSON JavaScript
如何通过PHP爬虫模拟表单提交,抓取隐藏数据
本文介绍了如何使用PHP模拟表单提交并结合代理IP技术抓取京东商品的实时名称和价格,特别是在电商大促期间的数据采集需求。通过cURL发送POST请求,设置User-Agent和Cookie,使用代理IP绕过限制,解析返回数据,展示了完整代码示例。
如何通过PHP爬虫模拟表单提交,抓取隐藏数据
|
2月前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
55 5
|
2月前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
82 4
|
2月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
70 3
|
2月前
|
存储 SQL 数据处理
PHP中如何高效地处理大规模数据的排序?
在PHP中处理大规模数据排序时,选择合适的方法至关重要。对于内存内可以处理的数据,可以直接使用PHP内置排序函数;对于超出内存限制的数据,可以考虑分块处理、外部排序或利用数据库的排序功能。根据具体应用场景和数据规模,选择最佳的排序策略,确保排序操作高效且稳定。
29 2
|
2月前
|
SQL PHP 数据库
20 PHP如何捕获sql错误
路老师带你深入学习PHP,掌握技术干货。本文介绍了PDO中捕获SQL错误的三种模式:默认模式、警告模式和异常模式,以及如何使用errorCode()和errorInfo()方法进行错误处理。
77 2
|
2月前
|
关系型数据库 MySQL 数据库连接
13 PHP数据的获取
路老师在知乎上分享了PHP语言的知识,帮助大家入门和深入理解PHP。本文介绍了从结果集中获取一行数据作为对象(`mysqli_fetch_object()`)、获取一行作为枚举数组(`mysqli_fetch_row()`)、获取查询结果集中的记录数(`mysqli_num_rows()`)、释放内存(`mysqli_free_result()`)以及关闭数据库连接(`mysqli_close()`)的方法,并提供了具体示例代码。
42 3
|
2月前
|
PHP 容器
03 PHP语言基础知识
路老师的PHP教程系列,带你深入学习PHP语言。从常量、变量、操作符到表达式和函数,全面覆盖基础知识,助你快速入门并掌握核心技术。每天坚持学习,轻松成为PHP高手!
40 2
|
2月前
|
JSON 缓存 前端开发
PHP如何高效地处理JSON数据:从编码到解码
在现代Web开发中,JSON已成为数据交换的标准格式。本文探讨了PHP如何高效处理JSON数据,包括编码和解码的过程。通过简化数据结构、使用优化选项、缓存机制及合理设置解码参数等方法,可以显著提升JSON处理的性能,确保系统快速稳定运行。