001 sql基础

Plot3d 网格数据格式 PLOT3D是一个计算机图形程序,旨在可视化计算流体力学的网格和解决方案。PLOT3D文件可以是ASCII, 也可是Fortran unformatted 或 C binary形式。PLOT3D文件分为网格文件(XYZ 文件), 空气动力学结果文件 (Q 文件)和通用结果文件(函数文件 + 函数名称文件)。网格文件中可加入所谓的IBlank参数。 阅读详情

常用的数据类型

数据类型描述
integer(size)int(size)smallint(size)tinyint(size)仅容纳整数。在括号内规定数字的最大位数。
decimal(size,d)numeric(size,d)容纳带有小数的数字。“size” 规定数字的最大位数。“d” 规定小数点右侧的最大位数。
char(size)容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。在括号中规定字符串的长度。
varchar(size)容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。在括号中规定字符串的最大长度。
date(yyyymmdd)容纳日期。

MySQL 数据类型

在 MySQL 中,有三种主要的类型:文本、数字和日期/时间类型。

Text 类型:

数据类型描述
CHAR(size)保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。
VARCHAR(size)保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。注释:如果值的长度大于 255,则被转换为 TEXT 类型。
TINYTEXT存放最大长度为 255 个字符的字符串。
TEXT存放最大长度为 65,535 个字符的字符串。
BLOB用于 BLOBs (Binary Large OBjects)。存放最多 65,535 字节的数据。
MEDIUMTEXT存放最大长度为 16,777,215 个字符的字符串。
MEDIUMBLOB用于 BLOBs (Binary Large OBjects)。存放最多 16,777,215 字节的数据。
LONGTEXT存放最大长度为 4,294,967,295 个字符的字符串。
LONGBLOB用于 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字节的数据。
ENUM(x,y,z,etc.)允许你输入可能值的列表。可以在 ENUM 列表中列出最大 65535 个值。如果列表中不存在插入的值,则插入空值。注释:这些值是按照你输入的顺序存储的。可以按照此格式输入可能的值:ENUM(‘X’,‘Y’,‘Z’)
SET与 ENUM 类似,SET 最多只能包含 64 个列表项,不过 SET 可存储一个以上的值。

Number 类型:

数据类型描述
TINYINT(size)-128 到 127 常规。0 到 255 无符号*。在括号中规定最大位数。
SMALLINT(size)-32768 到 32767 常规。0 到 65535 无符号*。在括号中规定最大位数。
MEDIUMINT(size)-8388608 到 8388607 普通。0 to 16777215 无符号*。在括号中规定最大位数。
INT(size)-2147483648 到 2147483647 常规。0 到 4294967295 无符号*。在括号中规定最大位数。
BIGINT(size)-9223372036854775808 到 9223372036854775807 常规。0 到 18446744073709551615 无符号*。在括号中规定最大位数。
FLOAT(size,d)带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
DOUBLE(size,d)带有浮动小数点的大数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
DECIMAL(size,d)作为字符串存储的 DOUBLE 类型,允许固定的小数点。

* 这些整数类型拥有额外的选项 UNSIGNED。通常,整数可以是负数或正数。如果添加 UNSIGNED 属性,那么范围将从 0 开始,而不是某个负数。

Date 类型:

数据类型描述
DATE()日期。格式:YYYY-MM-DD注释:支持的范围是从 ‘1000-01-01’ 到 ‘9999-12-31’
DATETIME()*日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS注释:支持的范围是从 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’
TIMESTAMP()*时间戳。TIMESTAMP 值使用 Unix 纪元(‘1970-01-01 00:00:00’ UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS注释:支持的范围是从 ‘1970-01-01 00:00:01’ UTC 到 ‘2038-01-09 03:14:07’ UTC
TIME()时间。格式:HH:MM:SS 注释:支持的范围是从 ‘-838:59:59’ 到 ‘838:59:59’
YEAR()2 位或 4 位格式的年。注释:4 位格式所允许的值:1901 到 2155。2 位格式所允许的值:70 到 69,表示从 1970 到 2069。

* 即便 DATETIME 和 TIMESTAMP 返回相同的格式,它们的工作方式很不同。在 INSERT 或 UPDATE 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。


基本使用

SQL 约束 (Constraints)

NOT NULL
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
UNIQUE 约束
创建表的时候
单个约束

mysql写到最后面,SQL server 在字段后面加上 unique即可

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (Id_P)
)
多个约束,顺便起个总名 (数据库通用)
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)
创建表 之后

