在学习SQL语句之前,首先需要区分几个概念,我们常说的数据库是指数据库软件,例如MySQL、Oracle、SQL Server等,而本文提到的数据库是指数据库软件中的一个个用于存储数据的容器。
在MySQL中,数据库称为database,数据表称为table,一个数据库软件中有多个数据库(databases),每个数据库中又可以有多个数据表(tables),最终,数据是存储在数据表中。
数据库和数据表之间的关系可以用下面这个图来表示,对于一个数据库来说,有多个数据表。
在正式开始写SQL语句之前,需要说明两点。
这里通过MySQL Workbench来写SQL代码,在Workbench中,执行一条SQL语句的方式有两种。
了解了这之后,接下来介绍一些常见的命令,分两部分:数据库常用命令和数据表常用命令。
1、查看有哪些数据库
2、创建数据库
创建一个名为Testdb的数据库。
3、创建数据库并指定编码格式
有些时候,为了防止中文乱码,创建数据库的时候需要指定编码格式。
4、使用某个数据库
使用mydb这个数据库,或者进入mydb这个数据库。
5、删除数据库
删除Testdb这个数据库。
1、查看有哪些数据表
进入某个数据库之后,想查看有哪些数据表,SQL语句为:
mydb是一个新建的数据库,所以自然是没有数据表。
2、创建数据表
建表SQL语句格式为:
说明: 每个字段以逗号分隔,最后一个字段不加逗号。
例如,给定一个学员信息表,如下表所示。
根据以上表格,建表SQL语句如下。
以上语句中,primary key表示主键,意思是这个字段作为记录的唯一标识,就像每个人的身份z号,都是唯一确定的。
3、查看表结构
查看表结构的SQL命令为:
执行该命令会显示表stuinfo的基本结构,例如有哪些字段,每个字段是什么类型,谁是主键等。
4、修改数据表
修改数据表通过drop子句进行,比如,建完表后,想增加一个字段,SQL语句的格式为:
想在指定位置增加一个字段,例如,在某个字段后增加一个字段,SQL语句的格式为:
如果在某个字段之前增加字段,用before即可。
例如,在字段age后增加一个字段major(专业),SQL语句为:
执行这个命令,再通过describe查看表结构,会发现表中多了一个字段major。
如果要删除major这个字段,通过drop子句,SQL语句为:
5、重命名表
重命名表通过alter+rename来实现,SQL语句格式为:
这里为了不影响之前创建的表,我们创建一个新表,SQL语句如下。
以上创建一个名为stuInfoTest的表,现在想将它的名称改成stuinfotest1,SQL语句为:
6、删除数据表
删除数据表通过drop进行,SQL语句格式为:
例如,删除数据表stuinfotest1,SQL语句为:
7、插入记录
此时的表stuinfo是空的,没有数据,我们要向表中插入记录。
插入记录通过insert into进行,SQL语句格式为:
例如,向表stuinfo插入一条记录,SQL语句为:
注意:上方是一条SQL语句,为了可读性换行,记住一条SQL语句默认以分号结尾。
如果需要一次性插入多条记录,SQL语句格式为:
例如,向表stuinfo再插入两条记录,SQL语句为:
注意:如果设置了主键,插入记录的主键字段是不能重复的,也就是不能插入重复的记录。
作业:大家可以按照上述方法将上面的学员信息表中的所有记录都插入表stuinfo中。
8、查询记录
有了数据之后,就可以查询记录了,查询记录通过select子句进行。
例如,想查询表stuinfo中的所有记录,SQL语句为:
执行之后,就可以看到表stuinfo中的所有记录了。
如果想查询符合某个条件的记录,就要用到where子句了,SQL格式为:
例如,想查询stuid为20161001的记录,SQL语句为:
9、删除记录
删除记录通过delete子句进行,SQL语句格式为:
例如,想删除stuid为20161002的记录,SQL语句为:
10、修改记录
修改记录通过update子句进行,update就是更新的意思,SQL语句格式为:
例如,想将学号(stuid)为20161001的记录的姓名(stuname)更新为Jack,SQL语句为:
以上,就是MySQL中的基本SQL语句。
零基础如何学习数据分析?查看下方专栏。
1 1?、?? 显示表达式的值 ?[表达式]??[表达式]X=3 ?X*2*将显示62 GO | GOTO 移动记录指针到指定记录号 GO [记录号]*参数[记录号]可以用数字,或TOP、BOTTOM;变量TOP表示最顶端记录、BOTTOM表示最下端记录
3 SKIP 上移或者下移记录指针 SKIP [N]*N正数表示下移记录指针,负数表示上移。 *设当前记录指针是5SKIP 3 *执行命令后记录指针是8SKIP -3 *执行命令后记录指针是2
4 DISPLAY 显示记录 DISPLAY [范围] [FOR 条件] [字段列表]*注此命令参数[范围]缺省表示当前记录
5 LIST 显示记录 LIST [范围] [FOR 条件] [字段列表]*注此命令参数[范围]缺省表示所有记录(ALL)
6 BROWSE 显示、修改记录 BROWSE [FOR 条件] [FIELDS 字段列表]注:缺省 [FIELDS 字段列表]将显示所有的字段 *显示1980年以后出生的学号、姓名Browse for 出生年月>={80/01/01} fields 学号,姓名
7 EDIT/CHANGE 修改记录
8 REPLACE WITH 批量替换 REPLACE [范围] [字段1 WITH 表达式1][,……]*可以有多个替换,多个替换中间须逗号 *计算每位同学的总分,总分等于语文+数学+英语Replace all 总分 with 语文+数学+英语 *把每位同学的总分加10分replace all 总分 with 总分+10
9 APPEND 添加记录到数据表末尾 注:增加的记录在数据库的后面
10 INSERT 插入记录 *三种用法
INSERT
*在当前记录后插入一个记录INSERT BEFORE *在当前记录前插入一个记录INSERT BLANK
*在当前记录后插入一个空白记录
11 DELETE 为记录加删除标记(逻辑删除) DELETE [范围] [FOR 条件] *参数[范围]有四种表现形式:(以下命令类似)1、“ALL”表示所有记录2、“RECORD n”表示第n个记录3、“NEXT n”表示从当前记录开始n个记录4、“REST”表示从当前记录开始到最后一个记录。 *逻辑删除第3个记录Delete Record 3*逻辑删除当前记录开始3个记录 Delete Next 3 *逻辑删除数学>90分以上Delete for 数学>90
12 PACK 永久删除加有删除标记的记录
13 RECALL 去除记录的删除标记 RECALL [范围] [FOR 条件]
14 ZAP 永久性删除表中所有记录
15 COUNT 统计表的记录数 COUNT [FOR 条件][TO 内存变量] *统计语文不及格的人数Count for 语文<60 to X
16 AVERAGE 求平均值 AVERAGE [字段列表] [TO 内存变量][FOR条件] *分别求男生的数学和语文的平均分并赋给变量sx和ywaverage数学,语文 to sx,yw for 性别=’男’?sx,yw *显示变量sx和yw的值
117 SUM 对表中的数值型记录求和 SUM [字段列表] [TO 内存变量][FOR条件] *分别求全班语文、数学成绩的总和并赋给变量yw,sx Sum 语文,数学 to yw,sx
18 SORT 对当前表排序到新的数据表 SORT [TO 新数据库文件名] [ON 字段 排序方式]*注:排序方式有两种:/A和/D分别表示升序和降序,/A可以省略。 *把当前打开数据库按总分从大到小排序到新数据库cj1.dbf。Sort to cj1.dbf on 总分/D
19 LOCATE 顺序查找指定条件第一个记录 LOCATE [范围] [FOR 条件] *在当前记录后面的记录中找化学超过90分的记录Locate REST for 化学>90
20 CONTINUE 继续查找符合条件的记录 *命令必须在执行LOCATE后使用,如果找不到满足记录状态栏将显示“End
of locate
scope”
21 INDEX 建立索引文件 INDEX [ON 字段] [TO 索引文件名]*注索引文件是按索引字段升序进行排序 *打开数据库chengji.dbf,并建立以字段“学号”索引文件xh.idxUse chengjiIndex on 学号 to xh.idx
22 SET INDEX TO 打开索引文件 SET INDEX TO[索引文件名] *设已经打数据库chengji.dbf,现要打开索引文件xh.idxSet index to xh.idx
23 SEEK 查找与索引关键字值匹配记录 SEEK [表达式] *设已对数据库“学号”字段进行索引并打开索引文件Seek ‘10001’ *查找学号是10001的记录
24 CREATE 建立新的数据表 CREATE [数据库文件名] CREATE chengji.dbf
25 USE 打开或关闭数据库 *三种用法
USE
*关闭当前打开的数据库USE
[数据库文件名]
*打开数据库USE [数据库文件名] [INDEX 索引文件名]*打开数据库同时打开索引文件
26 COPY STRUCTURE TO 复制一个结构相同的空表 COPY STRUCTURE TO[新的数据库文件名]*注文件名的扩展名.dbf可省略,以下命令类似。 Copy structure to cj12.dbfCopy structure to cj12
27 LIST STRUCTURE 显示数据库结构
28 MODIFY STRUCTURE 修改数据库结构
29 COPY TO 从当前表的内容复制到新表 COPY TO [新的数据库文件名] Copy to cj13.dbf
30 CLEAR 清除FOXPRO显示区
31 DO 运行程序文件 DO [程序文件名]*运行FOXPRO默认路径下的程序文件“xs1.prg”Do xs1.prg
32 MODIFY COMMAND 编辑或建立程序文件 MODIFY COMMAND [程序文件名] MODIFY COMMAND xs1.prg
33 QUIT 退出FoxPro
34 SET DEFAULT TO 设置FOXPRO默认路径 SET DEFAULT TO [路径]*运行此命令后,数据库文件名前无需[路径] *把FOXPRO默认路径设置为D盘的“20040101”文件夹 Set default to D:\20040101
常用的DDL语句有:CREATE TABLE -- 创建(定义)一个表
ALTER TABLE -- 修改一个表的定义
DROP TABLE -- 从数据库中删除一个表
常用的DML语句有:
SELECT -- 查询表中的数据
UPDATE -- 更改表中的数据
INSERT -- 向表中插入数据
DELETE -- 从表中删除数据
每个语句的具体语法,请参考联机丛书或者相关资料。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)