首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事
您的当前位置:首页正文

SQL数据库操作整理

2023-11-10 来源:画鸵萌宠网

1、规范

①关键字与函数名称全部大写;

②数据库名称、表名称、字段名称全部小写;

③SQL语句必须以分号结尾。

2、数据库操作

// 1. 创建数据库,其中[]表示可以省略CREATE { DATABASE | SCHEMA } [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name;// 2、 显示当前服务器下的数据库列表 SHOW { DATABASES | SCHEMAS } [LIKE ‘pattern‘ | WHERE expr];// 3、 修改数据库编码方式ALTER { DATABASE | SCHEMA } [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name;// 4、 删除数据库DROP { DATABASE | SCHEMA } [IF NOT EXISTS] db_name ;

3、数据类型

(1)整数: 

 

 技术分享

(2)浮点型:

技术分享

(3)日期型:

技术分享

(4)字符型:

技术分享

 

SQL数据库操作整理

标签:函数   bsp   auto   char   语句   服务   数据库操作   服务器   cte   

小编还为您整理了以下内容,可能对您也有帮助:

SQL数据库常用命令及语法举例

下面是一些常用的SQL语句,虽然很基础,可是却很值得收藏,对于初学者非常实用

SQL常用命令使用方法:

    (1) 数据记录筛选:

    sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"

    sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"

    sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"

    sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"

    sql="select * from 数据表 where 字段名 between 值1 and 值2"

    (2) 更新数据记录:

    sql="update 数据表 set 字段名=字段值 where 条件表达式"

    sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

    (3) 删除数据记录:

    sql="delete from 数据表 where 条件表达式"

    sql="delete from 数据表"  (将数据表所有记录删除)

    (4) 添加数据记录:

    sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"

    sql="insert into 目标数据表 select * from 源数据表"  (把源数据表的记录添加到目标数据表)

    (5) 数据记录统计函数:

    AVG(字段名) 得出一个表格栏平均值

    COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计

    MAX(字段名) 取得一个表格栏最大的值

    MIN(字段名) 取得一个表格栏最小的值

    SUM(字段名) 把数据栏的值相加

    引用以上函数的方法:

    sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"

    set rs=conn.excute(sql)

    用 rs("别名") 获取统的计值,其它函数运用同上。

    (5) 数据表的建立和删除:

    CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )

    例:CREATE TABLE tab01(name varchar(50),datetime default now())

    DROP TABLE 数据表名称 (永久性删除一个数据表)

    4. 记录集对象的方法:

    rs.movenext              将记录指针从当前的位置向下移一行

    rs.moveprevious          将记录指针从当前的位置向上移一行

    rs.movefirst             将记录指针移到数据表第一行

    rs.movelast              将记录指针移到数据表最后一行

    rs.absoluteposition=N    将记录指针移到数据表第N行

    rs.absolutepage=N        将记录指针移到第N页的第一行

    rs.pagesize=N            设置每页为N条记录

    rs.pagecount             根据 pagesize 的设置返回总页数

    rs.recordcount           返回记录总数

    rs.bof                   返回记录指针是否超出数据表首端,true表示是,false为否

    rs.eof                   返回记录指针是否超出数据表末端,true表示是,false为否

    rs.delete                删除当前记录,但记录指针不会向下移动

    rs.addnew                添加记录到数据表末端

    rs.update                更新数据表记录

参考资料

SQL常用命令.csdn[引用时间2017-12-30]

SQL数据库常用命令及语法举例

下面是一些常用的SQL语句,虽然很基础,可是却很值得收藏,对于初学者非常实用

SQL常用命令使用方法:

    (1) 数据记录筛选:

    sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"

    sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"

    sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"

    sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"

    sql="select * from 数据表 where 字段名 between 值1 and 值2"

    (2) 更新数据记录:

    sql="update 数据表 set 字段名=字段值 where 条件表达式"

    sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

    (3) 删除数据记录:

    sql="delete from 数据表 where 条件表达式"

    sql="delete from 数据表"  (将数据表所有记录删除)

    (4) 添加数据记录:

    sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"

    sql="insert into 目标数据表 select * from 源数据表"  (把源数据表的记录添加到目标数据表)

    (5) 数据记录统计函数:

    AVG(字段名) 得出一个表格栏平均值

    COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计

    MAX(字段名) 取得一个表格栏最大的值

    MIN(字段名) 取得一个表格栏最小的值

    SUM(字段名) 把数据栏的值相加

    引用以上函数的方法:

    sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"

    set rs=conn.excute(sql)

    用 rs("别名") 获取统的计值,其它函数运用同上。

    (5) 数据表的建立和删除:

    CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )

    例:CREATE TABLE tab01(name varchar(50),datetime default now())

    DROP TABLE 数据表名称 (永久性删除一个数据表)

    4. 记录集对象的方法:

    rs.movenext              将记录指针从当前的位置向下移一行

    rs.moveprevious          将记录指针从当前的位置向上移一行

    rs.movefirst             将记录指针移到数据表第一行

    rs.movelast              将记录指针移到数据表最后一行

    rs.absoluteposition=N    将记录指针移到数据表第N行

    rs.absolutepage=N        将记录指针移到第N页的第一行

    rs.pagesize=N            设置每页为N条记录

    rs.pagecount             根据 pagesize 的设置返回总页数

    rs.recordcount           返回记录总数

    rs.bof                   返回记录指针是否超出数据表首端,true表示是,false为否

    rs.eof                   返回记录指针是否超出数据表末端,true表示是,false为否

    rs.delete                删除当前记录,但记录指针不会向下移动

    rs.addnew                添加记录到数据表末端

    rs.update                更新数据表记录

参考资料

SQL常用命令.csdn[引用时间2017-12-30]

SQL数据库的操作

