GVKun编程网logo

2.Mysql SQL基础(mysql sql 基础教程)

4

在本文中,我们将带你了解2.MysqlSQL基础在这篇文章中,我们将为您详细介绍2.MysqlSQL基础的方方面面,并解答mysqlsql基础教程常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有

在本文中,我们将带你了解2.Mysql SQL基础在这篇文章中,我们将为您详细介绍2.Mysql SQL基础的方方面面,并解答mysql sql 基础教程常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的02-Postgres数据库官方文档笔记-SQL基础(待续)、8.1 SQL基础、Java学习笔记34(sql基础 :增删改查1)、JSTL SQL基础

本文目录一览:

2.Mysql SQL基础(mysql sql 基础教程)

2.Mysql SQL基础(mysql sql 基础教程)

2.Mysql SQL基础
2.1 SQL简介
SQL(Structure Query Language)是结构化查询语言。
2.2 SQL使用入门
2.2.1 SQL分类
SQL分为DDL、DML(DQL)、DCL3类。
DDL(Data Definition Language)数据定义语言,用来定义数据库对象,如:表、列、索引、数据库(模式)等,包括:create\drop\alter\truncate等。
DML(DQL)(Data Manipulation Language\Data Query Language)数据操作(查询)语言,用来操作记录数据,包括:insert\update\delete\select等。
DCL(Data Control Languages)数据控制语言,用来控制事务和权限,包括:commit\rollback\grant\revoke等。
2.2.2 DDL语句
1).创建数据库(mysql的数据库其实是schema)
语法:
crete database 数据库名;
举例:
create database test1;
--查看数据库
show databases;
--使用数据库
use test1;
--查看表
show tables;

2).删除数据库
语法:
drop database 数据库名;
注意:数据库删除后,数据库下的表和数据都会被删除。
举例:
drop database test1;
3).创建表
语法:
create table 表名(
列名 列数据类型 约束,
...
) ENGINE=存储引擎名 DEFAULT CHARSET=字符集;
举例:
create table emp(
empno int(8) not null,
ename varchar(20),
sal decimal(10,2),
hiredate date,
deptno int(8)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

--查看表定义
desc emp;
show create table emp;

4).删除表
语法:
drop table 表名;
举例:
drop table emp;

5).修改表
5.1) 增加列
语法:
alter table 表名 add [column] 列名 数据类型 约束 [FIRST|After col_name];
举例:
alter table emp add column comm decimal(10,2) After sal;
5.2) 修改列类型或列顺序
语法:
alter table 表名 modify [column] 列名 数据类型 约束 [FIRST|After col_name];
举例:
alter table emp modify column comm int(8) after deptno;
5.3) 修改列名
语法:
alter table 表名 change [column] 旧列名 新列名 数据类型 约束 [FIRST|After col_name];
举例:
alter table emp change column comm com decimal(10,2) after sal;
5.4) 删除列
语法:
alter table 表名 drop [column] 列名;
举例:
alter table emp drop column com;
5.5) 修改表名
语法:
alter table 表名 rename [to] 新表名;
举例:
alter table emp rename to emp1;

2.2.3 DML语句
6).新增记录
语法:
insert into 表名(列名,...) values (值,...);
举例:
insert into emp (empno,ename,sal,hiredate,deptno) values (1,''张三'',1000,''2000-01-01'',10);
按列的顺序,插入所有列值时,可以省略列名
insert into emp values (2,''李四'',1000,''2000-01-01'',10);
插入部分列值时,不可省略列名
insert into emp (empno,ename,sal) values (3,''王五'',1000);
支持多行插入
insert into emp (empno,ename,sal,hiredate,deptno) values
(4,''马六'',1000,''2000-01-01'',10),
(5,''孙七'',1000,''2000-01-01'',10);
支持子查询
insert into emp (empno,ename)
(select empno+10,concat(ename,''_10'') from emp where empno<3);

