数据库笔记1:数据库基本语句
虽然select语句可以一次性查出所有的数据,但受计算机屏幕大小的限制,每次只能看到部分行的内容,要看其它内容的时候就要用到滚动条。由于网络的限制,对于web应用来说,这种方式的效率非常低下,数据量比较大的时候几乎是不能使用的。
事实上,通常采用的方法是根据屏幕的大小,一次只查出部分行并显示,如果要看其它的内容,通常采用分页的方式。
那如何在SQL语句中查部分行的内容呢?就要用到limit关键字了。
kingbase中可以用下面的语句:
1、查询第一行记录:
select * from 表名 limit 1
2、查询第n行到第m行记录
select * from 表名 offset n-1 limit m-n;
3、查询前n行记录
select * from 表名 limit n;
mysql中可以用下面的语句:
1、查询第一行记录:
select * from 表名 limit 1
2、查询第n行到第m行记录
select * from 表名 limit n-1,m-n;
3、查询前n行记录
select * from 表名 limit n;
上面的n和m可以通过计算得到,比如用“select count(*) from 表名”先得到所有的数据的个数,再根据每一个页面能够显示的项目数,进行简单的计算,就可以得到想要得结果。
灵活运用上面的语句有时可以起到意想不到的效果!比如要查找选修课程最多的学生的学号和选课数可以只用下面的一条语句就可以实现了。
select 学号,count(课程号) 选课数 from 学生选课.选课 group by 学号 order by 选课数 desc limit 1;
当然如果只想查出选修课程最多的学生的学号就要麻烦一些了,用下面的语句
select 学号 from(select 学号,count(课程号) 选课数 from 学生选课.选课 group by 学号) t order by t.选课数 desc limit 1;
创建表
create tabel 表名
create table customers
(
cust_id int not null auto_increment,
--不能为空,增量(可以付初始值))
cust_name char(50) not null,
cust_address char(50) null,
cust_city char(50) null,
cust_state char(5) null,
cust_zip char(10) null,
cust_country char(50) null,
cust_contact char(50) null,
cust_email char(50) null,
primary key(cust_id)
--指定主键
)engine=innodb;
--引擎
组合主键
primary key(order_num,order_item)
--删除数据库
drop database 数据库名字
------------------------------------------------------------
create table customers
(
item_price decimal(8,2) not null,
cust_name char(50) not null,
quantity int not null default 1,
cust_address char(50) null,
cust_city char(50) null,
cust_state char(5) null,
cust_zip char(10) null,
cust_country char(50) null,
cust_contact char(50) null,
cust_email char(50) null,
primary key(cust_id,quantity)
--指定主键
)engine=innodb;
------------------------------------------------------------------
--给vendors表增加一个vend_phone的列表
alter table vendors
add vend_phone char(20);
--删除整个表
drop table customers2;
--重命名表
rename table customers2 to customers;
--删除列
alter table vendors
drop column vend_phone;
只修改列的数据类型的方法:
通常可以写成 alter table 表名 modify column 列名 新的列的类型
例如:student表中列sname的类型是char(20),现在要修改为varchar(20),SQL语句如下
alter table student modify column sname varchar(20);
同时修改列名和列的数据类型的方法:
通常可以写成 alter table 表名 change column 旧列名 新列名 新的列类型
例如:student表中列sname的类型是char(20),现在要修改为stuname varchar(20),SQL语句如下
alter table student change column sname stuname varchar(20);
----------------------------------------------------------------------------------------------------
--插入行
insert into customers
(
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email
)
values
(
null,
'pep e.lapew',
'100 main street',
'los angeles',
'ca',
'90046',
'usa',
null,
null,
);
--插入多行
insert into customers
(
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
)
values
(
'pep e,lapew',
'100 main street',
'los angeles',
'ca',
'90046',
'usa'
),
values
(
'm.martian',
'42 galaxy way',
'new york',
'ny',
'11213',
'usa'
);
--表插入到表
insert into customers
(
cust_id,
cust_contact,
cust_email,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
)
select cust_id,
cust_coutact,
cust_email,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
--从custnew里面
from custnew;
------------------------------------------------------------------------
修改行
update customers
set cust_email = 'elmer@fudd.com'
cust_name = ‘the fudds’
where cust_id = 10005;
删除值
update customers
set cust_email = null
where cust_id = 10005;
删除一行
delete from customers
where cust_id = 10006;
修改所有行
----------------------------------------------------------------------------
--降低into优先级
insert low_priority into
--降低update优先级
insert low_priority update
--降低delete优先级
insert low_priority delete
转载于:https://blog.51cto.com/1095221645/1431345
数据库笔记1:数据库基本语句相关推荐
- 数据库笔记(数据库操作)
1.windows系统下 数据库启动 net start mysql 2.连接与断开服务器 MySQL -h 地址 -p 端口 -u 用户名 -p 密码 3.查看当前数据库 select databa ...
- JavaWeb学习笔记(数据库、SQL语句、数据查询语法、完整性约束、编码、备份和恢复数据、多表查询)
数据库.SQL语句.数据查询语法.完整性约束.编码.备份和恢复数据.多表查询 JavaWeb学习笔记 数据库 数据库概念 基本命令 启动和关闭mysql服务器 客户端登录退出mysql SQL语句 S ...
- 数据库课堂笔记3(SQL语句)
SQL语句 操作数据库语句(DDL语句) 连接数据库 语句:mysql -u用户名 -p 按空格后会显示 enter password:输入密码 举例 sqlyog连接数据库时设置的用户名是root, ...
- 数据库笔记: SQL
1 数据库语言 DBMS提供操作命令和语言,使用户能够对数据库进行各式各样的操作,例如查询.增.删.改数据,定义.修改数据模式等 --- >这就构成了用户和数据库的接口. DBMS所提供的语言一 ...
- Django 笔记5 -- 数据库
Django 笔记5 – 数据库 Django 系列笔记是笔者学习.实践使用 Django 的相关笔记,大量参考了知了课堂的<Django零基础到项目实战>教程. 参考文档: Django ...
- Qt学习笔记之数据库
一.数据库简介 1.1.数据和数据库(DB) 用计算机进行数据处理,首先就要把信息以数据形式存储到计算机中,故数据是可以被计算机接受和处理的符号.根据所表示的信息特征不同,数据有不同的类别,如数字.文 ...
- 家族关系查询系统程序设计算法思路_【学习笔记】数据库基础 - 查询优化
目录 什么是数据库查询优化? 影响查询优化的因素 优化策略概述 查询优化的总体思路 语义优化 -- 内容等价性 语法优化(逻辑层优化)---语法等价性 执行优化(物理层优化) 查询优化在DBMS中的位 ...
- winform执行oracle语句,C#中的Winform应用程序连接远程Oracle数据库的配置文件及SQL语句的写法...
远程连接Oracle数据库的配置文件及sql语句 近期,应朋友的要求,用C#语言开发了一个winform应用程序,要求的是连接到远程的Oracle数据库,用惯了SQL Server的我突然有点懵,然后 ...
- 笔记47-徐 数据库引擎中基于行版本控制的隔离级别
笔记47-徐 数据库引擎中基于行版本控制的隔离级别 MSSQL隔离级别 READ UNCOMMITTED(未提交读),相当于(NOLOCK) READ COMMITTED(已提交读,默认) REPEA ...
最新文章
- LVS集群---做前端调度器搭建使用
- Gradle构建脚本概要之构建块
- python 左旋转字符串
- 【OpenCV3】cv::Mat的定义与初始化
- 关于cookie domain中的点前缀
- 【python数字信号处理】——循环卷积(也叫圆圈卷积)
- Go-json解码到结构体
- arcmap shp导出cad无反应_如何使用ArcMap将Excel数据转换为shp数据
- vivado顶层模块怎么建_【第2040期】Node 模块化之争:为什么 CommonJS 和 ES Modules 无法相互协调...
- GMAIL DRIVE 提供邮箱一样大小的硬盘
- 深入理解Java中间件Zookeeper
- MongoDB 通过 Java 代码 CRUD 文档
- 【毕设教程】物联网/嵌入式/单片机毕业设计项目开发流程
- python 生成有效的四要素
- bitbucket配置_用Bitbucket搭建博客初探
- 【zer0pts CTF 2022】 Anti-Fermat(p、q生成不当)
- 《速度与激情》男主演保罗沃克车祸身亡,再见速度再见难续的激情
- win10照片应用打不开的解决方法
- Linux系统rar格式怎么解压,如何在linux下解压缩rar格式的文件压缩包
- mysql 出现2003- cant connect to MYSQL server on localhost 的解决办法