SQL包括了所有对数据库的操作,主要是由4个部分组成:
1.数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。
2.数据操纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。
3.数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。
4.嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。
下面我们将分别介绍: SQL数据定义功能包括定义数据库、基本表、索引和视图。
首先,让我们了解一下SQL所提供的基本数据类型:(如^00100009b^)
1.数据库的建立与删除
(1)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为:
CREATE DATABASE <数据库名> 〔其它参数〕
其中,<数据库名>在系统中必须是唯一的,不能重复,不然将导致数据存取失误。〔其它参数〕因具体数据库实现系统不同而异。
例:要建立项目管理数据库(xmmanage),其语句应为:
CREATE DATABASE xmmanage
(2)数据库的删除:将数据库及其全部内容从系统中删除。
其语句格式为:DROP DATABASE <数据库名>
例:删除项目管理数据库(xmmanage),其语句应为: DROP DATABASE xmmanage
2.基本表的定义及变更
本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。 SQL是一种查询功能很强的语言,只要是数据库存在的数据,总能通过适当的方法将它从数据库中查找出来。SQL中的查询语句只有一个:SELECT,它可与其它语句配合完成所有的查询功能。SELECT语句的完整语法,可以有6个子句。完整的语法如下:  SELECT 目标表的列名或列表达式集合  FROM 基本表或(和)视图集合  〔WHERE条件表达式〕  〔GROUP BY列名集合  〔HAVING组条件表达式〕〕  〔ORDER BY列名〔集合〕…〕
简单查询,使用TOP子句
查询结果排序order by
带条件的查询where,使用算术表达式,使用逻辑表达式,使用between关键字,使用in关键字,
模糊查询like
整个语句的语义如下:从FROM子句中列出的表中,选择满足WHERE子句中给出的条件表达式的元组,然后按GROUPBY子句(分组子句)中指定列的值分组,再提取满足HAVING子句中组条件表达式的那些组,按SELECT子句给出的列名或列表达式求值输出。ORDER子句(排序子句)是对输出的目标表进行重新排序,并可附加说明ASC(升序)或DESC(降序)排列。  在WHERE子句中的条件表达式F中可出现下列操作符和运算函数:  算术比较运算符:<,<=,>,>=,=,<>。  逻辑运算符:AND,OR,NOT。  集合运算符:UNION(并),INTERSECT(交),EXCEPT(差)。  集合成员资格运算符:IN,NOT IN  谓词:EXISTS(存在量词),ALL,SOME,UNIQUE。  聚合函数:AVG(平均值),MIN(最小值),MAX(最大值),SUM(和),COUNT(计数)。  F中运算对象还可以是另一个SELECT语句,即SELECT语句可以嵌套。  上面只是列出了WHERE子句中可出现的几种主要操作,由于WHERE子句中的条件表达式可以很复杂,因此SELECT句型能表达的语义远比其数学原形要复杂得多。  下面,我们以上面所建立的三个基本表为例,演示一下SELECT的应用:  1.无条件查询  例:找出所有学生的的选课情况  SELECT st_no,su_no  FROM score  例:找出所有学生的情况  SELECT*  FROM student  “*”为通配符,表示查找FROM中所指出关系的所有属性的值。  2.条件查询  条件查询即带有WHERE子句的查询,所要查询的对象必须满足WHERE子句给出的条件。  例:找出任何一门课成绩在70以上的学生情况、课号及分数  SELECT UNIQUE student.st_class,student.st_no,student.st_name,student.st_sex,student.st_age,score.su_no,score.score  FROM student,score  WHERE score.score>=70 AND score.stno=student,st_no  这里使用UNIQUE是不从查询结果集中去掉重复行,如果使用DISTINCT则会去掉重复行。另外逻辑运算符的优先顺序为NOT→AND→OR。  例:找出课程号为c02的,考试成绩不及格的学生  SELECT st_no  FROM score  WHERE su_no=‘c02’AND score<60  3.排序查询  排序查询是指将查询结果按指定属性的升序(ASC)或降序(DESC)排列,由ORDER BY子句指明。  例:查找不及格的课程,并将结果按课程号从大到小排列  SELECT UNIQUE su_no  FROM score  WHERE score<60  ORDER BY su_no DESC  4.嵌套查询  嵌套查询是指WHERE子句中又包含SELECT子句,它用于较复杂的跨多个基本表查询的情况。  例:查找课程编号为c03且课程成绩在80分以上的学生的学号、姓名  SELECT st_no,st_name  FROM student  WHERE stno IN (SELECT st_no  FROM score  WHERE su_no=‘c03’ AND score>80 )  这里需要明确的是:当查询涉及多个基本表时用嵌套查询逐次求解层次分明,具有结构程序设计特点。在嵌套查询中,IN是常用到的谓词。若用户能确切知道内层查询返回的是单值,那么也可用算术比较运算符表示用户的要求。  5.计算查询  计算查询是指通过系统提供的特定函数(聚合函数)在语句中的直接使用而获得某些只有经过计算才能得到的结果。常用的函数有:  COUNT(*) 计算元组的个数  COUNT(列名) 对某一列中的值计算个数  SUM(列名) 求某一列值的总和(此列值是数值型)  AVG(列名) 求某一列值的平均值(此列值是数值型)  MAX(列名) 求某一列值中的最大值  MIN(列名) 求某一列值中的最小值  例:求男学生的总人数和平均年龄  SELECT COUNT(*),AVG(st_age)  FROM student  WHERE st_sex=‘男’  例:统计选修了课程的学生的人数  SELECT COUNT(DISTINCT st_no)  FROM score  注意:这里一定要加入DISTINCT,因为有的学生可能选修了多门课程,但统计时只能按1人统计,所以要使用DISTINCT进行过滤。 由于数据库管理系统是一个多用户系统,为了控制用户对数据的存取权利,保持数据的共享及完全性,SQL语言提供了一系列的数据控制功能。其中,主要包括安全性控制、完整性控制、事务控制和并发控制。  1.安全性控制  数据的安全性是指保护数据库,以防非法使用造成数据泄露和破坏。保证数据安全性的主要方法是通过对数据库存取权力的控制来防止非法使用数据库中的数据。即限定不同用户操作不同的数据对象的权限。  存取权控制包括权力的授予、检查和撤消。权力授予和撤消命令由数据库管理员或特定应用人员使用。系统在对数据库操作前,先核实相应用户是否有权在相应数据上进行所要求的操作。  (1)权力授予:权力授有数据库管理员专用的授权和用户可用的授权两种形式。数据库管理员专用授权命令格式如下:  |CONNECT |  GRANT|RESOURCE|TO 用户名〔IDENTIFED BY 口令〕  |DBA |  其中,CONNECT表示数据库管理员允许指定的用户具有连接到数据库的权力,这种授权是针对新用户;RESOURCE表示允许用户建立自己的新关系模式,用户获得CONNECT权力后,必须获得RESOURCE权力才能创建自己的新表;DBA表示数据库管理员将自己的特权授予指定的用户。若要同时授予某用户上述三种授权中的多种权力,则必须通过三个相应的GRANT命令指定。  另外,具有CONNECT和RESOURCE授权的用户可以建立自己的表,并在自己建立的表和视图上具有查询、插入、修改和删除的权力。但通常不能使用其他用户的关系,除非能获得其他用户转授给他的相应权力。  例:若允许用户SSE连接到数据库并可以建立他自己的关系,则可通过如下命令授予权力:  GRANT CONNECT TO SSE INENTIFIED BY BD1928  GRANT RESOURCE TO SSE  用户可用的授权是指用户将自己拥有的部分或全部权力转授给其他用户的命令形式,其命令格式如下:  |SELECT |  |INSERT |  |DELETE |  GRANT|UPDATE(列名1[,列名2]…)|ON|表名 |TO|用户名|〔WITH GRANT OPTION〕  |ALTER | |视图名| |PUBLIC|  |NDEX |  |ALL |  若对某一用户同时授予多种操作权力,则操作命令符号可用“,”相隔。  PUBLIC 表示将权力授予数据库的所有用户,使用时要注意:  任选项WITH GRANT OPTION表示接到授权的用户,具有将其所得到的同时权力再转授给其他用户权力。  例:如果将表student的查询权授予所有用户,可使用以下命令:  GRANT SELECT ON student TO PUBLIC  例:若将表subject的插入及修改权力授予用户SSE并使得他具有将这种权力转授他人的权力,则可使用以下命令:  GRANT INSERT,UPDATE(su_subject) ON subject TO SSE WITH GRANT OPTION  这里,UPDATE后面跟su_subject是指出其所能修改的列。  (2)权力回收:权力回收是指回收指定用户原已授予的某些权力。与权力授予命令相匹配,权力回收也有数据库管理员专用和用户可用的两种形式。  DBA专用的权力回收命令格式为:  |CONNECT |  REVOKE|RESOURCE|FROM用户名  |DBA |  用户可用的权力回收命令格式为:  |SELECT |  |INSERT |  |DELETE |  REVOKE|UPDATE(列名1〔,列名2〕…) |ON|表名 |FROM |用户名|  |ALTER | |视图名| |PUBLIC|  |INDEX |  |ALL |  例:回收用户SSE的DBA权力:  REVOKE DBA FROM SSE  2.完整性控制  数据库的完整性是指数据的正确性和相容性,这是数据库理论中的重要概念。完整性控制的主要目的是防止语义上不正确的数据进入数据库。关系系统中的完整性约束条件包括实体完整性、参照完整性和用户定义完整性。而完整性约束条件的定义主要是通过CREATE TABLE语句中的〔CHECK〕子句来完成。另外,还有一些辅助命令可以进行数据完整性保护。如UNIQUE和NOT NULL,前者用于防止重复值进入数据库,后者用于防止空值。  3.事务控制  事务是并发控制的基本单位,也是恢复的基本单位。在SQL中支持事务的概念。所谓事务,是用户定义的一个操作序列(集合),这些操作要么都做,要么一个都不做,是一个不可分割的整体。一个事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。  SQL提供了事务提交和事务撤消两种命令:  (1)事务提交:事务提交的命令为:  COMMIT 〔WORK〕  事务提交标志着对数据库的某种应用操作成功地完成,所有对数据库的操作都必须作为事务提交给系统时才有效。事务一经提交就不能撤消。  (2)事务撤消:事务撤消的命令是:  ROLLBACK 〔WORK〕  事务撤消标志着相应事务对数据库操作失败,因而要撤消对数据库的改变,即要“回滚”到相应事务开始时的状态。  当系统非正常结束时(如掉电、系统死机),将自动执行ROLLBACK命令

SQL数据库的操作