7).更新记录
语法:
update 表名 set 列名=值,... where 条件;
支持同时更新多个表的数据:
update 表1,表2,... set 表1.列名=表2.列名,... where 条件;
举例:
SET SQL_SAFE_UPDATES = 0;
update emp set sal=sal+1000,hiredate=now() where ename=''马六'';
update emp t1,emp t2 set t2.sal=t1.sal,t2.hiredate=t1.hiredate,t1.deptno=t2.deptno
where t1.ename=substring(t2.ename,1,2) and t2.empno in (11,12);
update emp set sal=(select deptno*1000 from dept where dname=''销售部'') where empno=3;
--update emp set (sal,ename)=(select deptno*100,loc from dept where deptno=emp.deptno) where empno=20;
不支持

8).删除记录
语法:
delete from 表名 where 条件;
支持同时删除多个表的数据:
delete 表1,表2,... from 表1,表2,... where 条件;
支持子查询:
delete from 表名 where 子查询;
例子:
create table dept(
deptno int(8) not null,
dname varchar(20),
loc varchar(100)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
insert into dept values (10,''开发部'',''北京'');
insert into dept values (20,''销售部'',''上海'');
delete from emp where ename=''孙七'';
delete emp,dept from emp,dept where emp.deptno=dept.deptno and dname=''开发部'';
insert into dept values (10,''开发部'',''北京'');
update emp set deptno=10 where empno in (1,11);
update emp set deptno=20 where empno in (2,12);
delete from emp where deptno=(select deptno from dept where dname=''开发部'');
delete from emp where not exists (select 1 from dept where dept.deptno=emp.deptno);

9).查询记录
语法:
select [distinct] *|列,...
from 表
where 条件
group by 分组列,... [with rollup] having 分组后条件
order by 排序列 asc|desc,...
limit 起始行数,显示行数
说明:
distinct 去重
* 代表所有列
条件 可以使用比较运算符= > < >= <= !=,还可以使用逻辑运算符关联多个条件,如and or not
order by可以按照多个列排序,ASC升序,DESC降序,默认是升序
limit 起始行数,显示行数 用于分页查询,如limit 100,10 即显示101行到110行这10行记录。
起始行数不写时默认为0,如limit 100 即显示前100行记录。
group by 按列进行分组聚合,聚合函数有sum\count\max\min\avg等
with rollup 表明是否对聚合后的结果进行再汇总
having 表示对分类后的结果再进行条件过滤(即使用分组后的条件)
举例:
select count(1) from emp;
select deptno,count(1) from emp group by deptno;
select deptno,count(1) from emp group by deptno with rollup;即分组统计部门人数又统计了所有部门的总人数

10).表连接
准备数据:
delete from emp;
delete from dept;
insert into emp (empno,ename,sal,hiredate,deptno) values (1,''张三'',1000,''2000-01-01'',10);
insert into emp values (2,''李四'',1000,''2000-01-01'',20);
insert into emp values (12,''李四_1'',1000,''2000-01-01'',20);
insert into emp (empno,ename,sal) values (3,''王五'',1000);
insert into dept values (10,''开发部'',''北京'');
insert into dept values (20,''销售部'',''上海'');
insert into dept values (30,''xx部'',null);
连接分为5种:笛卡尔积cross join,内连接(等值连接)inner join,左外连接left join,右外连接right join,全外连接full join。
10.1) 笛卡尔积cross join
select * from emp cross join dept;
10.2) 内连接(等值连接)inner join
select * from emp inner join dept on emp.deptno=dept.deptno;
select * from emp,dept where emp.deptno=dept.deptno;
10.3) 左外连接left join
select * from emp left join dept on emp.deptno=dept.deptno;
--select * from emp,dept where emp.deptno=dept.deptno(+);
10.4) 右外连接right join
select * from emp right join dept on emp.deptno=dept.deptno;
10.5) 全外连接full join(mysql不支持full join)
--select * from emp full join dept on emp.deptno=dept.deptno;
select * from emp left join dept on emp.deptno=dept.deptno
union
select * from emp right join dept on emp.deptno=dept.deptno;