mysql sqlserver 通用

alter table person add unique (year);

# 重命名为uc_PersonID
ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
删除 unique

mysql

ALTER TABLE Persons DROP INDEX year;

ALTER TABLE Persons DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access:

ALTER TABLE Persons DROP CONSTRAINT uc_PersonID
PRIMARY KEY
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
)
ALTER TABLE Persons ADD PRIMARY KEY (Id_P);
ALTER TABLE Persons DROP PRIMARY KEY
FOREIGN KEY
CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)

ALTER TABLE Orders ADD FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
ALTER TABLE Orders DROP FOREIGN KEY Id_P
CHECK 约束

CHECK 约束用于限制列中的值的范围。

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P>0)
)

ALTER TABLE Persons ADD CHECK (Id_P>0)
ALTER TABLE Persons DROP CHECK chk_Person
DEFAULT
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes',
addDate date DEFAULT GETDATE()
)

ALTER TABLE Persons ALTER City SET DEFAULT 'SANDNES'
ALTER TABLE Persons ALTER City DROP DEFAULT

建立测试表

create database testdb;
use testdb;
create table `person`
(
  `id`        int(11)     not null auto_increment,
  `firstname` varchar(20) not null,
  `lastname`  varchar(20) not null,
  `address`   varchar(80) not null,
  `city`      varchar(10) not null,
  `year` int(4) not null ,
  primary key (`id`)
) ENGINE = InnoDB
  AUTO_INCREMENT = 10000
  DEFAULT CHARSET = utf8
  COMMENT ='用户信息';

# truncate person;

insert into person (firstname, lastname, address, city, year)
values ('Adams', 'John', 'Oxford Street', 'London',1960);

insert into person (firstname, lastname, address, city, year)
values ('Bush', 'George', 'Fifth Avenue', 'New York',1980);

insert into person (firstname, lastname, address, city, year)
values ('Carter', 'Thomas', 'Changan Street', 'Beijing',2001);

insert into person (firstname, lastname, address, city, year)
values ('bob', 'liu', 'Oxford Street', 'Beijing',1895);

select

SELECT COUNT(*) FROM Person;  # 返回记录数量
base
select * from person;
select lastname,address from person;
select distinct city from person;
select  distinct city,address from person;
where
select * from person where city='Beijing';
select * from person where year > 1900;
and or
select * from person where city = 'beijing' and address = 'Changan Street';
括号
select * from person where city = 'London' or (year >= 1980 and year <= 2000);
between
select * from person where city = 'London' or year between 1980 and 2000;
order by

默认升序,desc降序

select * from person order by year desc ;

update

update person set lastname='Liu',year=1895 where year=1896;

insert

insert into person (firstname, lastname, address, city, year)
values ('bob', 'liu', 'Oxford Street', 'Beijing',1895);

delete

删除某行
DELETE FROM Person WHERE city = 'London' 
删除全部数据

类似 truncate table_name

DELETE * FROM table_name

alter

# 添加列
ALTER TABLE Persons ADD Birthday date
# 改变列
ALTER TABLE Persons ALTER COLUMN Birthday year
# 删除列
ALTER TABLE Person DROP COLUMN Birthday

基础方法

top 限定数量

select * from person limit 2;

like 模糊查询

%是通配符,表示任意字符

select * from person where city like 'N%';
select * from person where city like '%N%';

select * from person where city not like 'N%';

通配符

通配符描述
%替代一个或多个字符
_仅替代一个字符 (一个下划线)
[charlist]字符列中的任何单一字符
[^charlist]或者[!charlist]不在字符列中的任何单一字符

in ( where )

select *
from person where city in ('London','New York');

between

select * from person where city = 'London' or year between 1980 and 2000;

index索引

加快速高效地查询数据。

有索引的表 更新时候 较慢。

# 索引
CREATE INDEX index_name ON table_name (column_name)
# 唯一索引
CREATE UNIQUE INDEX index_name ON table_name (column_name)

ALTER TABLE table_name DROP INDEX index_name

VIEW(视图)

用到再去看

Date 函数

最常用
函数描述对应的数据类型
NOW()返回当前的日期和时间 2019-02-13 13:11:51datetime
CURDATE()返回当前的日期 2019-02-13date
CURTIME()返回当前的时间 13:11:17time
CREATE TABLE Orders 
(
……
# 向表中插入行时,当前日期和时间自动插入列中。
#  2019-02-13 13:11:51 
OrderDate datetime NOT NULL DEFAULT NOW(),
……
)
使用时间部分 会很复杂

设我们有下面这个 “Orders” 表:

OrderIdProductNameOrderDate
1computer2008-12-26
2printer2008-12-26
3electrograph2008-11-12
4telephone2008-10-19

现在,我们希望从上表中选取 OrderDate 为 “2008-12-26” 的记录。

我们使用如下 SELECT 语句:

SELECT * FROM Orders WHERE OrderDate='2008-12-26'
MySQL Date 函数

下面的表格列出了 MySQL 中最重要的内建日期函数:

函数描述
NOW()返回当前的日期和时间 2019-02-13 13:11:51 对应datetime类型
CURDATE()返回当前的日期 2019-02-13 对应date类型
CURTIME()返回当前的时间 13:11:17 对应time类型
DATE()提取日期或日期/时间表达式的日期部分
EXTRACT()返回日期/时间按的单独部分
DATE_ADD()给日期添加指定的时间间隔
DATE_SUB()从日期减去指定的时间间隔
DATEDIFF()返回两个日期之间的天数
DATE_FORMAT()用不同的格式显示日期/时间

null

SELECT LastName,FirstName,Address FROM Person
WHERE Address IS NULL

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL
智慧社区:安防系统解决方案 阅读详情

相关推荐

【python】import pandas as pd用法

是 Python 里最常用的数据分析库之一。 的意思是:导入 pandas 库,并给它起个别名 。这样用起来更简洁: 下面总结 pandas 的常见用法(配例子)。目录🔹 1. 数据结构(1) Series(一维数据,类似于数组 + 标签)(2) DataFrame(二维数据表,类似于 Excel 表格)🔹 2. 数据读写🔹 3. 数据查看🔹 4. 数据选择与索引🔹 5. 数据清洗🔹 6. 数据运算🔹 7. 数据筛选(布尔索引)🔹 8. 分组与聚合🔹 9. 排序 Pandas 常用方

2401_86285609的博客 1533

MySQL基础之:初始数据库01

** 1 初识数据库 1.1 常见概念和缩写: DB: Database DBMS:Database Management System,下述为数据库管理系统的分类思维导图。本次学习内容为关系型数据库:MySQL 1.2 初始SQL 1.2.1 常见缩写和概念: (1)DDL DDL:Data Definition Language,数据定义语言,用来创建或者删除存储数据用的数据库以及数据库中的表等对象。 DDL 常见指令: CREATE : 创建数据库和表等对象 DROP : 删除数据库和表等对象 A

AI_SupplyChain的博客 511

《详细指南:本地部署Ollama大型模型的完整步骤》

通过本指南,您应该能够成功地在本地部署Ollama大型模型,并开始使用它进行各种AI任务。Ollama的易用性和高性能使其成为研究和开发的理想选择。Ollama是一个高性能的AI模型部署平台,支持在本地轻松部署大型语言模型。本指南将详细介绍如何在本地环境中部署Ollama,并运行一个大型模型。

eclipsercp的博客 3699

SQL 01-简介 标准命令 基本语法 运算符 表达式