SQL包括了所有对数据库的操作,主要是由4个部分组成:
1.数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。
2.数据操纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。
3.数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。
4.嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。
下面我们将分别介绍: SQL数据定义功能包括定义数据库、基本表、索引和视图。
首先,让我们了解一下SQL所提供的基本数据类型:(如^00100009b^)
1.数据库的建立与删除
(1)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为:
CREATE DATABASE <数据库名> 〔其它参数〕
其中,<数据库名>在系统中必须是唯一的,不能重复,不然将导致数据存取失误。〔其它参数〕因具体数据库实现系统不同而异。
例:要建立项目管理数据库(xmmanage),其语句应为:
CREATE DATABASE xmmanage
(2)数据库的删除:将数据库及其全部内容从系统中删除。
其语句格式为:DROP DATABASE <数据库名>
例:删除项目管理数据库(xmmanage),其语句应为: DROP DATABASE xmmanage
2.基本表的定义及变更
本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。 SQL是一种查询功能很强的语言,只要是数据库存在的数据,总能通过适当的方法将它从数据库中查找出来。SQL中的查询语句只有一个:SELECT,它可与其它语句配合完成所有的查询功能。SELECT语句的完整语法,可以有6个子句。完整的语法如下:  SELECT 目标表的列名或列表达式集合  FROM 基本表或(和)视图集合  〔WHERE条件表达式〕  〔GROUP BY列名集合  〔HAVING组条件表达式〕〕  〔ORDER BY列名〔集合〕…〕
简单查询,使用TOP子句
查询结果排序order by
带条件的查询where,使用算术表达式,使用逻辑表达式,使用between关键字,使用in关键字,
模糊查询like
整个语句的语义如下:从FROM子句中列出的表中,选择满足WHERE子句中给出的条件表达式的元组,然后按GROUPBY子句(分组子句)中指定列的值分组,再提取满足HAVING子句中组条件表达式的那些组,按SELECT子句给出的列名或列表达式求值输出。ORDER子句(排序子句)是对输出的目标表进行重新排序,并可附加说明ASC(升序)或DESC(降序)排列。  在WHERE子句中的条件表达式F中可出现下列操作符和运算函数:  算术比较运算符:<,<=,>,>=,=,<>。  逻辑运算符:AND,OR,NOT。  集合运算符:UNION(并),INTERSECT(交),EXCEPT(差)。  集合成员资格运算符:IN,NOT IN  谓词:EXISTS(存在量词),ALL,SOME,UNIQUE。  聚合函数:AVG(平均值),MIN(最小值),MAX(最大值),SUM(和),COUNT(计数)。  F中运算对象还可以是另一个SELECT语句,即SELECT语句可以嵌套。  上面只是列出了WHERE子句中可出现的几种主要操作,由于WHERE子句中的条件表达式可以很复杂,因此SELECT句型能表达的语义远比其数学原形要复杂得多。  下面,我们以上面所建立的三个基本表为例,演示一下SELECT的应用:  1.无条件查询  例:找出所有学生的的选课情况  SELECT st_no,su_no  FROM score  例:找出所有学生的情况  SELECT*  FROM student  “*”为通配符,表示查找FROM中所指出关系的所有属性的值。  2.条件查询  条件查询即带有WHERE子句的查询,所要查询的对象必须满足WHERE子句给出的条件。  例:找出任何一门课成绩在70以上的学生情况、课号及分数  SELECT UNIQUE student.st_class,student.st_no,student.st_name,student.st_sex,student.st_age,score.su_no,score.score  FROM student,score  WHERE score.score>=70 AND score.stno=student,st_no  这里使用UNIQUE是不从查询结果集中去掉重复行,如果使用DISTINCT则会去掉重复行。另外逻辑运算符的优先顺序为NOT→AND→OR。  例:找出课程号为c02的,考试成绩不及格的学生  SELECT st_no  FROM score  WHERE su_no=‘c02’AND score<60  3.排序查询  排序查询是指将查询结果按指定属性的升序(ASC)或降序(DESC)排列,由ORDER BY子句指明。  例:查找不及格的课程,并将结果按课程号从大到小排列  SELECT UNIQUE su_no  FROM score  WHERE score<60  ORDER BY su_no DESC  4.嵌套查询  嵌套查询是指WHERE子句中又包含SELECT子句,它用于较复杂的跨多个基本表查询的情况。  例:查找课程编号为c03且课程成绩在80分以上的学生的学号、姓名  SELECT st_no,st_name  FROM student  WHERE stno IN (SELECT st_no  FROM score  WHERE su_no=‘c03’ AND score>80 )  这里需要明确的是:当查询涉及多个基本表时用嵌套查询逐次求解层次分明,具有结构程序设计特点。在嵌套查询中,IN是常用到的谓词。若用户能确切知道内层查询返回的是单值,那么也可用算术比较运算符表示用户的要求。  5.计算查询  计算查询是指通过系统提供的特定函数(聚合函数)在语句中的直接使用而获得某些只有经过计算才能得到的结果。常用的函数有:  COUNT(*) 计算元组的个数  COUNT(列名) 对某一列中的值计算个数  SUM(列名) 求某一列值的总和(此列值是数值型)  AVG(列名) 求某一列值的平均值(此列值是数值型)  MAX(列名) 求某一列值中的最大值  MIN(列名) 求某一列值中的最小值  例:求男学生的总人数和平均年龄  SELECT COUNT(*),AVG(st_age)  FROM student  WHERE st_sex=‘男’  例:统计选修了课程的学生的人数  SELECT COUNT(DISTINCT st_no)  FROM score  注意:这里一定要加入DISTINCT,因为有的学生可能选修了多门课程,但统计时只能按1人统计,所以要使用DISTINCT进行过滤。 由于数据库管理系统是一个多用户系统,为了控制用户对数据的存取权利,保持数据的共享及完全性,SQL语言提供了一系列的数据控制功能。其中,主要包括安全性控制、完整性控制、事务控制和并发控制。  1.安全性控制  数据的安全性是指保护数据库,以防非法使用造成数据泄露和破坏。保证数据安全性的主要方法是通过对数据库存取权力的控制来防止非法使用数据库中的数据。即限定不同用户操作不同的数据对象的权限。  存取权控制包括权力的授予、检查和撤消。权力授予和撤消命令由数据库管理员或特定应用人员使用。系统在对数据库操作前,先核实相应用户是否有权在相应数据上进行所要求的操作。  (1)权力授予:权力授有数据库管理员专用的授权和用户可用的授权两种形式。数据库管理员专用授权命令格式如下:  |CONNECT |  GRANT|RESOURCE|TO 用户名〔IDENTIFED BY 口令〕  |DBA |  其中,CONNECT表示数据库管理员允许指定的用户具有连接到数据库的权力,这种授权是针对新用户;RESOURCE表示允许用户建立自己的新关系模式,用户获得CONNECT权力后,必须获得RESOURCE权力才能创建自己的新表;DBA表示数据库管理员将自己的特权授予指定的用户。若要同时授予某用户上述三种授权中的多种权力,则必须通过三个相应的GRANT命令指定。  另外,具有CONNECT和RESOURCE授权的用户可以建立自己的表,并在自己建立的表和视图上具有查询、插入、修改和删除的权力。但通常不能使用其他用户的关系,除非能获得其他用户转授给他的相应权力。  例:若允许用户SSE连接到数据库并可以建立他自己的关系,则可通过如下命令授予权力:  GRANT CONNECT TO SSE INENTIFIED BY BD1928  GRANT RESOURCE TO SSE  用户可用的授权是指用户将自己拥有的部分或全部权力转授给其他用户的命令形式,其命令格式如下:  |SELECT |  |INSERT |  |DELETE |  GRANT|UPDATE(列名1[,列名2]…)|ON|表名 |TO|用户名|〔WITH GRANT OPTION〕  |ALTER | |视图名| |PUBLIC|  |NDEX |  |ALL |  若对某一用户同时授予多种操作权力,则操作命令符号可用“,”相隔。  PUBLIC 表示将权力授予数据库的所有用户,使用时要注意:  任选项WITH GRANT OPTION表示接到授权的用户,具有将其所得到的同时权力再转授给其他用户权力。  例:如果将表student的查询权授予所有用户,可使用以下命令:  GRANT SELECT ON student TO PUBLIC  例:若将表subject的插入及修改权力授予用户SSE并使得他具有将这种权力转授他人的权力,则可使用以下命令:  GRANT INSERT,UPDATE(su_subject) ON subject TO SSE WITH GRANT OPTION  这里,UPDATE后面跟su_subject是指出其所能修改的列。  (2)权力回收:权力回收是指回收指定用户原已授予的某些权力。与权力授予命令相匹配,权力回收也有数据库管理员专用和用户可用的两种形式。  DBA专用的权力回收命令格式为:  |CONNECT |  REVOKE|RESOURCE|FROM用户名  |DBA |  用户可用的权力回收命令格式为:  |SELECT |  |INSERT |  |DELETE |  REVOKE|UPDATE(列名1〔,列名2〕…) |ON|表名 |FROM |用户名|  |ALTER | |视图名| |PUBLIC|  |INDEX |  |ALL |  例:回收用户SSE的DBA权力:  REVOKE DBA FROM SSE  2.完整性控制  数据库的完整性是指数据的正确性和相容性,这是数据库理论中的重要概念。完整性控制的主要目的是防止语义上不正确的数据进入数据库。关系系统中的完整性约束条件包括实体完整性、参照完整性和用户定义完整性。而完整性约束条件的定义主要是通过CREATE TABLE语句中的〔CHECK〕子句来完成。另外,还有一些辅助命令可以进行数据完整性保护。如UNIQUE和NOT NULL,前者用于防止重复值进入数据库,后者用于防止空值。  3.事务控制  事务是并发控制的基本单位,也是恢复的基本单位。在SQL中支持事务的概念。所谓事务,是用户定义的一个操作序列(集合),这些操作要么都做,要么一个都不做,是一个不可分割的整体。一个事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。  SQL提供了事务提交和事务撤消两种命令:  (1)事务提交:事务提交的命令为:  COMMIT 〔WORK〕  事务提交标志着对数据库的某种应用操作成功地完成,所有对数据库的操作都必须作为事务提交给系统时才有效。事务一经提交就不能撤消。  (2)事务撤消:事务撤消的命令是:  ROLLBACK 〔WORK〕  事务撤消标志着相应事务对数据库操作失败,因而要撤消对数据库的改变,即要“回滚”到相应事务开始时的状态。  当系统非正常结束时(如掉电、系统死机),将自动执行ROLLBACK命令

SQL数据库的简单操作

