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这两种。



相关文章
|
7天前
|
SQL 存储 Oracle
Oracle的PL/SQL定义变量和常量:数据的稳定与灵动
【4月更文挑战第19天】在Oracle PL/SQL中,变量和常量扮演着数据存储的关键角色。变量是可变的“魔术盒”,用于存储程序运行时的动态数据,通过`DECLARE`定义,可在循环和条件判断中体现其灵活性。常量则是不可变的“固定牌”,一旦设定值便保持不变,用`CONSTANT`声明,提供程序稳定性和易维护性。通过 `%TYPE`、`NOT NULL`等特性,可以更高效地管理和控制变量与常量,提升代码质量。善用两者,能优化PL/SQL程序的结构和性能。
|
27天前
|
SQL 存储 关系型数据库
一文搞懂SQL优化——如何高效添加数据
**SQL优化关键点:** 1. **批量插入**提高效率,一次性建议不超过500条。 2. **手动事务**减少开销,多条插入语句用一个事务。 3. **主键顺序插入**避免页分裂,提升性能。 4. **使用`LOAD DATA INFILE`**大批量导入快速。 5. **避免主键乱序**,减少不必要的磁盘操作。 6. **选择合适主键类型**,避免UUID或长主键导致的性能问题。 7. **避免主键修改**,保持索引稳定。 这些技巧能优化数据库操作,提升系统性能。
226 4
一文搞懂SQL优化——如何高效添加数据
|
1月前
|
SQL 存储 BI
【软件设计师备考 专题 】数据库语言(SQL)
【软件设计师备考 专题 】数据库语言(SQL)
90 0
|
1月前
|
SQL 数据可视化 数据处理
使用SQL和Python处理Excel文件数据
使用SQL和Python处理Excel文件数据
54 0
|
15天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
88 6
|
2天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
|
6天前
|
Java Go PHP
开发语言漫谈-PHP
PHP即“Hypertext Preprocessor”
|
7天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标属性:数据的“导航仪”与“仪表盘”
【4月更文挑战第19天】Oracle PL/SQL游标属性如同车辆的导航仪和仪表盘,提供丰富信息和控制。 `%FOUND`和`%NOTFOUND`指示数据读取状态,`%ROWCOUNT`记录处理行数,`%ISOPEN`显示游标状态。还有`%BULK_ROWCOUNT`和`%BULK_EXCEPTIONS`增强处理灵活性。通过实例展示了如何在数据处理中利用这些属性监控和控制流程,提高效率和准确性。掌握游标属性是提升数据处理能力的关键。
|
7天前
|
SQL Oracle 安全
Oracle的PL/SQL循环语句:数据的“旋转木马”与“无限之旅”
【4月更文挑战第19天】Oracle PL/SQL中的循环语句(LOOP、EXIT WHEN、FOR、WHILE)是处理数据的关键工具,用于批量操作、报表生成和复杂业务逻辑。LOOP提供无限循环,可通过EXIT WHEN设定退出条件;FOR循环适用于固定次数迭代,WHILE循环基于条件判断执行。有效使用循环能提高效率,但需注意避免无限循环和优化大数据处理性能。掌握循环语句,将使数据处理更加高效和便捷。
|
7天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL条件控制:数据的“红绿灯”与“分岔路”
【4月更文挑战第19天】在Oracle PL/SQL中,IF语句与CASE语句扮演着数据流程控制的关键角色。IF语句如红绿灯,依据条件决定程序执行路径;ELSE和ELSIF提供多分支逻辑。CASE语句则是分岔路,按表达式值选择执行路径。这些条件控制语句在数据验证、错误处理和业务逻辑中不可或缺,通过巧妙运用能实现高效程序逻辑,保障数据正确流转,支持企业业务发展。理解并熟练掌握这些语句的使用是成为合格数据管理员的重要一环。