SQL(结构化查询语言)是用于访问和操作数据库中的数据的标准数据库编程语言。 SQL是关系数据库系统的标准语言。所有关系数据库管理系统(RDMS),如MySQL、MS Access、Oracle、Sybase、Informix、Postgres和SQL Server都使用SQL作为它们的标准数据库语言。 SQL标准命令 DDL(数据定义语言) 数据定义语言用于改变数据库结构,包括创建、更改和删除数据库对象。用于操纵表结构的数据定义语言命令有: CREATE TABLE–创建(在数据库中创建新表、表视图或其

spire_di 644

记录思科cisco交换机升级iso步骤

Cisco Nexus 93180交换机版本升级

a635161812的博客 4378

AI代码标注专家Prompt指令的最佳实践

AI代码标注专家 Prompt 可作为项目级别提示词使用,专门负责为 AI 生成的代码添加特定的注释标记,然后基于 Node 脚本可以初步统计出 AI 代码占比。

💻 Code:TypeScript / Engineering 🤖 AI:Prompt Optimization / Context Memory / Coding Agents 617

SQL Server安装报错 Error code 0x858C001B

因项目需要使用 Windows Server 2012 R2 及 SQL Server 2012 Standard. 于是到微软下载一个 180天试用的Windows Server 2012 R2 Datacenter VHD (http://technet.microsoft.com/zh-cn/evalcenter/dn205286.aspx),而微软只提供英文版的VHD...

weixin_33979203的博客 3803

el-table通过上下左右键移动光标

在Element Plus的el-table中包含el-input和el-select组件,要实现上下左右键控制光标位置,需要通过focus和blur跟踪判断当前是哪个el-input或el-select有焦点,当按键按下时,通过监听,计算下一个获取焦点元素的索引,通过focus方法将焦点切换至改元素。

秋思的博客 1350

SQL001

数据库 单机数据库 access personal oracle 网络数据库 Oracle SqlServer DB2 Sybase Mysql 数据库对应物理文件 ORACLE 路径对应三种数据库文件:数据文件、控制文件、日志文件 SQLServer 路径对应数据文件、日志文件 ...

2054

Window系统下搭建GIT本地服务器

这是一篇在window下搭建git本地服务器的教程,带你一步步搭建出本地的git服务器。

qwer971211的博客 2万+

QNX系统中的密码哈希格式——数据安全深度分析

综上所述,QNX系统中的Shadowed密码哈希格式提供了一种有效的数据安全机制,能够保护用户密码的安全性。通过将用户密码的哈希值存储在系统文件中,并结合哈希算法和盐值的使用,可以有效地防止明文密码泄露和密码破解。密码哈希是一种常用的安全技术,用于将用户密码转换为不可逆的哈希值,以保护用户的敏感信息。在QNX操作系统中,存在一种称为Shadowed密码哈希格式的机制,用于存储用户密码的安全散列值。当用户登录系统时,系统会将用户输入的密码与保存的哈希值进行比对,以验证密码的正确性。在上述代码中,首先使用。

UneDatabase的博客 253

【SQL27】查询既学过'001'课程也学过'003'号课程的学生ID

有一张成绩表SC,表结构为SC(sid,cid,course),分部对应是学生ID,课程ID和学生成绩,有如下测试数据 sid cid course 1 001 67 1 002 89 1 003 94 2 ...

debimeng 3535

全志T527-TP9930-Camera

TP9930 驱动模块主要实现将 4 路的 AHD/TVI/CVBS Camera 的数据转换为 BT656/BT1120 数据,从而实现在 T527 端来对数据进行处理和送显。

Linux驱动开发工程师,熟悉Linux/Android底层驱动、TP、显示、IIC、网络等通用外设调试适配,Linux上层应用开发。常用平台瑞芯微、全志、恩智浦等。 3238

SQL2008关于c001f011的错误解决办法

从ICassFactory为CLSID为{17BCA6E8-A950-497E-B2F9-AF6AA475916F}的COM组件创建实例失败,原因是出现以下错误:c001f011.(Microsoft.Server.manageDTS) 今天在“新建维护计划”时,报错: 创建维护计划失败。 其他信息: 从 ICLassFactory 为CLSID为{17BCA6E8-A95D-49

2297

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

windows server2019下安裝sql server2016報0x851A001A

Feature: Reporting Services - 原生 Status: 失敗: 詳細資料請參閱記錄檔 Reason for failure: 功能的相依性發生錯誤,導致功能的安裝程序失敗。 Next Step: 使用下列資訊解決錯誤,解除安裝這項功能,然後重新執行安裝程序。 Component name: SQL Se

weixin_41247244的博客 2973

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

解决SQL2008计划、代理作业报错误: c001f011维护计划创建失败的解决方法

今天用sql server 2008 写作业时突然间报错如下错误: SQL2008数据库总会出现从 IClassFactory 为 CLSID 为 {17BCA6E8-A95D-497E-B2F9-AF6AA475916F} 的 COM 组件创建实例失败, 原因是出现以下错误: c001f011。 (Microsoft.SqlServer.ManagedDTS)------------...

韩利巍 1955

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【SQL19】查询出'001'课程分数大于'002'课程分数的学生学号

有一张成绩表SC,表结构为SC(sid,cid,course),分部对应是学生ID,课程ID和学生成绩,有如下测试数据 查询结果格式如下所示:sc sid cid course 1 001 67 1 002 89 1 003 94 2 001 95 2 002 ...

debimeng 5238

SQL 优化经历:从 30248.271s 到 0.001s

将会更高,从另外一个角度看,该表的数据是300w,以后会更多,就索引存储而言,都是不小的数目,随着数据量的增加,索引就不能全部加载到内存,而是要从磁盘去读取,这样索引的个数越多,读磁盘的开销就越大,因此根据具体。发现没有用到索引,type全是ALL,那么首先想到的就是建立一个索引,建立索引的字段当然是在where条件的字段。快了3w多倍,大大缩短了查询时间,看来索引能极大程度的提高查询效率,建索引很有必要,很多时候都忘记建。的结果是897,即这两个字段联合起来的区分度是比较高的,因此建立联合索引查询效率。

luo123_123_123的博客 1161

解决SQL2008代理作业出现错误: c001f011维护计划创建失败的解决方法【轉】

解决SQL2008代理作业出现错误: c001f011维护计划创建失败的解决方法【轉】

xuan2717的博客 387

sql001

11、说明:几个高级查询运算词 A: UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通...

zhao8899的专栏 184

解决SQL2008代理作业出现错误: c001f011维护计划创建失败的解决方法【转】

SQL2008数据库总会出现从 IClassFactory 为 CLSID 为 {17BCA6E8-A95D-497E-B2F9-AF6AA475916F} 的 COM 组件创建实例失败, 原因是出现以下错误: c001f011。 (Microsoft.SqlServer.ManagedDTS)------------------------------ 从 IClassFactory

qq_32451793的博客 1021

sql____001

题目: create table my_001 (id int,value int); insert into my_001 values(1,10): insert into my_001 values(2,20): insert into my_001 values(3,15): 结果 id value sum 1 10  10 2 20 ...

weixin_30588907的博客 69

Oracle SQL基础001

解锁账号 alter user scott identified by tiger account unlock; 查看用户下所有的表 select * from tab;   select table_name from user_tables; 查看表结构 desc tableName; 连接运算符 || select dept_name || d...

youran02100210的专栏 226

SQL2008代理作业出现错误: c001f011维护计划创建失败的解决方法

SQL2008数据库总会出现从 IClassFactory 为 CLSID 为 {17BCA6E8-A95D-497E-B2F9-AF6AA475916F} 的 COM 组件创建实例失败,原因是出现以下错误: c001f011。 (Microsoft.SqlServer.ManagedDTS)------------------------------ 从 IClassFactory 为 CLS...

weixin_34167819的博客 219
上一篇: sql建表 范例
下一篇: sqlite3
CoolScript
博客等级 码龄9年 26粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值