当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

1、SQL分类

SQL语句主要可以划分以下3个类别:

1)DDL语句:数据定义语句,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。常用的关键字主要包括creat、drop、alter等。

2)DML语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括 inster、delete、update 和 select等。

3)DCL语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke等。

2、DDL语句

DDL是数据定义语句的缩写。是对数据库内部的对象进行创建、删除、修改等操作的语言。它和DML语句的最大区别是DML只是对表内部数据操作,而不涉及表的定义、结构的修改,更不会涉及其他对象。DDL语句更多地由数据库管理员(DBA)使用,开发人员一般很少使用。

1)创建数据库

CREATE DATABASE dbname

例如,创建数据库test1,命令执行如下:

create database test1 ;

如果需要查询系统中都存在哪些数据库,可以使用以下命令查看:

show databases ;

在系统中会存在4个由MySQL系统自动创建的数据库,分别为:

information_schema : 主要存储系统中的一些数据库对象信息,比如用户表信息、列信息、权限信息、字符集信息、分区信息等。

cluster : 存储系统的集群信息。

mysql : 存储系统的用户权限信息。

test : 系统自动创建的测试数据库,任何用户都可以使用。

选择要操作的数据库:

USE dbname

例如,选择数据库test1 :

use test1 ;

查看test1数据库中创建的所有数据表 :

show tables ;

2)删除数据库

删除数据库的语法,如下:

drop database dbname ;

例如,要删除test1数据库:

drop database test1 ;

3)创建表

在数据库中创建一张表的基本语法如下:

CREATE TABLE tablename (

column_name_1 column_type_1 constraints ,

column_name_2 column_type_2 constraints ,

. . .

column_name_n column_type_n constraints )

其中 , column_name 是列的名字;column_type 是列的数据类型; constraints 是这个列的约束条件。

例如,创建一个名称为emp的表。表中包括ename(姓名)、hiredate(雇佣日期)和sal(薪水)三个字段,字段类型分别为varchar(10)、date、int(2)

create table emp ( ename varchar(10) ,

hiredate date ,

sal decimal (10, 2) ,

deptno int(2) ) ;

表创建完毕后,如果需要查看一下表的定义,可以使用如下命令:

DESC tablename

例如,查看emp表:

desc emp ;

如果需要查看创建表的SQL语句,可以使用如下命令:

show create table emp \G ;

注:\G 选项的含义是使得记录能够按照字段竖向排列,以便更好地显示内容较长的记录。

4)删除表

表的删除命令如下:

DROP TABLE tablename

例如,要删除数据表emp:

drop table emp ;

5)修改表

修改表类型 ,语法如下:

ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST|AFTER col_name]

例如,修改表emp的ename字段定义,将 varchar(10)改为varchar(20):

alter tabke emp modify ename varchar(20);

增加表字段,语法如下:

ALTER TABLE tablename ADD[COLUMN] column_definition [FIRST|AFTER col_name]

例如,在表emp中新增加字段 age ,类型为 int(3):

alter table emp add column age int(3);

删除表字段,语法如下:

ALTER TABLE tablename DROP [COLUMN] col_name

例如,将字段age删除:

alter table emp drop column age ;

字段改名,语法如下:

ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name]

例如,将age改名为age1,同时修改字段类型为 int(4):

alter table emp change age age1 int(4) ;

修改字段排列顺序:

前面介绍的字段增加和修改语句(ADD/CHANG/MODIFY)中,都有一个可选项 first | after column_name ,这个选项可以用来修改字段在表中的位置,ADD增减的新字段默认是加载表的最后位置,而CHANGE/MODIFY默认都不会改变字段的位置。

例如, 将新增的字段 birth date 加在 ename之后:

alter table emp add birth date after ename ;

修改 age 字段,将它放在最前面:

alter table emp modify age int(3) first ;

注意:CHANGE/FIRST|AFTER COLUMN 都属于MySQL在标准SQL上的扩展,在其他数据库上不一定适用。

更改表名,语法如下:

ALTER TABLE tablename RENAME [TO] new_tablename

例如,将表 emp 改名为 emp1:

alter table emp rename emp1 ;

3、DML语句

DML操作是指对数据库中表记录的操作,主要包括表记录的插入(insert)、更新(update)、删除(delete)和查询(select),是开发人员日常使用最多的操作。

1)插入记录

向表中插入记录的基本语法如下:

INSERT INTO tablename (field1 , field2 ,. . . ,fieldn) VALUES(value1 , value2 , . . . ,valuen);

例如,向表 emp 中插入记录:

insert into emp (ename, hiredate, sal, deptno) values ('zzx1', '2000-01-01', '2000', 1);