一 简单查询   简单的Transact SQL查询只包括选择列表 FROM子句和WHERE子句 它们分别说明所查询列 查询的 表或视图 以及搜索条件等   例如 下面的语句查询testtable表中姓名为 张三 的nickname字段和email字段   SELECT nickname email  FROM testtable  WHERE name= 张三   (一)选择列表   选择列表(select_list)指出所查询列 它可以是一组列名列表 星号 表达式 变量(包括局部变量和全局变量)等构成    选择所有列  例如 下面语句显示testtable表中所有列的数据   SELECT *  FROM testtable   选择部分列并指定它们的显示次序  查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同   例如   SELECT nickname email  FROM testtable   更改列标题  在选择列表中 可重新指定列标题 定义格式为   列标题=列名  列名 列标题  如果指定的列标题不是标准的标识符格式时 应使用引号定界符 例如 下列语句使用汉字显示列  标题   SELECT 昵称=nickname 电子邮件=email  FROM testtable   删除重复行  SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行 默认  为ALL 使用DISTINCT选项时 对于所有重复的数据行在SELECT返回的结果集合中只保留一行    *返回的行数  使用TOP n [PERCENT]选项*返回的数据行数 TOP n说明返回n行 而TOP n PERCENT时 说明n是  表示一百分数 指定返回的行数等于总行数的百分之几   例如   SELECT TOP *  FROM testtable   SELECT TOP PERCENT *  FROM testtable  (二)FROM子句   FROM子句指定SELECT语句查询及与查询相关的表或视图 在FROM子句中最多可指定 个表或视图   它们之间用逗号分隔   在FROM子句同时指定多个表或视图时 如果选择列表中存在同名列 这时应使用对象名限定这些列  所属的表或视图 例如在usertable和citytable表中同时存在cityid列 在查询两个表中的cityid时应  使用下面语句格式加以限定   SELECT username citytable cityid  FROM usertable citytable  WHERE usertable cityid=citytable cityid  在FROM子句中可用以下两种格式为表或视图指定别名   表名 as 别名  表名 别名    例如上面语句可用表的别名格式表示为   SELECT username b cityid  FROM usertable a citytable b  WHERE a cityid=b cityid  SELECT不仅能从表或视图中检索数据 它还能够从其它查询语句所返回的结果集合中查询数据   例如   SELECT a au_fname+a au_lname  FROM authors a titleauthor ta  (SELECT title_id title  FROM titles  WHERE ytd_sales>   ) AS t  WHERE a au_id=ta au_id  AND ta title_id=t title_id  此例中 将SELECT返回的结果集合给予一别名t 然后再从中检索数据   (三)使用WHERE子句设置查询条件   WHERE子句设置查询条件 过滤掉不需要的数据行 例如下面语句查询年龄大于 的数据   SELECT *  FROM usertable  WHERE age>   WHERE子句可包括各种条件运算符   比较运算符(大小比较) > >= = < <= <> !> !<  范围运算符(表达式值是否在指定的范围) BEEEN…AND…  NOT BEEEN…AND…  列表运算符(判断表达式是否为列表中的指定项) IN (项 项 ……)  NOT IN (项 项 ……)  模式匹配符(判断值是否与指定的字符通配格式相符):LIKE NOT LIKE  空值判断符(判断表达式是否为空) IS NULL NOT IS NULL  逻辑运算符(用于多条件的逻辑连接) NOT AND OR   范围运算符例 age BEEEN AND 相当于age>= AND age<=    列表运算符例 country IN ( Germany China )   模式匹配符例 常用于模糊查找 它判断列值是否与指定的字符串格式相匹配 可用于char   varchar text ntext datetime和 *** alldatetime等类型查询   可使用以下通配字符   百分号% 可匹配任意类型和长度的字符 如果是中文 请使用两个百分号即%%   下划线_ 匹配单个任意字符 它常用来*表达式的字符长度   方括号[] 指定一个字符 字符串或范围 要求所匹配对象为它们中的任一个   [^] 其取值也[] 相同 但它要求所匹配对象为指定字符以外的任一个字符   例如   *以Publishing结尾 使用LIKE %Publishing   *以A开头 LIKE [A]%   *以A开头外 LIKE [^A]%    空值判断符例WHERE age IS NULL   逻辑运算符 优先级为NOT AND OR  (四)查询结果排序   使用ORDER BY子句对查询返回的结果按一列或多列排序 ORDER BY子句的语法格式为   ORDER BY {column_name [ASC|DESC]} [ …n]  其中ASC表示升序 为默认值 DESC为降序 ORDER BY不能按ntext text和image数据类型进行排  序   例如   SELECT *  FROM usertable  ORDER BY age desc userid ASC  另外 可以根据表达式进行排序   二 联合查询   UNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示 即执行联  合查询 UNION的语法格式为   select_statement  UNION [ALL] selectstatement  [UNION [ALL] selectstatement][…n]  其中selectstatement为待联合的SELECT查询语句   ALL选项表示将所有行合并到结果集合中 不指定该项时 被联合查询结果集合中的重复行将只保留一  行   联合查询时 查询结果的列标题为第一个查询语句的列标题 因此 要定义列标题必须在第一个查询语  句中定义 要对联合查询结果排序时 也必须使用第一查询语句中的列名 列标题或者列序号   在使用UNION 运算符时 应保证每个联合查询语句的选择列表中有相同数量的表达式 并且每个查询选  择表达式应具有相同的数据类型 或是可以自动将它们转换为相同的数据类型 在自动转换时 对于数值类  型 系统将低精度的数据类型转换为高精度的数据类型   在包括多个查询的UNION语句中 其执行顺序是自左至右 使用括号可以改变这一执行顺序 例如   查询 UNION (查询 UNION 查询 )  三 连接查询   通过连接运算符可以实现多个表查询 连接是关系数据库模型的主要特点 也是它区别于其它类型  数据库管理系统的一个标志   在关系数据库管理系统中 表建立时各数据之间的关系不必确定 常把一个实体的所有信息存放在  一个表中 当检索数据时 通过连接操作查询出存放在多个表中的不同实体的信息 连接操作给用户带  来很大的灵活性 他们可以在任何时候增加新的数据类型 为不同实体创建新的表 尔后通过连接进行  查询   连接可以在SELECT 语句的FROM子句或WHERE子句中建立 似是而非在FROM子句中指出连接时有助于  将连接操作与WHERE子句中的搜索条件区分开来 所以 在Transact SQL中推荐使用这种方法   SQL 标准所定义的FROM子句的连接语法格式为   FROM join_table join_type join_table  [ON (join_condition)]  其中join_table指出参与连接操作的表名 连接可以对同一个表操作 也可以对多表操作 对同一  个表操作的连接又称做自连接   join_type 指出连接类型 可分为三种 内连接 外连接和交叉连接 内连接(INNER JOIN)使用比  较运算符进行表间某(些)列数据的比较操作 并列出这些表中与连接条件相匹配的数据行 根据所使用  的比较方式不同 内连接又分为等值连接 自然连接和不等连接三种   外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN) 右外连接(RIGHT OUTER JOIN或RIGHT JOIN)  和全外连接(FULL OUTER JOIN或FULL JOIN)三种 与内连接不同的是 外连接不只列出与连接条件相匹  配的行 而是列出左表(左外连接时) 右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的  数据行   交叉连接(CROSS JOIN)没有WHERE 子句 它返回连接表中所有数据行的笛卡尔积 其结果集合中的  数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数   连接操作中的ON (join_condition) 子句指出连接条件 它由被连接表中的列和比较运算符 逻辑  运算符等构成   无论哪种连接都不能对text ntext和image数据类型列进行直接连接 但可以对这三种列进行间接  连接 例如   SELECT p pub_id p pub_id p pr_info  FROM pub_info AS p INNER JOIN pub_info AS p   ON DATALENGTH(p pr_info)=DATALENGTH(p pr_info)    (一)内连接  内连接查询操作列出与连接条件匹配的数据行 它使用比较运算符比较被连接列的列值 内连接分  三种    等值连接 在连接条件中使用等于号(=)运算符比较被连接列的列值 其查询结果中列出被连接  表中的所有列 包括其中的重复列    不等连接 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值 这些  运算符包括> >= <= < !> ! 和>    自然连接 在连接条件中使用等于(=)运算符比较被连接列 lishixin/Article/program/SQLServer/201311/21994 <!-- /和 -

SQL数据库的简单操作

