在本文中,我们将带你了解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 基础教程)
- 02-Postgres数据库官方文档笔记-SQL基础(待续)
- 8.1 SQL基础
- Java学习笔记34(sql基础 :增删改查1)
- JSTL 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基础(待续)
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基础
在本章节中,我们将讨论 Python 数据库操作的基础知识,重点关注 SQL(Structured Query Language,结构化查询语言)。SQL 是用于管理关系型数据库的标准编程语言,可以用来执行数据定义、数据操作和数据控制等任务。
8.1 SQL 基础
SQL 主要分为以下几类操作:
- 数据定义语言(DDL,Data Definition Language):用于定义数据库结构的操作,如创建、修改、删除表结构等。常用语句包括
CREATE
、ALTER
、DROP
等。 - 数据操作语言(DML,Data Manipulation Language):用于操作数据库中的数据,如插入、更新、删除数据等。常用语句包括
INSERT
、UPDATE
、DELETE
等。 - 数据查询语言(DQL,Data Query Language):用于查询数据库中的数据。常用语句为
SELECT
。 - 数据控制语言(DCL,Data Control Language):用于控制数据库访问权限和事务处理,如授权、撤销权限等。常用语句包括
GRANT
、REVOKE
、COMMIT
、ROLLBACK
等。
接下来,我们将学习 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
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 Basics 我已经经历了 http://www.tutorialspoint.com/jsp/jsp_database_access.htm 但是需要一些东西来详细解释JSTL sql的语法以及映射的实际工作方式。解决方法
今天关于2.Mysql SQL基础和mysql sql 基础教程的介绍到此结束,谢谢您的阅读,有关02-Postgres数据库官方文档笔记-SQL基础(待续)、8.1 SQL基础、Java学习笔记34(sql基础 :增删改查1)、JSTL SQL基础等更多相关知识的信息可以在本站进行查询。
本文标签: