SQL数据库基本操做语句

1、数据库及数据库表定义
  一、建立基本表数据库

    create table <表名> (<列名><数据类型>[列级完整性约束条件]服务器

                                                     [,<列名><数据类型>[列级完整性约束条件].net

                                                     .........blog

                                                     [,<表级完整性约束条件>]);索引

            例:it

create table student  ( Sno char(5) not null unique,io

                                                              Sname char(20) unique,table

                                                              Ssex char(1),date

                                                              Sage int,file

                                                              Sdept char(15));

       二、修改基本表

             alert  table  <表名>

                                  [add <新列名> <数据类型> [完整性约束]]

                                  [drop <完整性约束名>]

                                  [modify <列名><数据类型>];

          add: 用于向表中增长新列及新列相关的完整性约束条件,新的列增长成功后不带任何数据

          drop:用于删除指定的完整性约束条件

          modify:用于修改原来的列定义,包括修改列名和数据类型,列数据类型修改后可能会丢失原有的数据

 

alert table student add Scome date;
alert table student modify Sage smallint;
alert table student drop unique(Sname);
         三、SQL中没有提供删除属性列的功能,若须要删除列,必须间接经过select语句来实现,将须要的列的内容复制到另外一个表中,再删除原表,而后将新表的名字命名为原表名

        四、删除基本表

              drop table <表名>

       五、创建与删除索引

            create [unique] [cluster] index <索引名> on <表名> (<列名> [<次序][,<列名>[<次序]].....);

            注:unique:代表此索引的每一个索引值只对应唯一的一个记录

                    cluster:表时要创建的索引是聚簇索引,即按某一列建好索引后,硬盘上的数据存储顺序也调整为按这个列的顺序存储,索引的顺序和存储顺序是一致的

             drop index <索引名>;

 

create unique index studentIndex on student (sno);
drop index studentIndex;
2、数据查询

       select  [distinct | distinctRow | all]

                    列名[,列名][,....]

                    [into {outfile | dumpfile} '文件名' export_options]

                    [from 表名]

                    [where 查询条件]

                   [group by 列名[, ....]]

                    [having 条件定义]

                   [order by {无符号整数|列名|公式}[asc | desc],...]

                  [limit [偏移量,] 行数]

                  [procedure 过程名称]

               注:select语句中全部使用的关键词必须精确的以上面的顺序给出 

      若是以降序排列,则在order by中加入关键字desc,升序则加入关键字asc,默认是升序

      having子名能引用任何列或在查询中命名的别名,它最后运用,就在项目被送到客户以前是,没有变化。须要注意,不要对应该在where子句中的项目使用having.

                       limit子名被用来限制select返回的行数,若是给定1个参数,它指出返回行的最大数目;若是给定2个参数,第一个指定要返回的第一行的偏移量,第二个指定返回行的最大数目,初始行的偏移量是0

//返回前5个记录
select * from table limit 5;

//返回第6到第15个记录
select * from table limit 5,10;
                    select .... into outfile '文件名' 格式的select语句将选择的行写入一个文件,文件在服务器上被建立,而且不能是已经存在的,且在服务器主机上还必须有file权限以使用这种select

                    distinct,使用了这个关键字后,再执行select语句的结果集中,若是有重复的值,则会在结果集中去掉重复的值而只保留一个值。

//选择学生表中全部学生的姓名记录,而且筛选掉重复的记录,将记录保存在名字为name的结果集中,并按学号由大到小排列
select distinct sname as name, sno from student order by sno desc;

//选择学生表中全部学生的姓名和年龄,并将每一个同窗的姓名后加上“同窗”二字,将每一个人的年龄增长1岁,同是计算全部同窗年龄的平均值 
// sum() ---- 求全部数据的总和
// max() ----求全部数据中的最大值
// min() -----求全部数据中的最小值
// count() ---求全部数据的个数
// avg() ---- 求全部数据的平均值
select sname, "同窗", age+1, avg(age) from student;

//列出学号在1和100之间,而且成绩大于85分的全部姓”赵“同窗的所胡记录
// % ---表明任意字符
//使用通配符时,前面必须用关键字”like”
select * from student where sname like '赵%’ and sno between 1 and 100 and sno in (select sno from student where grade>85);

//使用学生表、课程表以及学生选课表这3个基本表,列出全部学生的姓名、学号、所选课程的课程名称及该课程的学分
select sname, sno, cno, credit from student, course, sc where student.sno=sc.sno and sc.cno=course.cno;

 


3、数据更新

一、数据插入

   insert into <表名> [<列名>[,<列名>]....) values (value1, value2,...);

             若是表中的每一列均有数据插入,则可不用指定任何表名

二、数据修改

   update <表名> set <列名>=新值 where <条件表达式>

三、数据删除

           删除指的是删除数据库中的一个记录,而不是删除某一列

           delete from <表名> where <条件表达式>--------------------- 做者:zdwzzu2006 来源:CSDN 原文:https://blog.csdn.net/zdwzzu2006/article/details/2298777

相关文章
相关标签/搜索