一 简单查询   简单的Transact SQL查询只包括选择列表 FROM子句和WHERE子句 它们分别说明所查询列 查询的 表或视图 以及搜索条件等   例如 下面的语句查询testtable表中姓名为 张三 的nickname字段和email字段   SELECT nickname email  FROM testtable  WHERE name= 张三   (一)选择列表   选择列表(select_list)指出所查询列 它可以是一组列名列表 星号 表达式 变量(包括局部变量和全局变量)等构成    选择所有列  例如 下面语句显示testtable表中所有列的数据   SELECT *  FROM testtable   选择部分列并指定它们的显示次序  查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同   例如   SELECT nickname email  FROM testtable   更改列标题  在选择列表中 可重新指定列标题 定义格式为   列标题=列名  列名 列标题  如果指定的列标题不是标准的标识符格式时 应使用引号定界符 例如 下列语句使用汉字显示列  标题   SELECT 昵称=nickname 电子邮件=email  FROM testtable   删除重复行  SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行 默认  为ALL 使用DISTINCT选项时 对于所有重复的数据行在SELECT返回的结果集合中只保留一行    *返回的行数  使用TOP n [PERCENT]选项*返回的数据行数 TOP n说明返回n行 而TOP n PERCENT时 说明n是  表示一百分数 指定返回的行数等于总行数的百分之几   例如   SELECT TOP *  FROM testtable   SELECT TOP PERCENT *  FROM testtable  (二)FROM子句   FROM子句指定SELECT语句查询及与查询相关的表或视图 在FROM子句中最多可指定 个表或视图   它们之间用逗号分隔   在FROM子句同时指定多个表或视图时 如果选择列表中存在同名列 这时应使用对象名限定这些列  所属的表或视图 例如在usertable和citytable表中同时存在cityid列 在查询两个表中的cityid时应  使用下面语句格式加以限定   SELECT username citytable cityid  FROM usertable citytable  WHERE usertable cityid=citytable cityid  在FROM子句中可用以下两种格式为表或视图指定别名   表名 as 别名  表名 别名    例如上面语句可用表的别名格式表示为   SELECT username b cityid  FROM usertable a citytable b  WHERE a cityid=b cityid  SELECT不仅能从表或视图中检索数据 它还能够从其它查询语句所返回的结果集合中查询数据   例如   SELECT a au_fname+a au_lname  FROM authors a titleauthor ta  (SELECT title_id title  FROM titles  WHERE ytd_sales>   ) AS t  WHERE a au_id=ta au_id  AND ta title_id=t title_id  此例中 将SELECT返回的结果集合给予一别名t 然后再从中检索数据   (三)使用WHERE子句设置查询条件   WHERE子句设置查询条件 过滤掉不需要的数据行 例如下面语句查询年龄大于 的数据   SELECT *  FROM usertable  WHERE age>   WHERE子句可包括各种条件运算符   比较运算符(大小比较) > >= = < <= <> !> !<  范围运算符(表达式值是否在指定的范围) BEEEN…AND…  NOT BEEEN…AND…  列表运算符(判断表达式是否为列表中的指定项) IN (项 项 ……)  NOT IN (项 项 ……)  模式匹配符(判断值是否与指定的字符通配格式相符):LIKE NOT LIKE  空值判断符(判断表达式是否为空) IS NULL NOT IS NULL  逻辑运算符(用于多条件的逻辑连接) NOT AND OR   范围运算符例 age BEEEN AND 相当于age>= AND age<=    列表运算符例 country IN ( Germany China )   模式匹配符例 常用于模糊查找 它判断列值是否与指定的字符串格式相匹配 可用于char   varchar text ntext datetime和 *** alldatetime等类型查询   可使用以下通配字符   百分号% 可匹配任意类型和长度的字符 如果是中文 请使用两个百分号即%%   下划线_ 匹配单个任意字符 它常用来*表达式的字符长度   方括号[] 指定一个字符 字符串或范围 要求所匹配对象为它们中的任一个   [^] 其取值也[] 相同 但它要求所匹配对象为指定字符以外的任一个字符   例如   *以Publishing结尾 使用LIKE %Publishing   *以A开头 LIKE [A]%   *以A开头外 LIKE [^A]%    空值判断符例WHERE age IS NULL   逻辑运算符 优先级为NOT AND OR  (四)查询结果排序   使用ORDER BY子句对查询返回的结果按一列或多列排序 ORDER BY子句的语法格式为   ORDER BY {column_name [ASC|DESC]} [ …n]  其中ASC表示升序 为默认值 DESC为降序 ORDER BY不能按ntext text和image数据类型进行排  序   例如   SELECT *  FROM usertable  ORDER BY age desc userid ASC  另外 可以根据表达式进行排序   二 联合查询   UNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示 即执行联  合查询 UNION的语法格式为   select_statement  UNION [ALL] selectstatement  [UNION [ALL] selectstatement][…n]  其中selectstatement为待联合的SELECT查询语句   ALL选项表示将所有行合并到结果集合中 不指定该项时 被联合查询结果集合中的重复行将只保留一  行   联合查询时 查询结果的列标题为第一个查询语句的列标题 因此 要定义列标题必须在第一个查询语  句中定义 要对联合查询结果排序时 也必须使用第一查询语句中的列名 列标题或者列序号   在使用UNION 运算符时 应保证每个联合查询语句的选择列表中有相同数量的表达式 并且每个查询选  择表达式应具有相同的数据类型 或是可以自动将它们转换为相同的数据类型 在自动转换时 对于数值类  型 系统将低精度的数据类型转换为高精度的数据类型   在包括多个查询的UNION语句中 其执行顺序是自左至右 使用括号可以改变这一执行顺序 例如   查询 UNION (查询 UNION 查询 )  三 连接查询   通过连接运算符可以实现多个表查询 连接是关系数据库模型的主要特点 也是它区别于其它类型  数据库管理系统的一个标志   在关系数据库管理系统中 表建立时各数据之间的关系不必确定 常把一个实体的所有信息存放在  一个表中 当检索数据时 通过连接操作查询出存放在多个表中的不同实体的信息 连接操作给用户带  来很大的灵活性 他们可以在任何时候增加新的数据类型 为不同实体创建新的表 尔后通过连接进行  查询   连接可以在SELECT 语句的FROM子句或WHERE子句中建立 似是而非在FROM子句中指出连接时有助于  将连接操作与WHERE子句中的搜索条件区分开来 所以 在Transact SQL中推荐使用这种方法   SQL 标准所定义的FROM子句的连接语法格式为   FROM join_table join_type join_table  [ON (join_condition)]  其中join_table指出参与连接操作的表名 连接可以对同一个表操作 也可以对多表操作 对同一  个表操作的连接又称做自连接   join_type 指出连接类型 可分为三种 内连接 外连接和交叉连接 内连接(INNER JOIN)使用比  较运算符进行表间某(些)列数据的比较操作 并列出这些表中与连接条件相匹配的数据行 根据所使用  的比较方式不同 内连接又分为等值连接 自然连接和不等连接三种   外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN) 右外连接(RIGHT OUTER JOIN或RIGHT JOIN)  和全外连接(FULL OUTER JOIN或FULL JOIN)三种 与内连接不同的是 外连接不只列出与连接条件相匹  配的行 而是列出左表(左外连接时) 右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的  数据行   交叉连接(CROSS JOIN)没有WHERE 子句 它返回连接表中所有数据行的笛卡尔积 其结果集合中的  数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数   连接操作中的ON (join_condition) 子句指出连接条件 它由被连接表中的列和比较运算符 逻辑  运算符等构成   无论哪种连接都不能对text ntext和image数据类型列进行直接连接 但可以对这三种列进行间接  连接 例如   SELECT p pub_id p pub_id p pr_info  FROM pub_info AS p INNER JOIN pub_info AS p   ON DATALENGTH(p pr_info)=DATALENGTH(p pr_info)    (一)内连接  内连接查询操作列出与连接条件匹配的数据行 它使用比较运算符比较被连接列的列值 内连接分  三种    等值连接 在连接条件中使用等于号(=)运算符比较被连接列的列值 其查询结果中列出被连接  表中的所有列 包括其中的重复列    不等连接 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值 这些  运算符包括> >= <= < !> ! 和>    自然连接 在连接条件中使用等于(=)运算符比较被连接列 lishixin/Article/program/SQLServer/201311/21994 <!-- /和 -

SQL数据库 基本的操作语句(增、删、改、查)

(推荐教程:mysql视频教程)

数据库增删改查基本语句

数据库增加数据

在 MySQL 中可以使用 INSERT INTO 语句向数据库已有的表中插入一行或者多行元组数据。

语法格式:

INSERT INTO 表名 ( 列名1, 列名2,...列名N ) VALUES ( 值1, 值2,...值N );

