SQL语句学习(一)
这篇文章用来记录再学习SQL语句的过程。
首先,我们从简单的创建表开始。创建表的语法是CREATE TABLE 表名(列1的名字 列1的属性,列2的名字 列2的属性...);
如果希望将某一列作为主键,我们可以在该列的属性中添加PRIMARY KEY,并且我们可以用auto_increment属性将该列设为自增。注意,自增的值同样可以手动设置值。
create table t_Customer(
customer_id int(11) primary key not null auto_increment,
First_name char(50),
Last_name char(50),
Address char(50),
City char(50),
Country char(50),
Birth_Date datetime);
这里,我们创建了一张名为t_Customer的表,并将custmoer_id设为主键。
除了上述方法设置主键之外,我们还可以在最后一列之后添加PRIMARY KEY(customer_id)来设置主键。
来试一下将First_name和Last_name组合作为主键。
首先我们需要删除表之前的主键,
ALTER TABLE t_customer DROP PRIMARY KEY;
这里我们可能会被告知自增只能定义在主键上,所以我们需要先删除主键上的自增属性:
ALTER TABLE t_customer CHANGE customer_id customer_id INT(11) NOT NULL;
虽然此时我们没有写上customer_id是主键,但实际上主键仍然是它,因此我们需要重复之前的步骤,删除主键,
之后再添加主键。
ALTER TABLE t_customer ADD PRIMARY KEY(First_name, Last_Name);
我们将主键重新改为id,然后往表里插入数据:
INSERT INTO t_customer(First_name, Last_name, Address, City, Country, Birth_Date) VALUES('Mei','Han','1st Street','Seattle','USA','1989-03-04');
INSERT INTO t_customer(First_name, Last_name, Address, City, Country, Birth_Date) VALUES('Jacob','Liu','2nd Street','Seattle','USA','1991-11-02');
INSERT INTO t_customer(First_name, Last_name, Address, City, Country, Birth_Date) VALUES('Edward','Andrew','4th Street','Seattle','USA','1978-10-24');
INSERT INTO t_customer(First_name, Last_name, Address, City, Country, Birth_Date) VALUES('Ci','Wu','1st Street','Hangzhou','China','1992-10-27');
来看看增加的数据,用SELECT查找出之前增加的记录。
SELECT * FROM t_customer;
*表示筛选出全部的列。我们也可以制定我们需要的列。比如,只选出姓名:
SELECT First_name,Last_name FROM t_customer;
如果我们希望不重复的筛选出表里的全部城市,那么我们可以使用DISTINCT关键字:
SELECT DISTINCT City From t_customer;
WHERE关键字可以帮我们过滤掉不符合条件的记录:
SELECT * FROM t_customer WHERE City = 'Seattle';
AND和OR可以帮我们结合多个判断条件:
SELECT * FROM t_customer WHERE First_name ='Mei' AND Last_name = 'Han';
筛选出First_name = 'Mei'且Last_name = 'Han'的记录。
SELECT * FROM t_customer WHERE City = 'Seattle' OR City = 'Hangzhou';
筛选出City='Seattle'或是Hangzhou的记录。
结合AND和OR:
SELECT * FROM t_customer WHERE (First_name = 'Mei' OR First_name = 'Jacob') AND City = 'Seattle';
我们可以通过ORDER BY对查询的结果进行排序:
FROM t_customer ORDER BY Last_name;
默认排序方式是升序,如果想用降序的话,则要加上DESC:
SELECT * FROM t_customer ORDER BY Last_name DESC;
我们也可以根据多列的值来排序:
SELECT * FROM t_customer ORDER BY City, First_name;
值得注意的是,当我们按照以下写法:
SELECT * FROM t_customer ORDER BY City, First_name DESC;
实际上是以City的升序和First_name的降序进行组合排序。
修改记录的语法为 UPDATE 表名 SET 列1的名 = 新值, 列2的名=新值 WHERE 条件:
UPDATE t_customer SET City='Boston', Address = '2nd Street' WHERE Last_name = 'Han';
删除记录的语法为 DELETE FROM 表名 WHERE 条件:
DELETE From t_customer WHERE Last_name = 'Wu';
LIMIT关键字可以限制返回的对大记录数:
SELECT * FROM t_customer LIMIT 1;
这里我们就得到了表里的第一条记录。
LIKE可以帮助我们匹配特定的模式:
SELECT * FROM t_customer WHERE Address LIKE '2nd%';
注意LIKE后面的条件需要用引号,这里我们筛选出的是地址是2nd开头的记录。
NOT LIKE 可以选择出不符合条件的记录。
LIKE可以搭配通配符使用,以下是各个通配符的含义:
通配符 描述
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或[!charlist] 不在字符列中的任何单一字符
IN关键字:IN允许我们在WHERE条件中规定多个值。
SELECT * FROM t_customer WHERE City IN ('Boston','Seattle');
筛选出City是Boston或是Seattle的记录。
SELECT * FROM t_customer WHERE First_name BETWEEN 'Curry' AND 'Jordan';
筛选名字介于Curry和Jordan的记录。
值得注意的是,不同的数据库对边界的规定是有所差异的!我测试了mySQL是包含边界的。
SQL语句学习(一)的更多相关文章
- SQL语句学习手册实例版
SQL语句学习手册实例版 表操作 例1 对于表的教学管理数据库中的表 STUDENTS ,可以定义如下: CREATE TABLE STUDENTS (SNO NUMERIC (6, ...
- SQL 语句学习
Sql语句学习 一. select playerId, count(playerId) as num from OperateLog_$i where playerId > 0 and roo ...
- SQL知识点、SQL语句学习
一. 数据库简介和创建1. 系统数据库在安装好SQL SERVER后,系统会自动安装5个用于维护系统正常运行的系统数据库: (1)master:记录了SQL SERVER实例的所有系统级消息,包括实例 ...
- Ibatis.Net 动态SQL语句学习(六)
在学习动态SQL语句之前,首先必须对条件查询有一定了解,先来学习如何向IBatis.Net的映射文件里传入参数吧. 一.条件查询 1.传递单个参数 如根据Id查询: <select id=&qu ...
- 精心整理的SQL语句学习大全
-语 句 功 能 --数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据-数据 ...
- SQl语句学习笔记(二)
merge into when matched then... when not mached then... merge into t_road_pre_parameter a fr ...
- SQL语句学习笔记
从外部EXCEl文件导入sqlserver数据库操作命令 reconfigure reconfigure go select * into abc1_1 from OPENROWSET('MICROS ...
- sql语句学习及索引学习,未完待续,补充增删改查
1,查询出last_name 为 'Chen' 的 manager 的信息. select * fromwhere employee_id = ( selectfrom employees wher ...
- Ibatis.Net 输出SQL语句学习(七)
一.IBatis.net输出SQL语句 输出IBatis.net生成的SQL语句,能够方便调试. 在MapperHelper类中添加GetSql方法: /// <summary> /// ...
随机推荐
- 分享一下,PHP实现第四方QQ微信扫码登陆,不接入qq互联以及微信开发者平台就可以实现用户对接鹅厂,phpQQ微信扫码登陆
自己抓的QQ包以及整合了网上一些已经封装好了的代码具体如下:QQ: <?php class QQ extends Curl_Api { //获取登录验证码 public function QRc ...
- (一)vim插件tabbar
今天早晨给 TabBar.vim 的作者Groleo发了个邮件询问这个tabbar关闭失败的问题.得到的答复是 "you can use :bd instead of :close" ...
- CF633(div.2)B. Sorted Adjacent Differences
题目描述 http://codeforces.com/contest/1339/problem/B 有一个长度为 \(n(3\le n \le 10^5)\) 的整数序列 \(a_1,a_2,..., ...
- 【php】面向对象(三)
知识点关键词:FSCICATS一. f => final: a) 是一个修饰符,用来修饰类和成员方法 b) 使用final修饰符修饰的类不能被继承,使用final修饰符修饰的成员方法,不能被重写 ...
- springboot-mybatis-oracle学习笔记
前言 最近公司的项目是基于 oracle 数据库的,这里记录下 springboot+mybatis+oracle 的踩坑过程. 开发前准备 环境参数 开发工具:IDEA 基础工具:Maven+JDK ...
- 微信小程序wx.setStorage(OBJECT)
关于微信小程序的:wx.setStorage(OBJECT)在官网API介绍到:
- 34 io流-- 打印流和对象流
概述 io流分为字符流和字节流,具体分类相见下图 字符流:char 一些基本文本的数据传输 字节流:byte 图片.视频等用文本查看器查看不了的文件都是二进制文件,只能用字节流传输,使用字符流cp的看 ...
- .NET Core 3 WPF MVVM框架 Prism系列之导航系统
本文将介绍如何在.NET Core3环境下使用MVVM框架Prism基于区域Region的导航系统 在讲解Prism导航系统之前,我们先来看看一个例子,我在之前的demo项目创建一个登录界面: 我们看 ...
- xargs与exec区别
平时使用find命令查找出文件的时候有时候后面有时候用-exec有时候用管道加xargs,这2个到底有什么不同?下面就这2个的不同做简单介绍. 零.实验环境 [root@osker /]# find ...
- Java入门系列之线程池ThreadPoolExecutor原理分析思考(十五)
前言 关于线程池原理分析请参看<http://objcoding.com/2019/04/25/threadpool-running/>,建议对原理不太了解的童鞋先看下此文然后再来看本文, ...