11).子查询
11.1)select子查询
select
empno,ename,deptno,
(select dname from dept where deptno=emp.deptno) dname
from emp;
11.2)from子查询
select *
from dept,(select * from emp where sal>2000) emp
where dept.deptno=emp.deptno;
11.3) where子查询
select * from emp
where deptno in (select deptno from dept where dname=''RESEARCH'');
11.4) insert子查询
insert into dept (deptno,dname)
select round(empno/100),upper(ename) from emp where job=''MANAGER'';
11.5) update子查询
SET SQL_SAFE_UPDATES = 0;
update emp set sal=(select deptno*1000 from dept where deptno=emp.deptno) where empno=7369;
--update emp set (sal,ename)=(select deptno*100,loc from dept where deptno=emp.deptno) where empno=7369;
等价修改为:
update emp,dept
set sal=dept.deptno*10,ename=dept.loc
where emp.deptno=dept.deptno and ename=''SMITH'';
11.6) delete子查询
delete from emp where deptno=(select deptno from dept where dname=''开发部'')and empno=7639;
delete from emp where not exists (select 1 from dept where dept.deptno=emp.deptno) and empno=7639;

12).并交差
12.1) union all 合并不去重
select * from emp where deptno in (10,20)
union all
select * from emp where deptno in (10,30);
12.2) union 合并且去重(union all+distinct)
select * from emp where deptno in (10,20)
union
select * from emp where deptno in (10,30);
12.3) Intersect 交集 mysql不支持
select * from emp where deptno in (10,20)
intersect
select * from emp where deptno in (10,30);
等价实现:
select * from
(select * from emp where deptno in (10,20)) t1,
(select * from emp where deptno in (10,30)) t2
where t1.empno=t2.empno;
12.4) minus/except 差集 mysql不支持
select * from emp where deptno in (10,20)
minus/except
select * from emp where deptno in (10,30);
等价实现:
select * from emp where deptno in (10,20)
and empno not in (select empno from emp where deptno in (10,30));

2.2.4 DCL语句
commit 提交
rollback 回退
grant 授权
revoke 回收权限
例子:
update emp set ename=''SMITH'' where empno=7369;
commit;
update emp set ename=''SMITH_1'' where empno=7369;
rollback;
--因为mysql设置的自动提交,所以不需要使用commit显示提交,且rollback回退命令失效。
语法:
grant 权限 on 模式.表 to 用户;
revoke 权限 on 模式.表 from 用户;
例子:
grant select,insert on scott.* to ''li''@''%'' identified by ''123''; -- 授权并创建用户
revoke insert on scott.* from ''li''@''%''; -- 回收权限

2.3 帮助的使用
2.3.1 按照层次看帮助
? contents 用来显示可供查询的分类
? 类别名称 可以查看某个类别的详细信息,如:
? data type 查看到所有的数据类型
? auto_increment 查看自增长类型
? int 查看int类型
2.3.2 快速查阅帮助
? 关键字 关键字快速查询
? show 查看show命令可以查看的内容及show命令语法
? create table 查看建表语句语法
2.3.3 常用的网络资源
https://dev.mysql.com/downloads/ mysql官网,可以下载mysql及相关开发工具
https://dev.mysql.com/doc 文档下载
https://bugs.mysql.com bug列表及bug报告提交
https://www.mysql.com/news-and-events/newsletter/ mysql最新消息

2.4 查询元数据信息
元数据是指数据的数据,即表名、列名、列类型、索引名等
5.0之前的版本查看元数据只能通过如下命令:
show tables; 查看模式下的所有表
show create table table_name; 查看某个表的建表语句
show table status; 查看模式下所有表的状态
举例:
show tables;
show create table emp;
show table status;
show databases;
show tables from scott;
show columns from scott.emp;
show index from scott.emp;
5.0之后的版本新增了information_schema库(模式),用来记录mysql中的元数据,可以通过下列表批量查看元数据:
SCHEMATA:记录mysql实例中所有的数据库信息,show databases命令取自SCHEMATA;
TBALES:记录数据库中所有表的信息及表的属性信息,show tables from schemaname命令取自TBALES;
COLUMNS:记录数据库中表的所有列信息及列的属性信息,show columns from schemaname.tablename命令取自COLUMNS;
STATISTICS:提供有关表索引的信息,show index from schemaname.tablename命令取自STATISTICS。
举例:
select * from information_schema.SCHEMATA;
select * from information_schema.TABLES where table_schema=''scott'';
select * from information_schema.COLUMNS where table_schema=''scott'' and table_name=''emp'';
select * from information_schema.STATISTICS where table_schema=''scott'' and table_name=''emp'';