如果数据是字符型,必须使用单引号或者双引号,如:"value"。

  • 表名:指定被操作的表名。

  • 列名:指定需要插入数据的列名。若向表中的所有列插入数据,则全部的列名均可以省略,直接采用 INSERT<表名>VALUES(…) 即可。

  • VALUE 子句:该子句包含要插入的数据清单。数据清单中数据的顺序要和列的顺序相对应。

  • 示例:在 tb_courses 表中插入一条新记录,course_id 值为 1,course_name 值为“Network”,course_grade 值为 3,info 值为“Computer Network”。

    在执行插入操作之前,查看 tb_courses 表

    mysql> SELECT * FROM tb_courses;Empty set (0.00 sec)

    查询结果显示当前表内容为空,没有数据,接下来执行插入数据的操作,输入的 SQL 语句和执行过程如下所示。

    mysql> INSERT INTO tb_courses -> (course_id,course_name,course_grade,course_info) -> VALUES(1,'Network',3,'Computer Network');Query OK, 1 rows affected (0.08 sec)mysql> SELECT * FROM tb_courses;+-----------+-------------+--------------+------------------+| course_id | course_name | course_grade | course_info |+-----------+-------------+--------------+------------------+| 1 | Network | 3 | Computer Network |+-----------+-------------+--------------+------------------+1 row in set (0.00 sec)

    可以看到插入记录成功。在插入数据时,指定了 tb_courses 表的所有字段,因此将为每一个字段插入新的值。

    说明:

  • INSERT 语句后面的列名称顺序可以不是 tb_courses 表定义时的顺序,即插入数据时,不需要按照表定义的顺序插入,只要保证值的顺序与列字段的顺序相同就可以。

  • 使用 INSERT 插入数据时,允许列名称列表 column_list 为空,此时值列表中需要为表的每一个字段指定值,并且值的顺序必须和数据表中字段定义时的顺序相同。

  • 注意:虽然使用 INSERT 插入数据时可以忽略插入数据的列名称,若值不包含列名称,则 VALUES 关键字后面的值不仅要求完整,而且顺序必须和表定义时列的顺序相同。如果表的结构被修改,对列进行增加、删除或者位置改变操作,这些操作将使得用这种方式插入数据时的顺序也同时改变。如果指定列名称,就不会受到表结构改变的影响。

    数据库删除数据

    在 MySQL 中,可以使用 DELETE 语句来删除表的一行或者多行数据。

    语法格式为:

    DELETE FROM 表名 [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]

    删除指定数据:

    DELETE FROM 表名称 WHERE 列名称 = 值

    语法说明如下:

  • 表名:指定要删除数据的表名。

  • ORDER BY 子句:可选项。表示删除时,表中各行将按照子句中指定的顺序进行删除。

  • WHERE 子句:可选项。表示为删除操作限定删除条件,若省略该子句,则代表删除该表中的所有行。

  • LIMIT 子句:可选项。用于告知服务器在控制命令被返回到客户端前被删除行的最大值。

  • 注意:在不使用 WHERE 条件的时候,将删除所有数据。

    示例1:删除表中的全部数据

    删除 tb_courses_new 表中的全部数据,输入的 SQL 语句和执行结果如下所示。

    mysql> DELETE FROM tb_courses_new;Query OK, 3 rows affected (0.12 sec)mysql> SELECT * FROM tb_courses_new;Empty set (0.00 sec)

    示例2:根据条件删除表中的数据

    在 tb_courses_new 表中,删除 course_id 为 4 的记录,输入的 SQL 语句和执行结果如下所示。

    mysql> DELETE FROM tb_courses -> WHERE course_id=4;Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM tb_courses;+-----------+-------------+--------------+------------------+| course_id | course_name | course_grade | course_info |+-----------+-------------+--------------+------------------+| 1 | Network | 3 | Computer Network || 2 | Database | 3 | MySQL || 3 | Java | 4 | Java EE |+-----------+-------------+--------------+------------------+3 rows in set (0.00 sec)

    由运行结果可以看出,course_id 为 4 的记录已经被删除。

    数据库修改数据

    在 MySQL 中,可以使用 UPDATE 语句来修改、更新一个或多个表的数据。

    语法格式为:

    UPDATE 表名 SET 字段=值 [WHERE 子句 ][ORDER BY 子句] [LIMIT 子句]

    例:

    UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

    语法说明如下:

  • 表名:用于指定要更新的表名称。

  • SET 子句:用于指定表中要修改的列名及其列值。其中,每个指定的列值可以是表达式,也可以是该列对应的默认值。如果指定的是默认值,可用关键字 DEFAULT 表示列值。

  • WHERE 子句:可选项。用于限定表中要修改的行。若不指定,则修改表中所有的行。

  • ORDER BY 子句:可选项。用于限定表中的行被修改的次序。

  • LIMIT 子句:可选项。用于限定被修改的行数。

  • 注意:修改一行数据的多个列值时,SET 子句的每个值用逗号分开即可。

    示例1:修改表中的数据

    在 tb_courses_new 表中,更新所有行的 course_grade 字段值为 4,输入的 SQL 语句和执行结果如下所示。

    mysql> UPDATE tb_courses_new -> SET course_grade=4;Query OK, 3 rows affected (0.11 sec)Rows matched: 4 Changed: 3 Warnings: 0mysql> SELECT * FROM tb_courses_new;+-----------+-------------+--------------+------------------+| course_id | course_name | course_grade | course_info |+-----------+-------------+--------------+------------------+| 1 | Network | 4 | Computer Network || 2 | Database | 4 | MySQL || 3 | Java | 4 | Java EE || 4 | System | 4 | Operating System |+-----------+-------------+--------------+------------------+4 rows in set (0.00 sec)

    示例1:根据条件修改表中的数据

    在 tb_courses 表中,更新 course_id 值为 2 的记录,将 course_grade 字段值改为 3.5,将 course_name 字段值改为“DB”,输入的 SQL 语句和执行结果如下所示。

    mysql> UPDATE tb_courses_new -> SET course_name='DB',course_grade=3.5 -> WHERE course_id=2;Query OK, 1 row affected (0.13 sec)Rows matched: 1 Changed: 1 Warnings: 0mysql> SELECT * FROM tb_courses_new;+-----------+-------------+--------------+------------------+| course_id | course_name | course_grade | course_info |+-----------+-------------+--------------+------------------+| 1 | Network | 4 | Computer Network || 2 | DB | 3.5 | MySQL || 3 | Java | 4 | Java EE || 4 | System | 4 | Operating System |+-----------+-------------+--------------+------------------+4 rows in set (0.00 sec)

    注意:保证 UPDATE 以 WHERE 子句结束,通过 WHERE 子句指定被更新的记录所需要满足的条件,如果忽略 WHERE 子句,MySQL 将更新表中所有的行。

    数据库查询数据

    在 MySQL 中,可以使用 SELECT 语句来查询数据。查询数据是指从数据库中根据需求,使用不同的查询方式来获取不同的数据,是使用频率最高、最重要的操作。

    SELECT 的语法格式如下:

    SELECT{* | <字段列名>}[FROM <表 1>, <表 2>…[WHERE <表达式>[GROUP BY <group by definition>[HAVING <expression> [{<operator> <expression>}…]][ORDER BY <order by definition>][LIMIT[<offset>,] <row count>]]

    其中,各条子句的含义如下:

  • {*|<字段列名>}包含星号通配符的字段列表,表示所要查询字段的名称。

  • <表 1>,<表 2>…,表 1 和表 2 表示查询数据的来源,可以是单个或多个。

  • WHERE <表达式>是可选项,如果选择该项,将限定查询数据必须满足该查询条件。

  • GROUP BY< 字段 >,该子句告诉 MySQL 如何显示查询出来的数据,并按照指定的字段分组。

  • [ORDER BY< 字段 >],该子句告诉 MySQL 按什么样的顺序显示查询出来的数据,可以进行的排序有升序(ASC)和降序(DESC),默认情况下是升序。

  • [LIMIT[<offset>,]<row count>],该子句告诉 MySQL 每次显示查询出来的数据条数。

  • 下面先介绍一些简单的 SELECT 语句,关于 WHERE、GROUP BY、ORDER BY 和 LIMIT 等限制条件就不细说了。

    1、查询表中所有字段

    查询所有字段是指查询表中所有字段的数据。MySQL 提供了以下 2 种方式查询表中的所有字段。

    SELECT 可以使用“*”查找表中所有字段的数据,语法格式如下:

    SELECT * FROM 表名;

    使用“*”查询时,只能按照数据表中字段的顺序进行排列,不能改变字段的排列顺序。

    示例:从 tb_students_info 表中查询所有字段的数据,SQL 语句和运行结果如下所示。

    mysql> use test_db;Database changedmysql> SELECT * FROM tb_students_info;+----+--------+---------+------+------+--------+------------+| id | name | dept_id | age | sex | height | login_date |+----+--------+---------+------+------+--------+------------+| 1 | Dany | 1 | 25 | F | 160 | 2015-09-10 || 2 | Green | 3 | 23 | F | 158 | 2016-10-22 || 3 | Henry | 2 | 23 | M | 185 | 2015-05-31 || 4 | Jane | 1 | 22 | F | 162 | 2016-12-20 || 5 | Jim | 1 | 24 | M | 175 | 2016-01-15 || 6 | John | 2 | 21 | M | 172 | 2015-11-11 || 7 | Lily | 6 | 22 | F | 165 | 2016-02-26 || 8 | Susan | 4 | 23 | F | 170 | 2015-10-01 || 9 | Thomas | 3 | 22 | M | 178 | 2016-06-07 || 10 | Tom | 4 | 23 | M | 165 | 2016-08-05 |+----+--------+---------+------+------+--------+------------+10 rows in set (0.26 sec)

    结果显示,使用“*”通配符时,将返回所有列,数据列按照创建表时的顺序显示。

    注意:一般情况下,除非需要使用表中所有的字段数据,否则最好不要使用通配符“*”。虽然使用通配符可以节省输入查询语句的时间,但是获取不需要的列数据通常会降低查询和所使用的应用程序的效率。使用“*”的优势是,当不知道所需列的名称时,可以通过“*”获取它们。

    2、查询表中指定的字段

    查询表中的某一个字段的语法格式为:

    SELECT < 列名 > FROM < 表名 >;

    示例:

    查询 tb_students_info 表中 name 列所有学生的姓名,SQL 语句和运行结果如下所示。

    mysql> SELECT name FROM tb_students_info;+--------+| name |+--------+| Dany || Green || Henry || Jane || Jim || John || Lily || Susan || Thomas || Tom |+--------+10 rows in set (0.00 sec)

    输出结果显示了 tb_students_info 表中 name 字段下的所有数据。

    使用 SELECT 声明可以获取多个字段下的数据,只需要在关键字 SELECT 后面指定要查找的字段名称,不同字段名称之间用逗号“,”分隔开,最后一个字段后面不需要加逗号,语法格式如下:

    SELECT <字段名1>,<字段名2>,…,<字段名n> FROM <表名>;

    示例:

    从 tb_students_info 表中获取 id、name 和 height 三列,SQL 语句和运行结果如下所示。

    mysql> SELECT id,name,height -> FROM tb_students_info;+----+--------+--------+| id | name | height |+----+--------+--------+| 1 | Dany | 160 || 2 | Green | 158 || 3 | Henry | 185 || 4 | Jane | 162 || 5 | Jim | 175 || 6 | John | 172 || 7 | Lily | 165 || 8 | Susan | 170 || 9 | Thomas | 178 || 10 | Tom | 165 |+----+--------+--------+10 rows in set (0.00 sec)

    输出结果显示了 tb_students_info 表中 id、name 和 height 三个字段下的所有数据。

    更多编程相关知识,请访问:编程视频!!

    SQL数据库 基本的操作语句(增、删、改、查)

    (推荐教程:mysql视频教程)

    数据库增删改查基本语句

    数据库增加数据

    在 MySQL 中可以使用 INSERT INTO 语句向数据库已有的表中插入一行或者多行元组数据。

    语法格式:

    INSERT INTO 表名 ( 列名1, 列名2,...列名N ) VALUES ( 值1, 值2,...值N );

    如果数据是字符型,必须使用单引号或者双引号,如:"value"。

  • 表名:指定被操作的表名。

  • 列名:指定需要插入数据的列名。若向表中的所有列插入数据,则全部的列名均可以省略,直接采用 INSERT<表名>VALUES(…) 即可。

  • VALUE 子句:该子句包含要插入的数据清单。数据清单中数据的顺序要和列的顺序相对应。

  • 示例:在 tb_courses 表中插入一条新记录,course_id 值为 1,course_name 值为“Network”,course_grade 值为 3,info 值为“Computer Network”。

    在执行插入操作之前,查看 tb_courses 表

    mysql> SELECT * FROM tb_courses;Empty set (0.00 sec)

    查询结果显示当前表内容为空,没有数据,接下来执行插入数据的操作,输入的 SQL 语句和执行过程如下所示。

    mysql> INSERT INTO tb_courses -> (course_id,course_name,course_grade,course_info) -> VALUES(1,'Network',3,'Computer Network');Query OK, 1 rows affected (0.08 sec)mysql> SELECT * FROM tb_courses;+-----------+-------------+--------------+------------------+| course_id | course_name | course_grade | course_info |+-----------+-------------+--------------+------------------+| 1 | Network | 3 | Computer Network |+-----------+-------------+--------------+------------------+1 row in set (0.00 sec)

    可以看到插入记录成功。在插入数据时,指定了 tb_courses 表的所有字段,因此将为每一个字段插入新的值。

    说明:

  • INSERT 语句后面的列名称顺序可以不是 tb_courses 表定义时的顺序,即插入数据时,不需要按照表定义的顺序插入,只要保证值的顺序与列字段的顺序相同就可以。

  • 使用 INSERT 插入数据时,允许列名称列表 column_list 为空,此时值列表中需要为表的每一个字段指定值,并且值的顺序必须和数据表中字段定义时的顺序相同。

  • 注意:虽然使用 INSERT 插入数据时可以忽略插入数据的列名称,若值不包含列名称,则 VALUES 关键字后面的值不仅要求完整,而且顺序必须和表定义时列的顺序相同。如果表的结构被修改,对列进行增加、删除或者位置改变操作,这些操作将使得用这种方式插入数据时的顺序也同时改变。如果指定列名称,就不会受到表结构改变的影响。

    数据库删除数据

    在 MySQL 中,可以使用 DELETE 语句来删除表的一行或者多行数据。

    语法格式为:

    DELETE FROM 表名 [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]

    删除指定数据:

    DELETE FROM 表名称 WHERE 列名称 = 值

    语法说明如下:

  • 表名:指定要删除数据的表名。

  • ORDER BY 子句:可选项。表示删除时,表中各行将按照子句中指定的顺序进行删除。

  • WHERE 子句:可选项。表示为删除操作限定删除条件,若省略该子句,则代表删除该表中的所有行。

  • LIMIT 子句:可选项。用于告知服务器在控制命令被返回到客户端前被删除行的最大值。

  • 注意:在不使用 WHERE 条件的时候,将删除所有数据。

    示例1:删除表中的全部数据

    删除 tb_courses_new 表中的全部数据,输入的 SQL 语句和执行结果如下所示。

    mysql> DELETE FROM tb_courses_new;Query OK, 3 rows affected (0.12 sec)mysql> SELECT * FROM tb_courses_new;Empty set (0.00 sec)

    示例2:根据条件删除表中的数据

    在 tb_courses_new 表中,删除 course_id 为 4 的记录,输入的 SQL 语句和执行结果如下所示。

    mysql> DELETE FROM tb_courses -> WHERE course_id=4;Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM tb_courses;+-----------+-------------+--------------+------------------+| course_id | course_name | course_grade | course_info |+-----------+-------------+--------------+------------------+| 1 | Network | 3 | Computer Network || 2 | Database | 3 | MySQL || 3 | Java | 4 | Java EE |+-----------+-------------+--------------+------------------+3 rows in set (0.00 sec)

    由运行结果可以看出,course_id 为 4 的记录已经被删除。

    数据库修改数据

    在 MySQL 中,可以使用 UPDATE 语句来修改、更新一个或多个表的数据。

    语法格式为:

    UPDATE 表名 SET 字段=值 [WHERE 子句 ][ORDER BY 子句] [LIMIT 子句]

    例:

    UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

    语法说明如下:

  • 表名:用于指定要更新的表名称。

  • SET 子句:用于指定表中要修改的列名及其列值。其中,每个指定的列值可以是表达式,也可以是该列对应的默认值。如果指定的是默认值,可用关键字 DEFAULT 表示列值。

  • WHERE 子句:可选项。用于限定表中要修改的行。若不指定,则修改表中所有的行。

  • ORDER BY 子句:可选项。用于限定表中的行被修改的次序。

  • LIMIT 子句:可选项。用于限定被修改的行数。

  • 注意:修改一行数据的多个列值时,SET 子句的每个值用逗号分开即可。

    示例1:修改表中的数据

    在 tb_courses_new 表中,更新所有行的 course_grade 字段值为 4,输入的 SQL 语句和执行结果如下所示。

    mysql> UPDATE tb_courses_new -> SET course_grade=4;Query OK, 3 rows affected (0.11 sec)Rows matched: 4 Changed: 3 Warnings: 0mysql> SELECT * FROM tb_courses_new;+-----------+-------------+--------------+------------------+| course_id | course_name | course_grade | course_info |+-----------+-------------+--------------+------------------+| 1 | Network | 4 | Computer Network || 2 | Database | 4 | MySQL || 3 | Java | 4 | Java EE || 4 | System | 4 | Operating System |+-----------+-------------+--------------+------------------+4 rows in set (0.00 sec)

    示例1:根据条件修改表中的数据

    在 tb_courses 表中,更新 course_id 值为 2 的记录,将 course_grade 字段值改为 3.5,将 course_name 字段值改为“DB”,输入的 SQL 语句和执行结果如下所示。

    mysql> UPDATE tb_courses_new -> SET course_name='DB',course_grade=3.5 -> WHERE course_id=2;Query OK, 1 row affected (0.13 sec)Rows matched: 1 Changed: 1 Warnings: 0mysql> SELECT * FROM tb_courses_new;+-----------+-------------+--------------+------------------+| course_id | course_name | course_grade | course_info |+-----------+-------------+--------------+------------------+| 1 | Network | 4 | Computer Network || 2 | DB | 3.5 | MySQL || 3 | Java | 4 | Java EE || 4 | System | 4 | Operating System |+-----------+-------------+--------------+------------------+4 rows in set (0.00 sec)

    注意:保证 UPDATE 以 WHERE 子句结束,通过 WHERE 子句指定被更新的记录所需要满足的条件,如果忽略 WHERE 子句,MySQL 将更新表中所有的行。

    数据库查询数据

    在 MySQL 中,可以使用 SELECT 语句来查询数据。查询数据是指从数据库中根据需求,使用不同的查询方式来获取不同的数据,是使用频率最高、最重要的操作。

    SELECT 的语法格式如下:

    SELECT{* | <字段列名>}[FROM <表 1>, <表 2>…[WHERE <表达式>[GROUP BY <group by definition>[HAVING <expression> [{<operator> <expression>}…]][ORDER BY <order by definition>][LIMIT[<offset>,] <row count>]]

    其中,各条子句的含义如下:

  • {*|<字段列名>}包含星号通配符的字段列表,表示所要查询字段的名称。

  • <表 1>,<表 2>…,表 1 和表 2 表示查询数据的来源,可以是单个或多个。

  • WHERE <表达式>是可选项,如果选择该项,将限定查询数据必须满足该查询条件。

  • GROUP BY< 字段 >,该子句告诉 MySQL 如何显示查询出来的数据,并按照指定的字段分组。

  • [ORDER BY< 字段 >],该子句告诉 MySQL 按什么样的顺序显示查询出来的数据,可以进行的排序有升序(ASC)和降序(DESC),默认情况下是升序。

  • [LIMIT[<offset>,]<row count>],该子句告诉 MySQL 每次显示查询出来的数据条数。

  • 下面先介绍一些简单的 SELECT 语句,关于 WHERE、GROUP BY、ORDER BY 和 LIMIT 等限制条件就不细说了。

    1、查询表中所有字段

    查询所有字段是指查询表中所有字段的数据。MySQL 提供了以下 2 种方式查询表中的所有字段。

    SELECT 可以使用“*”查找表中所有字段的数据,语法格式如下:

    SELECT * FROM 表名;

    使用“*”查询时,只能按照数据表中字段的顺序进行排列,不能改变字段的排列顺序。

    示例:从 tb_students_info 表中查询所有字段的数据,SQL 语句和运行结果如下所示。

    mysql> use test_db;Database changedmysql> SELECT * FROM tb_students_info;+----+--------+---------+------+------+--------+------------+| id | name | dept_id | age | sex | height | login_date |+----+--------+---------+------+------+--------+------------+| 1 | Dany | 1 | 25 | F | 160 | 2015-09-10 || 2 | Green | 3 | 23 | F | 158 | 2016-10-22 || 3 | Henry | 2 | 23 | M | 185 | 2015-05-31 || 4 | Jane | 1 | 22 | F | 162 | 2016-12-20 || 5 | Jim | 1 | 24 | M | 175 | 2016-01-15 || 6 | John | 2 | 21 | M | 172 | 2015-11-11 || 7 | Lily | 6 | 22 | F | 165 | 2016-02-26 || 8 | Susan | 4 | 23 | F | 170 | 2015-10-01 || 9 | Thomas | 3 | 22 | M | 178 | 2016-06-07 || 10 | Tom | 4 | 23 | M | 165 | 2016-08-05 |+----+--------+---------+------+------+--------+------------+10 rows in set (0.26 sec)

    结果显示,使用“*”通配符时,将返回所有列,数据列按照创建表时的顺序显示。

    注意:一般情况下,除非需要使用表中所有的字段数据,否则最好不要使用通配符“*”。虽然使用通配符可以节省输入查询语句的时间,但是获取不需要的列数据通常会降低查询和所使用的应用程序的效率。使用“*”的优势是,当不知道所需列的名称时,可以通过“*”获取它们。

    2、查询表中指定的字段

    查询表中的某一个字段的语法格式为:

    SELECT < 列名 > FROM < 表名 >;

    示例:

    查询 tb_students_info 表中 name 列所有学生的姓名,SQL 语句和运行结果如下所示。

    mysql> SELECT name FROM tb_students_info;+--------+| name |+--------+| Dany || Green || Henry || Jane || Jim || John || Lily || Susan || Thomas || Tom |+--------+10 rows in set (0.00 sec)

    输出结果显示了 tb_students_info 表中 name 字段下的所有数据。

    使用 SELECT 声明可以获取多个字段下的数据,只需要在关键字 SELECT 后面指定要查找的字段名称,不同字段名称之间用逗号“,”分隔开,最后一个字段后面不需要加逗号,语法格式如下:

    SELECT <字段名1>,<字段名2>,…,<字段名n> FROM <表名>;

    示例:

    从 tb_students_info 表中获取 id、name 和 height 三列,SQL 语句和运行结果如下所示。

    mysql> SELECT id,name,height -> FROM tb_students_info;+----+--------+--------+| id | name | height |+----+--------+--------+| 1 | Dany | 160 || 2 | Green | 158 || 3 | Henry | 185 || 4 | Jane | 162 || 5 | Jim | 175 || 6 | John | 172 || 7 | Lily | 165 || 8 | Susan | 170 || 9 | Thomas | 178 || 10 | Tom | 165 |+----+--------+--------+10 rows in set (0.00 sec)

    输出结果显示了 tb_students_info 表中 id、name 和 height 三个字段下的所有数据。

    更多编程相关知识,请访问:编程视频!!

    如何建立SQL数据库,以及所需要软件!详细操作方法!重谢!!!

    一、导出导入SQL Server里某个数据库

    1.在SQL Server企业管理器里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库。

    2.备份 选数据库-完全,

    目的 备份到 按添加按钮

    文件名 在SQL Server服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak)

    重写 选重写现有媒体

    最后按确定按钮。

    如果生成的备份数据库文件大于1M,要用压缩工具压缩后再到Internet上传输。

    3.通过FTP或者remote desktop或者pcanywhere等方法

    把第二步生成的备份数据库文件或者其压缩后的文件传到目的SQL Server数据库,如果有压缩要解压。

    4.目的SQL Server数据库如果还没有此数据库,先创建一个新的数据库;

    然后选中这个新创建的数据库,按鼠标右键,选所有任务->还原数据库

    还原->从设备->选择设备->磁盘->添加(找到要导入的备份数据库文件名)->确定

    还原备份集->数据库-完全

    最后按确定按钮。完全的数据库导入成功了。

    (如果在已经存在的SQL Server数据库上还原数据库可能遇到有还有其它人正在使用它而恢复操做失败,

    可以去看 ->管理->当前活动->锁/对象->找到数据库下锁的进程号->到查询分析器里用kill 进程号杀掉这些锁,

    然后再做还原)

    注意:如果在原有的目的SQL Server数据库上从备份文件(*.bak)还原数据库

    会把已经存在的表、存储过程等数据库对象全部替换成最近这次导入的备份数据库里的内容。

    如果一定要还原备份文件(*.bak)里部分数据,需要另外建一个新数据库,

    其逻辑名称和数量同备份文件(*.bak)里数据库的逻辑名称和数量一致;

    新数据库的物理文件名称取得一定要和备份文件(*.bak)里数据库的物理文件不一样才行。

    SQL数据库中,创建一个数据库以及表、及对此表格进行查询、插入、修改、删除等操作……

    举例:学生成绩数据库

    1.创建一个数据库:

    CREATE DATABASE XSCJ

    ON

    (NAME='XSCJ_DATA',

    FILENAME='D:\Program Files\Microsoft SQL Server\MSSQL\Data\XSCJ_DATA.MDF',

    SIZE=5MB,

    MAXSIZE=50MB,

    FILEGROWTH=10%

    )

    LOG ON

    (NAME='XSCJ_LOG',

    FILENAME='D:\Program Files\Microsoft SQL Server\MSSQL\Data\XSCJ_LOG.LOG',

    SIZE=2MB,

    MAXSIZE=5MB,

    FILEGROWTH=1MB

    )

    GO

    2.创建学生信息表:

    CREATE TABLE XS

    (学号 CHAR(6) PRIMARY KEY,

    姓名 CHAR(6) NOT NULL,

    专业名 CHAR(10) NULL,

    性别 BIT NOT NULL,

    出生时间 DATETIME NOT NULL,

    总学分 TINYINT NOT NULL,

    备注 TEXT NULL

    )

    GO

    3.向XS表中插入数据:

    INSERT INTO XS

    VALUES('001106','李方方','计算机',1,'1980-11-20',50,NULL)

    GO

    INSERT INTO XS

    VALUES('001107','李明','计算机',1,'1980-05-01',54,'提前修完《数据结构》,并获得学分')

    GO

    INSERT INTO XS

    VALUES('001108','林一帆','计算机',1,'1979-08-05',52,'已提前修完1门课')

    GO

    4.查询XS表:

    SELECT *

    FROM XS

    5.修改学号为001106同学的专业:

    UPDATE XS

    SET 专业名='通信工程'

    WHERE 学号='001106'

    GO

    6.删除李方方同学的信息:

    DELETE FROM XS

    WHERE 姓名='李方方'

    GO

    显示全文