也可以不指定字段名称,但是 values 后面的顺序应该和字段的排列顺序一致:

insert into emp values('lisa', '2001-01-02', '3000', 2);

含可空字段、非空但是含有默认值的字段、自增字段,可以不用再insert后的字段列表中出现,values后面只写对应字段名称的 value 。这些没写的字段可以自动设置为NULL、默认值、自增的下一个数字。

例如:只对表中的ename和sal显示插入值:

insert into emp (ename, sal) values('dony', '1000') ;

在MySQL中,insert语句可以一次性插入多条记录。

2)更新记录

表里的记录值可以通过update命令进行更改,语法如下:

UPDATE tablename SET field1 = value1,field2 = value2,. . .,fieldn = valuen [WHERE CONDITION]

例如,将表emp中ename为 "lisa"的sal从3000更改为4000:

update emp set sal=4000 whereename='lisa' ;

3) 删除记录

使用delete删除记录,语法如下:

DELETE FROM tablename [WHERE CONDITION]

例如,在emp中将ename为dony的记录全部删除:

delete from emp where ename='dony' ;

注意:不加where条件将会把表的所有记录删除,所以操作时一定小心。

4)查询记录

基本语法如下:

SELECT * FROM tablename [WHERE CONDITION]

例如,将表emp中的记录全部查询出来:

select * form emp ;

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

科睿唯安《全球创新Top100》以该公司拥有的专利数据库为基础,根据“成功率”、“地域投资”、“影响力”、“稀缺性”四个评价维度对知识产权进行分析,评选出全球百强创新企业和机构。该评选从2012年开始每年实施一次,202...

关键字: 数据库 5G 人工智能

北京——2024年2月26日 日前,领先的IT市场研究和咨询公司IDC发布《IDC MarketScape:全球云计算和以应用为中心的市场供应商评估》1报告,亚马逊位列“领导者”类别。报告指出,“亚马逊云科技Market...

关键字: 云计算 数据库 存储

北京——2023年12月27日 在2023亚马逊云科技re:Invent全球大会上,亚马逊云科技表彰了在过去一年中,利用亚马逊云科技的技术和服务在推动客户创新及解决方案构建方面做出杰出贡献的卓越合作伙伴。8家亚马逊云科技...

关键字: 数智化转型 机器学习 数据库

北京——2023年12月7日 亚马逊云科技在2023 re:Invent全球大会上,宣布推出三项新的无服务器服务创新,涵盖了数据库和分析领域,使客户能够更快速、更轻松地扩展他们的数据基础设施,以支持最具挑战性的应用场景。...

关键字: 服务器 人工智能 数据库

北京——2023年12月4日 亚马逊云科技在2023 re:Invent全球大会上,宣布推出一系列新的集成解决方案,旨在帮助客户迅速而轻松地连接和分析数据,而无需构建和管理复杂的提取、转换和加载(ETL)数据管道。通过全...

关键字: 数据存储 数据库 人工智能

北京——2023年11月13日 亚马逊云科技携手凯捷(Capgemini)中国共同发布《汽车行业可持续发展白皮书》(以下简称《白皮书》),并助力凯捷中国推出碳排放管理平台,致力于以数智化方式帮助车企解决在实践可持续发展过...

关键字: 数据库 机器学习 电动汽车

11月1日,由开放原子开源基金会主办,电子科技大学承办,深圳市腾讯计算机系统有限公司提供战略合作支持的2023年开放原子校源行(成都站)活动在电子科技大学圆满举行。本次活动以“聚缘于校,开源共行”为主题,将四川省在信息技...

关键字: 开源模式 操作系统 数据库

11月1日,2023杭州云栖大会上,阿里云瑶池数据库宣布已全面实现Serverless化,并接入通义等大模型能力,大幅提升数据库一站式及智能化水平。同时,PolarDB Always On系列推出3大重磅升级,首个数据智...

关键字: Serverless AI 阿里云 数据库

北京2023年9月8日 /美通社/ -- 日前,"云融数智 创领未来"2023浪潮云海云图生态峰会产品技术伙伴专场在北京成功举办。来自开源基金会、云安全、PaaS、数据库服务、容灾备份等领域的头部领先...

关键字: 云安全 私有云 数据库 NI

北京2023年9月7日 /美通社/ -- 在欧盟推出碳边境调节机制(CBAM)的背景下,为了更好的提升中国相关工业企业在碳排放管理方面的能力,推进中国与欧盟相关机制的国际合作,2023年9月3日于北京,DEKRA德凯受国...

关键字: 供应链 可持续发展 ISO 数据库
关闭
关闭