2.5 小结

02-Postgres数据库官方文档笔记-SQL基础(待续)

02-Postgres数据库官方文档笔记-SQL基础(待续)

2.1. SQL语言基础知识

可以在 SQL 命令中自由使用空白(空格/tab/换行符)。

psql 可以识别命令直到分号才结束。

SQL对关键字和标识符大小写不敏感言,只有在标识符用双引号包围时才保留大小写属性。

Postgres SQL 支持标准的 SQL 类型:int, smallint, real, double precision, char(N), varchar(N), date, time, timestamp, interval ,还支持其它的通用类型和丰富的几何类型。

PostgreSQL 允许你自定义任意数量的数据类型。

-- point 类型就是一种 PostgreSQL 特有的数据类型的例子。
-- 将保存城市和它们相关的地理位置:

CREATE TABLE cities (
    name            varchar(80),
    location        point
);

-- point 类型要求一个座标对作为输入,如下:

INSERT INTO cities VALUES (''San Francisco'', ''(-194.0, 53.0)'');

2.2. copy

COPY 在表和文件之间交换数据。

COPY 只能用于表,不能用于视图。当然也可以用于 COPY (SELECT * FROM viewname) TO ...

COPY country TO STDOUT WITH DELIMITER ''|'';
-- 把一个表拷贝到客户端,使用竖直条(|)作为域分隔符:

COPY country FROM ''/usr1/proj/bray/sql/country_data'';
-- 从文件中拷贝数据到 country 表中:
-- 源文件的文件名必须是后端服务器可访问的,而不是客户端可访问的,因为后端服务器直接读取文件。

