SQL基础  一

关键词: SQL , 基础,SQL入门,SQL经典

       Today,binge将和大家一起学习SQL的基础,学过的算是复习,没学过的你更得认真看了,(*^__^*) !!

1.  前言

       当今时代任何操作都涉及数据,用来管理和检索数据的系统就是数据可管理系统(DBMS),数据库按存储类型主要分为:网状数据库、关系型数据库、树状数据库、面向对象数据库等。现在应用最为广泛的便是关系型数据库,下面以及以后我们都将学习关系型数据库。现在广泛应用的关系型数据库有:sql server、MySQL、Oracle、Access等等。虽然有如此之多的系统有我们选择,而且各有各的特点,各有各的差异、令我们不知道该学习哪个。但是俗话说万变不离其宗在我看来最然他们有差异,但是他们最基本的原理、思路是相同的,只要我们将基础学好了,那么在学习这些将会变的很容易!那么让我们开始进入SQL的世界吧!!

2.  概念

2.1  什么是SQL

       SQL:结构化查询语言,它是与关系型数据库进行通信的标准语言,第一个发布SQL产品的便是ORACLE-甲骨文公司。

2.2  什么是数据库

       数据库就是数据的集合,它不仅能够存储信息、而且能够以高效的方式检索其中的信息。比如电话簿就是一个数据库,我们不用考虑数据(联系信息)该放到哪,用到时该去哪找!我们只需要将数据提交给电话簿,它会帮我们管理数据存储数据,当我们需要查看某条数据时,只需要将想查的字段(比如:姓名)发给电话簿,电话簿就会自动检索,并把结果呈现给我们。
       数据库必须被维护。比如你的联系人换了电话号码,或者不想在联系某个人,电话簿里的项目就需要删除或添加。

2.3  什么是表

       表示数据存储的表现形式,每个表可以分为更小的项,这些项被称为”字段“。一个字段就是表里的一列。比如学生信息表,姓名、学号都是表中的一个字段、一列。一条记录就是表里的一行,比如:yuanbinbin 124081001。

2.4  什么是关系型数据库

       关系型数据库由被称为表(table)的逻辑单元组成,这些表之间可以相互关联。我将以学生信息管理系统为例为大家解释。关系型数据库记录了学生信息、成绩信息以及课程信息。则该数据库有学生表、成绩表、以及课程表。关系是由各个表之间的关联所体现的。如:学生表与课程是多对多的关系(一个学生要学多门课程、一门课程可以由多个学生学习)。

3.  SQL的命令类型

       根据数据库的功能,SQL可分为:数据定义(DDL)、数据操作(DML)、数据查询(DQL)、数据控制(DCL)、数据管理命令、事务控制命令。

3.1  数据定义语言(DDL)

       创建数据库
       create database 数据库名。例如:create database stuinfodb;

       删除数据库
       drop database 数据库名。例如:drop database stuinfodb;

       显示数据库
       show databases;

       选择数据库
       use database_name;

       创建表
       create table [if not exists] stuinfo( //if not exists可不写
       id varchar (n),
       name varchar (n),
       classid int,
       primary key(id),//设置主键可不写。
       foreign key(classid) references classinfo);//设置外键classid为classinfo表的主键

       显示表结构
       方法1:desc table_name;
       方法2:show columns from table_name;
       方法3:describe table_name;

       修改表
       重命名表,从t1到t2:
       alter table t1 rename t2;

       改变表t2中的列a,从integer改为 varchar not null,并且改变列b,从char(10)改为char(20),同时重命名它,从b改为c:
       alter table t2 modify a varchar not null,change b c char(20);

       增加一个新integer列,名为d:
        alter table t2 add d integer;

       在列d上增加一个索引,并且使列a为主键: (索引是不可修改的,想更改必须重建!!)
       alter table t2 add index(d) , add primary key(a);

       设置已存在列为主键,前提该表还没有主键
       alter table table_name add primary key(id);

       创建时指定主键和自增属性
       create table t_name( intCId int auto_increment primary key,
       varCNo varchar(20) ,
       varCName varchar(30));

       删除主键
       alter table table_name drop primary key;

       删除索引:
       alter table t2 drop index d

       删出列c:
       alter table t2 drop column c;

       增加一个新的AUTO_INCREMENT整数列,命名为c:
       alter table table_name add c int primary key auto_increment;

       注意:在MySQL中,auto_increment只适用于主键,其他不是主键的字段不能设置自增属性。

       删除c自增属性
       alter table modify c int;

       删除表
       drop table if exists table_name;

       创建视图
       create view view_name as select statement

       删除视图
       drop view viewname;

我是续!快点我!

尊重原创,写博不易,转载请注