COPY (SELECT * FROM country WHERE country_name LIKE ''A%'') TO ''/usr1/proj/bray/sql/a_list_countries.copy'';
-- 使用一个会被自动删除的临时表,把''A''开头的国家名拷贝到一个文件里.
-- SQL语句用()括起来,文件名用''''引起来。

语法:

COPY tablename [ ( column [, ...] ) ]
    FROM { ''filename'' | STDIN }
    [ [ WITH ] 
          [ BINARY ]
          [ OIDS ]
          [ DELIMITER [ AS ] ''delimiter'' ]
          [ NULL [ AS ] ''null string'' ]
          [ CSV [ HEADER ]
                [ QUOTE [ AS ] ''quote'' ] 
                [ ESCAPE [ AS ] ''escape'' ]
                [ FORCE NOT NULL column [, ...] ]

COPY { tablename [ ( column [, ...] ) ] | ( query ) }
    TO { ''filename'' | STDOUT }
    [ [ WITH ] 
          [ BINARY ]
          [ HEADER ]
          [ OIDS ]
          [ DELIMITER [ AS ] ''delimiter'' ]
          [ NULL [ AS ] ''null string'' ]
          [ CSV [ HEADER ]
                [ QUOTE [ AS ] ''quote'' ] 
                [ ESCAPE [ AS ] ''escape'' ]
                [ FORCE QUOTE column [, ...] ]

2.3. 查询、聚集

要用到的两张表: I

city temp_lo temp_hi prcp date
San Francisco 46 50 0.25 1994-11-27
San Francisco 43 57 0 1994-11-29
Hayward 37 54 1994-11-29
-- 查询气温最高的是哪个城市:

SELECT city FROM weather WHERE temp_lo = max(temp_lo);     
-- 错!因为聚集函数 max 不能用于 WHERE 子句中。存在这个限制是因为 WHERE 子句决定哪些行可以进入聚集阶段;

-- 可以用子查询实现这个目的:
SELECT city FROM weather
    WHERE temp_lo = (SELECT max(temp_lo) FROM weather);     city
---------------
 San Francisco
(1 row)

理解聚集和 SQL 的 WHERE 和 HAVING 子句之间的关系非常重要。

WHERE 和 HAVING 的基本区别如下: WHERE 在分组和聚集计算之前选取输入行(它控制哪些行进入聚集计算),而 HAVING 在分组和聚集之后选取输出行。

因此,WHERE 子句不能包含聚集函数;因为试图用聚集函数判断那些行将要输入给聚集运算是没有意义的。相反,HAVING 子句总是包含聚集函数。

当然,你可以写不使用聚集的 HAVING 子句,但这样做没什么好处,因为同样的条件可以更有效地用于 WHERE 阶段。

-- 查询低温中的最高温度(max temp_lo值)低于 40 度、名字以"S"开头的城市
-- 可以在 WHERE 里应用城市名称限制,因为它不需要聚集。这样比在 HAVING 里增加限制更加高效,因为我们避免了为那些未通过 WHERE 检查的行进行分组和聚集计算。

SELECT city, max(temp_lo)
    FROM weather
    WHERE city LIKE ''S%''
    GROUP BY city
    HAVING max(temp_lo) < 40;

8.1 SQL基础

8.1 SQL基础

在本章节中,我们将讨论 Python 数据库操作的基础知识,重点关注 SQL(Structured Query Language,结构化查询语言)。SQL 是用于管理关系型数据库的标准编程语言,可以用来执行数据定义、数据操作和数据控制等任务。

8.1 SQL 基础

SQL 主要分为以下几类操作:

  1. 数据定义语言(DDL,Data Definition Language):用于定义数据库结构的操作,如创建、修改、删除表结构等。常用语句包括 CREATEALTERDROP 等。
  2. 数据操作语言(DML,Data Manipulation Language):用于操作数据库中的数据,如插入、更新、删除数据等。常用语句包括 INSERTUPDATEDELETE 等。
  3. 数据查询语言(DQL,Data Query Language):用于查询数据库中的数据。常用语句为 SELECT
  4. 数据控制语言(DCL,Data Control Language):用于控制数据库访问权限和事务处理,如授权、撤销权限等。常用语句包括 GRANTREVOKECOMMITROLLBACK 等。

接下来,我们将学习 SQL 的基本语法和操作。

8.1.1 数据库和表的创建

创建一个数据库:

CREATE DATABASE mydb;

创建一个表:

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    age INT NOT NULL,
    email VARCHAR(100)
);

8.1.2 数据的插入、查询、更新和删除

插入数据:

INSERT INTO users (name, age, email) VALUES (''Alice'', 30, ''alice@example.com'');

查询数据:

SELECT * FROM users; -- 查询所有数据
SELECT * FROM users WHERE age > 25; -- 查询年龄大于 25 的用户
SELECT name, email FROM users; -- 只查询用户名和电子邮件

排序、分组和聚合:

SELECT * FROM users ORDER BY age DESC; -- 按年龄降序排序
SELECT age, COUNT(*) FROM users GROUP BY age; -- 按年龄分组,统计每个年龄段的用户数量
SELECT AVG(age) FROM users; -- 计算平均年龄

更新数据:

UPDATE users SET age = 31 WHERE name = ''Alice''; -- 将名为 Alice 的用户年龄更新为 31

删除数据:

DELETE FROM users WHERE id = 1; -- 删除 id 为 1 的用户

8.1.3 索引、连接和子查询

创建索引:

CREATE INDEX idx_users_email ON users (email); -- 为 email 列创建索引

连接表(以 INNER JOIN 为例):

-- 假设有另一个表 orders,包含 user_id 和 order_date 列
SELECT users.name, orders.order_date
FROM users
INNER JOIN orders ON users.id = orders.user_id;

子查询:

SELECT * FROM users WHERE age > (SELECT AVG(age) FROM users); -- 查询年龄大于平均年龄的用户

8.1.4 Python 中的数据库操作

为了在 Python 中操作数据库,我们需要使用相应的数据库适配器。以 MySQL 为例,我们可以使用 mysql-connector-python 库。首先,安装该库:

pip install mysql-connector-python

然后,你可以使用以下代码连接到 MySQL 数据库并执行 SQL 语句:

import mysql.connector

# 连接数据库
cnx = mysql.connector.connect(
    host=''localhost'',
    user=''your_username'',
    password=''your_password'',
    database=''mydb''
)

# 创建游标
cursor = cnx.cursor()

# 执行 SQL 语句
cursor.execute(''SELECT * FROM users'')

# 获取查询结果
result = cursor.fetchall()
for row in result:
    print(row)

# 关闭游标和连接
cursor.close()
cnx.close()

以上就是 Python 数据库操作及 SQL 基础的相关内容。为了更好地学习和理解这些知识点,建议你在实际项目中亲自动手操作,逐渐积累经验。 参考文章:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

file

Java学习笔记34(sql基础 :增删改查1)

Java学习笔记34(sql基础 :增删改查1)

create database qy97;/*创建数据库*/
use qy97; /*使用数据库 use 数据库名*/
show tables; /*查看所有的表*/
select database();/*查看当前所在的数据库*/
/*==================================================
1.创建表*/

/*创建表stu*/
/*创建表格式:
create table 表名(
  列名1  数据类型 约束 ,
  列名2 数据类型  约束,
  列名3 数据类型  约束
)
PRIMARY KEY 设置为主键,确保数据的唯一性*/
/*创建表stu,列名1为id,列名2为name,并设置id为主键
  设置为主键的列数据不能为空
*/
create table stu(
    id int primary key auto_increment,
    /*primary key auto_increment这句话的意思是id设置为主键,并实现自动增长*/
    name varchar(50)
);
desc stu;/*查看表的结构*/
drop table stu;/*删除数据表*/
/*===================================================
2.修改表结构*/
create table users(
  id int primary key auto_increment,
  name varchar(50),
  address varchar(50)
);
desc users;
/*添加列
alter table 表名 add 列名 数据类型 约束*/
alter table users add sex varchar(20);

/*修改列(在原有的列上修改属性,修改列的数据类型 约束)
alter table 表名 modify 修改的列名 数据类型 约束*/
alter table users modify  sex int;
desc users;
/*修改列名
alter talbe 表名 change 旧列名 新列名 数据类型 约束*/
alter table users change sex password int ;
desc users;
/*修改表:删除列
alter table 表名 drop 要删除的列名*/
alter table users drop password;
desc users;
/*修改表名
rename table 旧表名 to 新表名;*/
rename table users to student;
show tables;
/*=====================================================
3.修改表中数据*/
/*向表中添加数据*/
create table shop(
#   设置主键自动增长
  id int primary key auto_increment,
#   设置约束为非空
  name varchar(50) not null ,
  price double
);
/*向表中加入数据
insert into 表名(列名1,列名2,列名3) value (值1,值2,值3);
应注意值与列数据类型,位置对应*/
insert into shop (id,name,price) value (1,''小米'',999.99);
insert into shop (id,name,price) value (2,''华为'',989.89);
/*当表中的每一列都给出数据时,可以不写列名
insert into 表名 value (值1,值2,...);*/
insert into shop value (3,''电脑'',5555.55);
/*因为表中id设置为主键自动增长,因此不写主键的值时,会自动增加
添加的数据值会与前面的列名匹配,当没有列没有设置约束非空,也没有添加值时,默认为null*/
insert into shop(name, price) value(''电视'',33.3);
/*向表中批量添加多组数据
insert into 表名(列名...) values
(值...),
(值...),
(值...);*/
insert into shop(name,price) values
(''冰箱'',43.44),/*这里id自动增长*/
(''空调'',643.9);

/*修改表中数据
update 表名 set 列名=值 where 条件
where 条件 数据中的唯一性*/
update shop set  price=50 where id=3;
update shop set  name=''洗衣粉'',price=5 where id=5;
/*修该表中数据条件的写法
  id=6;  等于    不要写==
  id<>6;不等于
  id>=6;

  与或非&|!
  &&要写成and
  ||要写成or
  !要写成not
  id in(1,3,5,7);包含
*/
update shop set price=3000 where  id=2 or id=6;

update shop set name=''康帅博'' where id in(1,4,7,5,6);
/*删除表中数据
delete from 表名 where 条件
drop table 表名    删除整个数据表
还有一个truncate方法也是删除,区别在于删除后重新建表自增重新开始,而delete方法不影响自增
*/
delete from shop where id=8;
drop  table  shop;
/*=================================================
4.查询表中数据*/
show  tables;
insert into student values
(1,'''',''河南''),
(2,'''',''郑州''),
(3,'''',''洛阳''),
(4,'''',''洛阳'');
insert into student(id,name) value (5,'''');
insert into student(id,name) value (6,'''');
insert into student value (7,''sun'',''南阳'');
/*查询表中所有数据
select * from 表名*/
select * from student;
/*查询表中指定条件的数据
select 列名 from 表名 where 条件*/
select name from student where id=2;
select name,id from student where address=''洛阳'';
/*查询去掉重复记录
DISTINCT 关键字 跟随列名*/
select distinct address from student;
/*查询列并对结果集重新命名,只是对结果集的列名重新命名,表中的列名并不改变
select 列名 AS ''新列名'' from 表名;    注意新列名要加''''*/
select name AS ''姓名'' from student;
select  * from  student;
/*查询数据中直接对结果进行结果计算*/
select id+100 as ''sum'' from student where name='''';
/*查询满足条件的所有数据*/
select * from student where address=''洛阳'';
/*查询id在2-4之间的数据*/
select * from student where id>=2 and  id<=4;
/*上面语句还可以用between来查询*/
select * from student where id between 2 and 4;
/*查询id不是3的名字*/
select name from student where id !=3;
/*查询id在1,2,4中任意一个的所有信息*/
select * from student where id=1 or id=2 or id=4;
/*上面语句用in语句*/
select * from student where id in (1,2,4);

/*like模糊查询   配合通配符
只要地址有洛字的都查出来*/
select * from student where address like ''%阳%'';
/*查询名字 三个字符的*/
select * from student where name like''___'';
/*插询地址不为空的所有信息*/
select * from student where address is not null;

 

JSTL SQL基础

JSTL SQL基础

如何解决JSTL SQL基础

| 有没有人有很好的参考可以帮助我理解JSTL sql Basics 我已经经历了 http://www.tutorialspoint.com/jsp/jsp_database_access.htm 但是需要一些东西来详细解释JSTL sql的语法以及映射的实际工作方式。     

解决方法

        只需参考自己的教程即可。 请注意,不建议将此taglib用于生产。它旨在进行快速原型制作。这是链接教程第一段的直接引用:   表7-7中列出的用于访问数据库的JSTL SQL标记旨在用于快速原型设计和简单的应用程序。对于生产应用程序,数据库操作通常封装在JavaBeans组件中。 至于“正常”的完成方式,您可能会发现本教程对您起步很有帮助。 与问题无关,我不确定为什么在问题上标记了“ 0”。请勿将JSTL和其他标记库与脚本集混淆。但是我只想明确地说,不鼓励使用scriptlet。有关更多详细信息,请参见如何避免JSP文件中的Java代码?     

今天关于2.Mysql SQL基础mysql sql 基础教程的介绍到此结束,谢谢您的阅读,有关02-Postgres数据库官方文档笔记-SQL基础(待续)、8.1 SQL基础、Java学习笔记34(sql基础 :增删改查1)、JSTL SQL基础等更多相关知识的信息可以在本站进行查询。

本文标签: